#include
#include
#include
#include readtext.h #ifdef _APPLE_ #include
#else #define FREEGLUT_STATIC #include
#endif #pragma comment(lib, readtext.lib) GLuint vShader, fShader, programHandle; GLint vaoHandle, vboHandles[2], positionBufferHandle, colorBufferHandle; GLuint elapseTimeUniformLocation, loopDurationLocation, fragLoopDurationLocation; GLint positionLocation, colorLocation; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// int infoLogLength =0; int charWritten =0; char *infoLog; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// float positionData[]={ 0.8f, 0.0f, 0.0f, -0.8f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f}; ////////////////////////////////////////// //float colorData[]= { 1.0, 0.0, 0.0, // 0.0, 1.0, 0.0, // 0.0, 0.0, 1.0}; // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void SetupShader() { char *renderer; char *vender; char *version; char *glslVersion; //////////////////////////////////// char *vs, *fs; char *vv, *ff; char *txt; ///////////////////////////////////////////////////////////// renderer =glGetString(GL_RENDERER); vender =glGetString(GL_VENDOR); version =glGetString(GL_VERSION); glslVersion =glGetString(GL_SHADING_LANGUAGE_VERSION); printf(graphic card: %s , renderer); printf(graphic company: %s , vender); printf(openGL version: %s , version); printf(GLSL version: %s , glslVersion); printf(***************************************************** ); ////////////////////////////////////////////////////////////// //txt =readText(2.txt); //printf(%s ,txt); //putchar(10); vShader =glCreateShader(GL_VERTEX_SHADER); vs =readText(shader/triangle.vert); //printf(%s ,vs); vv =vs; if(vShader ==0) { printf(Error: fail to create shader!); exit(1); } glShaderSource(vShader, 1, &vv, NULL); glCompileShader(vShader); free(vs); glGetShaderiv(vShader, GL_INFO_LOG_LENGTH, &infoLogLength); if(infoLogLength >0) { infoLog =(char *)malloc(infoLogLength); glGetShaderInfoLog(vShader, infoLogLength, &charWritten, infoLog); printf(%s , infoLog); printf(********************************************************** ); free(infoLog); } ///////////////////////////////////////////////////////////////////////////////// fShader =glCreateShader(GL_FRAGMENT_SHADER); if(fShader ==0) { printf(can't create fragment shader! ); exit(1); } fs =readText(shader/triangle.frag); //printf(%s ,fs); ff= fs; glShaderSource(fShader, 1, &ff, NULL); glCompileShader(fShader); free(fs); glGetShaderiv(fShader, GL_INFO_LOG_LENGTH, &infoLogLength); if(infoLogLength >0) { infoLog =(char *)malloc(infoLogLength); glGetShaderInfoLog(fShader, infoLogLength, &charWritten, infoLog); ////////charWritten is printf(%s ,infoLog); printf(*********************************************************** ); free(infoLog); } //////////////////////////////////// //////