プログラミング

プログラミング

JavaScriptをC++からのスクリプトとして使う

前回にV8エンジンのライブラリビルドまで終わっているとして、今回はそのライブラリを用いて自分のC++プログラムからJavaScriptを実行させている風にします。 VisualStudio 2010を開いて、コンソールアプリケーションを1つ準備します。 そして、V8エンジンをビルドしてある場所を設定しておきます。 追加のインクルードディレクトリ: testV...
プログラミング

JavaScriptをC++からのスクリプトとして使う(準備)

JavaScriptをLuaやSquirrelのように使いたいな~とふと思い立ったので、ちょっとやってみようと思います。 今回はそのための前準備としてV8エンジンの準備の記事です。 V8の準備 JavaScriptの実行エンジンとして google の V8 を使用します。 まずは git://github.com/v8/v8.git からエンジン本体をダウ...
プログラミング

デバッグビルドの速度差(C vs C++)

VisualStudioを使用していて、デバッグビルドとリリースビルドでの速度差が顕著なのは最適化の有無の点からも言うまでも無いですが、同じようなコードをC vs C++で書いたときにも何か差があるように感じてならないです。 どうしてこのような差が出てくるか調べてみたところ、1つはテンプレートの展開に関する部分が大きいのではないか、と感じました。 たとえば、...
プログラミング

Low fragmentation heap と Look aside list heap

前回の日記で、Low fragmentation heapによって同じReleaseビルドでも挙動が変わる!という話をしましたが、こんなことWindows XPの時にはなかったような気がして、ちょっと調べてみました。 まず、Windows7の環境では以前の日記と同じく、デバッガが繋がっているときにはLFH(Low fragmentation heap)がON...
プログラミング

Releaseビルドでの挙動違い

C++の話になりますが、VisualStudioを使っていて、Releaseビルドしているのに挙動が変わる、ということに何度か出遭ったことがあります。 その挙動が変わるというのが、デバッガ接続している状態でReleaseビルド実行体を実行しているときには正常に動くのに、実行体を単体で実行させたときには不正アクセス等で異常終了する、という感じです。Releas...
プログラミング

VisualStudio2012で古い関数を使う(SDLチェック)

VisualStudio 2012を使っていて、従来でも警告はされていた古い関数群を使用すると、デフォルト設定ではエラーとなることに気付きました。例えば次のような関数です。 strcat strcpy fopen C関数の古くからある物で、Microsoftが末尾 _s が付く関数が用意されているものがその対象となっているように見えます。 これは、プロジェク...
OpenGL

GL_INTEL_map_texture 拡張

久々にIntelがOpenGL拡張を出していました。 それは、GL_INTEL_map_texture というもので、内容を読むと GPUが読んでいるメモリ領域を直接CPUからアクセス可能にする拡張のようです。 確かに最近のIntel CPUはGPU統合してしまっており、グラフィックスメモリはすなわちメインメモリなわけで、CPUから直接扱うことが出来るように...
OpenGL

NVIDIA GeForce GTX 650 TiのOpenGL 4.3

Geforce GTX650Tiを装着して現行のドライバを入れて発覚したのですが、公式ドライバ 306.97では OpenGL 4.3 はまだ使えないようです! glGetString( GL_VERSION ) で取得してバージョン表示では、 4.2 となっていました。 カタログ上は以下のように OpenGL 4.3 へ対応をうたっているのですが、もうしば...
DirectX

透明ウィンドウ(半透明ウィンドウ)の話 その3

透明なウィンドウということで、このシリーズも第3回。今回が最後となりそうです。 ようやく Windows7,Windows8両方ともで動かせるやり方が発見できました。 なお、Windows7のAeroGlassOFF状態でも動くので、注意して実装すればWindowsXPでもこの方法でいけるのではないかと思います。 その方法は、レイヤードウィンドウを使う方法で...
PC環境設定

Windows8でG41ドライバがない?

G41のWindows8用ドライバがない 実験機にWindows8をインストールしたのですが、OpenGL動くかな?と思って試してみたところ、GDI Generic状態になっていました。これはまともに動いていない!ということで、デバイスはG41だったのでそれにあわせてWindows7用のドライバを入れようとしました。しかしながら、これが失敗。最低条件を満たし...