示例#1
0
bool Shader::init(const char* vertexPath, const char* fragmentPath)
{
	//create a vertex shader
	GLuint vertexShader = genShader(GL_VERTEX_SHADER, vertexPath);
	if (!vertexShader)
	{
		return false;
	}
	//create a fragment shader.
	GLuint fragmentShader = genShader(GL_FRAGMENT_SHADER, fragmentPath);
	if (!fragmentShader)
	{
		glDeleteShader(vertexShader);
		return false;
	}
	//Link the vertex shader and fragment shader.
	GLuint shader[2] = { vertexShader, fragmentShader };

	mProgram = linkProgram(shader, 2);

	// Delete the shaders as they're linked into our program now and no longer necessery
	glDeleteShader(vertexShader);
	glDeleteShader(fragmentShader);

	return true;

}
示例#2
0
Render::Render()
    : particleTexture1(0), particleProgram1(0), particleTexture2(0), particleProgram2(0),
      particleFrameBuffer(0)
{
    particleProgram1 = genProgram
    (
        0,
        genShader(GL_FRAGMENT_SHADER, particleFragmentShader1Source)
    );
    particleProgram2 = genProgram
    (
        genShader(GL_VERTEX_SHADER, particleVertexShader2Source),
        genShader(GL_FRAGMENT_SHADER, particleFragmentShader2Source)
    );
    genParticleTexture1();
    genParticleTexture2();
    genParticleFrameBuffer();
}