Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. void StudentRenderer::shaderCompileAndLink()
  2. {
  3. ShaderCompiler _shaderCompiler;
  4. std::string shaderInfoLog;
  5.  
  6. //Get Vertex shader file path
  7. char buffV[FILENAME_MAX];
  8. GetCurrentDir(buffV, FILENAME_MAX);
  9. strcat_s(buffV, "\\shaders\\VertexShader.vs");
  10. //Compile Vertex shader
  11. _shaderCompiler.compileShader(gVertexShaderObject, buffV, GL_VERTEX_SHADER, shaderInfoLog);
  12.  
  13. //Get Fragment shader file path
  14. char buffF[FILENAME_MAX];
  15. GetCurrentDir(buffF, FILENAME_MAX);
  16. strcat_s(buffF, "\\shaders\\FragmentShader.fs");
  17. //Compile Fragment shader
  18. _shaderCompiler.compileShader(gFragmentShaderObject, buffF, GL_FRAGMENT_SHADER, shaderInfoLog);
  19.  
  20. //Link Vertex and Fragment shader to Program object
  21. _shaderCompiler.linkProgram(gShaderProgramObject, shaderInfoLog, 2, gVertexShaderObject, gFragmentShaderObject);
  22.  
  23. //Bind Attrib location of shader attributes(GPU side) to our enum constants(CPU side)
  24. glBindAttribLocation(gShaderProgramObject, ATTRIBUTE_POSITION, "aPos");
  25. glBindAttribLocation(gShaderProgramObject, ATTRIBUTE_NORMAL, "aNormal");
  26. glBindAttribLocation(gShaderProgramObject, ATTRIBUTE_TEXCOORD0, "aTexCoords");
  27.  
  28. //Get location of the shader uniforms(GPU side) to Variables(CPU side)
  29. mUniform = glGetUniformLocation(gShaderProgramObject, "model");
  30. vUniform = glGetUniformLocation(gShaderProgramObject, "view");
  31. pUniform = glGetUniformLocation(gShaderProgramObject, "projection");
  32. lightSpaceMatrixUniform = glGetUniformLocation(gShaderProgramObject, "lightSpaceMatrix");
  33. diffuseTextureUniform = glGetUniformLocation(gShaderProgramObject, "diffuseTexture");
  34. shadowMapUniform = glGetUniformLocation(gShaderProgramObject, "shadowMap");
  35. lightPosUniform = glGetUniformLocation(gShaderProgramObject, "lightPos");
  36. viewPosUniform = glGetUniformLocation(gShaderProgramObject, "viewPos");
  37. isDMapUniform = glGetUniformLocation(gShaderProgramObject, "u_dmap");
  38.  
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement