SDL で GLSL
とりあえず imagire さんの
http://imagire.zive.net/t-pot/program/104_GLSL/
を元に、SDL で glsl を使ってみましょう。とりあえず、SDL についている gl のサンプルをベースにしました。
いろいろいじってみたところ、
#include "SDL_opengl.h"
とすると、いろいろ拡張を導入してくれるようです。ただ、これだとうまく行きませんでした。結局 glew ( http://glew.sourceforge.net/ )という gl 拡張を簡単に使うためのライブラリを持ってくることにしました。まずは、
#include "gl/glew.h" #pragma comment( lib, "glew32.lib" )
で、glew を持ってきます。次に、
#define NO_SDL_GLEXT #include "SDL_opengl.h"
後は、glew の初期化と imagire さんのサンプルを切ったり張ったりしたのが、
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/gslib/GSLib/SandBox/SDL/sdl.cpp
です。SDL のサンプルに追加したコードは、全てインデント0で「適当」に貼り付けています。単に glsl が利用できていることのみを調べるため、頂点シェーダーは、
void main(void) { gl_Position = ftransform(); }
のみ、フラグメントシェーダーは、
void main(void) { gl_FragColor = vec4( 0, 1, 0, 0 ); }
のみとしました。ですので、添付画像のように、単に緑色の立方体が回っているだけです。