Exemplo n.º 1
0
void TheMaze2::initShaders() {
    
    GLuint vertex_shader = shaderFromFile("shaders/vertex.glsl", GL_VERTEX_SHADER);
    GLuint frag_shader = shaderFromFile("shaders/fragment.glsl", GL_FRAGMENT_SHADER);
    if (vertex_shader == 0 || frag_shader == 0) {
        // TODO: thow something meaningful
        throw "shader error";
    }
    
    shader_prog_ = glCreateProgram();
    glAttachShader(shader_prog_, vertex_shader);
    glAttachShader(shader_prog_, frag_shader);
    glBindFragDataLocation(shader_prog_, 0, "out_color");
    glLinkProgram(shader_prog_);
    glUseProgram(shader_prog_);
    
}
Exemplo n.º 2
0
Shader* ContentManager::loadShader( const char* vertPath, const char* fragShader )
{
	Shader* result;
	std::string s = std::string(vertPath).append( fragShader );
	
	// check if key is present
	if (shaders.find(s) != shaders.end())
		result = shaders[s];
	else
	{
		result = Shader::nextFreeShader();
		result->shaderProgramID = shaderFromFile( vertPath, fragShader );
		shaders[s] = result;
	}

	return result;
}