About
Contents
STL
Android
Eigen
enchant.js
Firefox OS
OpenGL
OpenGL ES 2.0
pukiwiki
UE4
Unity
Windows Phone
Xamarin
Materials Link
その他
PR
STL
Android
Eigen
enchant.js
Firefox OS
OpenGL
OpenGL ES 2.0
pukiwiki
UE4
Unity
Windows Phone
Xamarin
点、線、四角形を何か表示してみます。
#include <GL/freeglut.h> // 頂点情報。 struct FloatVertex { float x; float y; float z; }; // 色情報。 struct FloatColor { float r; float g; float b; float a; }; // 頂点配列情報 static const FloatVertex Vertices[] = { { -0.5f, 0.5f, 0.0 }, // 左上 }; // カラー配列情報 static const FloatColor Colors[] = { { 1.0f, 0.0f, 0.0f, 1.0f }, }; // 描画順 static const GLuint Indices[] = { 0, }; // ディスプレイコールバック void displayCallBack() { // クリアカラーの設定。 glClearColor( 1.0, 1.0, 1.0, 1.0 ); // 画面クリア。 glClear( GL_COLOR_BUFFER_BIT ); // 点の大きさ指定。 glPointSize( 10.0f ); // 描画。 glDrawElements( GL_POINTS, sizeof(Indices)/sizeof(Indices[0]), GL_UNSIGNED_INT, Indices ); // ダブルバッファ交換。 glutSwapBuffers(); } // メイン int main( int argc, char *argv[] ) { // GLUTの初期化 glutInit( &argc, argv ); // ウインドウの表示モード指定 glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA ); // ウインドウ生成 glutCreateWindow( argv[0] ); // 頂点、カラーのセットアップ。 { // 頂点配列のメモリアドレスの指定 glVertexPointer( 3, GL_FLOAT, 0, Vertices ); glEnableClientState( GL_VERTEX_ARRAY ); // カラー配列のメモリアドレスの指定 glColorPointer( 4, GL_FLOAT, 0, Colors ); glEnableClientState( GL_COLOR_ARRAY ); } // ディスプレイ コールバックの登録。 glutDisplayFunc( displayCallBack ); // メインループ glutMainLoop(); return 0; }
// 頂点配列情報 static const FloatVertex Vertices[] = { { -0.5f, -0.5f, 0.0 }, // 左下 { 0.5f, -0.5f, 0.0 }, // 右下 { 0.5f, 0.5f, 0.0 }, // 右上 { -0.5f, 0.5f, 0.0 }, // 左上 }; // カラー配列情報 static const FloatColor Colors[] = { { 1.0f, 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f, 1.0f }, { 0.0f, 0.0f, 1.0f, 1.0f }, { 1.0f, 0.0f, 1.0f, 1.0f }, }; // 描画順 static const GLuint Indices[] = { 0, 1, 2, 3, }; // ディスプレイコールバック void displayCallBack() { // クリアカラーの設定。 glClearColor( 1.0, 1.0, 1.0, 1.0 ); // 画面クリア。 glClear( GL_COLOR_BUFFER_BIT ); // 描画。 glDrawElements( GL_LINE_LOOP, sizeof(Indices)/sizeof(Indices[0]), GL_UNSIGNED_INT, Indices ); // ダブルバッファ交換。 glutSwapBuffers(); }
// 頂点配列情報 static const FloatVertex Vertices[] = { { -0.5f, 0.5f, 0.0 }, // 左上 { -0.5f, -0.5f, 0.0 }, // 左下 { 0.5f, 0.5f, 0.0 }, // 右上 { 0.5f, -0.5f, 0.0 }, // 右下 }; // カラー配列情報 static const FloatColor Colors[] = { { 1.0f, 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f, 1.0f }, { 0.0f, 0.0f, 1.0f, 1.0f }, { 1.0f, 0.0f, 1.0f, 1.0f }, }; // 描画順 static const GLuint Indices[] = { 0, 1, 2, 3, }; // ディスプレイコールバック void displayCallBack() { // クリアカラーの設定。 glClearColor( 1.0, 1.0, 1.0, 1.0 ); // 画面クリア。 glClear( GL_COLOR_BUFFER_BIT ); // 描画。 glDrawElements( GL_TRIANGLE_STRIP, sizeof(Indices)/sizeof(Indices[0]), GL_UNSIGNED_INT, Indices ); // ダブルバッファ交換。 glutSwapBuffers(); }