Ejemplo n.º 1
0
gl4::Shader::Shader(const char *vertfilename, const char *fragfilename, const char *geofilename, const char *tesscontrolfilename, const char *tessevalfilename)
{
	_shaderProgram = 0;
	for (int i = 0; i < 16; ++i)
	{
		_uniformLocations[i] = -1;
	}

	init();
	attachVertexShader(vertfilename);
	attachFragmentShader(fragfilename);
	if (geofilename != 0)
	{
		attachGeometryShader(geofilename);
	}
	if (tesscontrolfilename != 0 && tessevalfilename != 0)
	{
		attachTessellationShader(tesscontrolfilename, tessevalfilename);
	}


	glBindAttribLocation(_shaderProgram, 0, "in_position");
	glBindAttribLocation(_shaderProgram, 1, "in_st");
	glBindAttribLocation(_shaderProgram, 2, "in_normal");
	glBindAttribLocation(_shaderProgram, 3, "in_color");
	glBindAttribLocation(_shaderProgram, 4, "in_attribute3f");
	glBindAttribLocation(_shaderProgram, 5, "in_attribute1f");

	link();
}
Ejemplo n.º 2
0
BrickShaderProgram::BrickShaderProgram() : ShaderProgram()
{
    mFragmentShader = new BrickFragmentShader();
    mVertexShader = new BrickVertexShader();

    mFragmentShader->load();
    mVertexShader->load();

    attachFragmentShader(mFragmentShader);
    attachVertexShader(mVertexShader);
}
Ejemplo n.º 3
0
Tp2ShaderProgram::Tp2ShaderProgram() : ShaderProgram()
{
    mFragmentShader = new Tp2FragmentShader();
    mVertexShader = new Tp2VertexShader();
    
    mFragmentShader->load();
    mVertexShader->load();

    attachFragmentShader(mFragmentShader);
    attachVertexShader(mVertexShader);
}
Ejemplo n.º 4
0
Tp2ShaderProgram::Tp2ShaderProgram(BOOL* isPointLightOn, BOOL* isSpotLightOn, 
                                   BOOL* isDirectionalLightOn) : ShaderProgram(),
    mIsPointLightOn(isPointLightOn),             mIsSpotLightOn(isSpotLightOn), 
    mIsDirectionalLightOn(isDirectionalLightOn)
{
    mFragmentShader = new Tp2FragmentShader();
    mVertexShader = new Tp2VertexShader();
    
    mFragmentShader->load();
    mVertexShader->load();

    attachFragmentShader(mFragmentShader);
    attachVertexShader(mVertexShader);
}
Ejemplo n.º 5
0
void
ShaderProgram::attachFragmentShaderFromFile(const char *shaderPath)
{
	string source = loadShaderFromFile(shaderPath);
	attachFragmentShader(source.c_str());
}