OpenGL环境搭建

2020-08-07  本文已影响0人  君幸食j
    #include "GLTools.h"
    #include <glut/glut.h>
    
    GLBatch triangleBatch;
    GLShaderManager shaderManager;
    
    void ChangeSize(int w,int h)
    {
        glViewport(0,0, w, h);
    }
    
    void SetupRC()
    {
        glClearColor(0.0f,0.0f,1.0f,1.0f);
        
        shaderManager.InitializeStockShaders();
        
        GLfloat vVerts[] = {
            -0.5f,0.0f,0.0f,
            0.5f,0.0f,0.0f,
            0.0f,0.5f,0.0f
        };
        
        triangleBatch.Begin(GL_TRIANGLES,3);
        triangleBatch.CopyVertexData3f(vVerts);
        triangleBatch.End();
    }
    
    void RenderScene(void)
    {
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);

        GLfloat vRed[] = {1.0f,0.0f,0.0f,1.0f};

        shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);
        triangleBatch.Draw();

        glutSwapBuffers();
    }
 
    int main(int argc,char* argv[])
    {
        gltSetWorkingDirectory(argv[0]);

        glutInit(&argc, argv);

        glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);

        glutInitWindowSize(800,600);
        glutCreateWindow("Triangle");

        glutReshapeFunc(ChangeSize);
        glutDisplayFunc(RenderScene);

        GLenum err = glewInit();
        if(GLEW_OK != err)
        {
            fprintf(stderr,"glew error:%s\n",glewGetErrorString(err));
            return 1;
        }

        SetupRC();
        glutMainLoop();
        return 0;
    
    }
上一篇 下一篇

猜你喜欢

热点阅读