Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void StudentRenderer::shaderCompileAndLink()
- {
- ShaderCompiler _shaderCompiler;
- std::string shaderInfoLog;
- //Get Vertex shader file path
- char buffV[FILENAME_MAX];
- GetCurrentDir(buffV, FILENAME_MAX);
- strcat_s(buffV, "\\shaders\\VertexShader.vs");
- //Compile Vertex shader
- _shaderCompiler.compileShader(gVertexShaderObject, buffV, GL_VERTEX_SHADER, shaderInfoLog);
- //Get Fragment shader file path
- char buffF[FILENAME_MAX];
- GetCurrentDir(buffF, FILENAME_MAX);
- strcat_s(buffF, "\\shaders\\FragmentShader.fs");
- //Compile Fragment shader
- _shaderCompiler.compileShader(gFragmentShaderObject, buffF, GL_FRAGMENT_SHADER, shaderInfoLog);
- //Link Vertex and Fragment shader to Program object
- _shaderCompiler.linkProgram(gShaderProgramObject, shaderInfoLog, 2, gVertexShaderObject, gFragmentShaderObject);
- //Bind Attrib location of shader attributes(GPU side) to our enum constants(CPU side)
- glBindAttribLocation(gShaderProgramObject, ATTRIBUTE_POSITION, "aPos");
- glBindAttribLocation(gShaderProgramObject, ATTRIBUTE_NORMAL, "aNormal");
- glBindAttribLocation(gShaderProgramObject, ATTRIBUTE_TEXCOORD0, "aTexCoords");
- //Get location of the shader uniforms(GPU side) to Variables(CPU side)
- mUniform = glGetUniformLocation(gShaderProgramObject, "model");
- vUniform = glGetUniformLocation(gShaderProgramObject, "view");
- pUniform = glGetUniformLocation(gShaderProgramObject, "projection");
- lightSpaceMatrixUniform = glGetUniformLocation(gShaderProgramObject, "lightSpaceMatrix");
- diffuseTextureUniform = glGetUniformLocation(gShaderProgramObject, "diffuseTexture");
- shadowMapUniform = glGetUniformLocation(gShaderProgramObject, "shadowMap");
- lightPosUniform = glGetUniformLocation(gShaderProgramObject, "lightPos");
- viewPosUniform = glGetUniformLocation(gShaderProgramObject, "viewPos");
- isDMapUniform = glGetUniformLocation(gShaderProgramObject, "u_dmap");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement