Example #1
0
//画三角形
void drawTriangle(void)
{
    GLuint ModelID = glGetUniformLocation(shaderLoader.getProgramID(), "Model");
    if(ModelID != -1)
    {
        glUniformMatrix4fv(ModelID, 1, GL_FALSE, &Model[0][0]);
    }
    
    GLuint ProjectionID = glGetUniformLocation(shaderLoader.getProgramID(), "Projection");
    if(ProjectionID != -1)
    {
        glUniformMatrix4fv(ProjectionID, 1, GL_FALSE, &Projection[0][0]);
    }
    
    GLuint ViewID = glGetUniformLocation(shaderLoader.getProgramID(), "View");
    if(ViewID != -1)
    {
        glUniformMatrix4fv(ViewID, 1, GL_FALSE, &View[0][0]);
    }
    
    glBindVertexArray(vao);
    glDrawArrays(GL_TRIANGLES, 0, 12*3); // 12*3 indices starting at 0 -> 12 triangles
    glBindVertexArray(0);
}
Example #2
0
//设置并使用着色器
void initShader(void)
{
    shaderLoader.load("/Users/wistoneqqx/Documents/opengl/github/texture-maps-gl7/texture-maps/simpleShader.vert",
                      "/Users/wistoneqqx/Documents/opengl/github/texture-maps-gl7/texture-maps/simpleShader.frag");
    shaderLoader.bind();
    
    //定义两张纹理的采样器
    glGenSamplers(1,&g_Sampler1);
    glGenSamplers(1,&g_Sampler2);
    
    glSamplerParameteri(g_Sampler1, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glSamplerParameteri(g_Sampler1, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    
    glSamplerParameteri(g_Sampler2, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glSamplerParameteri(g_Sampler2, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    
    textureLocation1 = glGetUniformLocation(shaderLoader.getProgramID(), "u_texture1");
    textureLocation2 = glGetUniformLocation(shaderLoader.getProgramID(), "u_texture2");
    
    if(textureLocation1==-1 && textureLocation2==-1)
        printf("Get textureLocation error!\n");
}