首页 > 代码库 > openGL的第一课
openGL的第一课
1 #include <stdio.h> 2 #include <GLTools.h> 3 4 #include <GLShaderManager.h> 5 6 7 8 #ifdef __APPLE__ 9 10 #include <GLUT/glut.h> 11 12 #else 13 14 #define FREEGLUT_STATIC 15 16 #include <GL/glut.h> 17 18 #endif 19 20 21 22 GLBatch triangleBatch; 23 24 GLShaderManager shaderManager; 25 26 27 28 void changeSize( int W, int H ) 29 30 { 31 32 glViewport(0, 0, W, H); 33 34 } 35 36 37 38 void SetupRc() 39 40 { 41 42 glClearColor(1.0f, 1.0f, 1.0f, 1.0f); 43 44 45 46 shaderManager.InitializeStockShaders(); 47 48 49 50 GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f, 51 52 0.5f, 0.0f, 0.0f, 53 54 0.0f, 0.5f, 0.0f}; 55 56 57 58 triangleBatch.Begin(GL_TRIANGLES, 3); 59 60 triangleBatch.CopyVertexData3f(vVerts); 61 62 triangleBatch.End(); 63 64 } 65 66 67 68 void RenderScene() 69 70 { 71 72 glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT ); 73 74 75 76 GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f }; 77 78 shaderManager.UseStockShader( GLT_SHADER_IDENTITY,vRed ); 79 80 triangleBatch.Draw(); 81 82 83 84 glutSwapBuffers(); 85 86 } 87 88 89 90 int main( int argc, char* argv[] ) 91 92 { 93 94 //设置当前工作目录 95 96 gltSetWorkingDirectory(argv[0]); 97 98 99 100 //初始化glut101 102 glutInit(&argc, argv);103 104 105 106 //设置显示模式107 108 glutInitDisplayMode( GLUT_DEPTH|GLUT_RGBA|GLUT_STENCIL|GLUT_DOUBLE );109 110 111 112 //初始化窗口113 114 glutInitWindowSize(800, 600);115 116 117 118 //创建窗口,并且命名119 120 glutCreateWindow( "Triangle" );121 122 123 124 125 126 glutReshapeFunc(changeSize);127 128 129 130 glutDisplayFunc(RenderScene);131 132 133 134 GLenum err = glewInit();135 136 if (err !=GLEW_OK )137 138 {139 140 fprintf(stderr, "GLEW Error: %s\n",glewGetErrorString(err) );141 142 return 1;143 144 }145 146 147 148 SetupRc();149 150 151 152 //开启OpenGL主循环153 154 glutMainLoop();155 156 157 158 159 160 return 0;161 162 }163 164
最近开始对OpenGL进行了一下恶补,不得不说,蓝宝书,真的是本好书!
openGL的第一课
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。