Exemplo n.º 1
0
GeoSphereProgram::GeoSphereProgram(const std::string &filename, const std::string &defines)
{
	m_name = filename;
	m_defines = defines;
	LoadShaders(filename, defines);
	InitUniforms();
}
Exemplo n.º 2
0
void Program::Reload()
{
	Unuse();
	glDeleteProgram(m_program);
	LoadShaders(m_name, m_defines);
	InitUniforms();
}
Exemplo n.º 3
0
SPostProcess::SPostProcess(SShader *prog, int w, int h,
                           const SGenericTexture* texSRC1,
                           const SGenericTexture *texSRC2,
                           const SGenericTexture* texSRC3,
                           const SGenericTexture* texSRC4)

    :p_prog(prog)
{
    for (int i = 0 ; i < SRC_TEXTURES_MAX ; i++){
        d_texSRC[i] = 0;
        d_RBO[i] = 0; //??

    }
    d_resultRBO = 0;
    d_texSRC[0] = texSRC1;
    d_texSRC[1] = texSRC2;
    d_texSRC[2] = texSRC3;
    d_texSRC[3] = texSRC4;


    InitQuard();
    InitUniforms(RectSizeInt(w,h));



}
Exemplo n.º 4
0
MultiProgram::MultiProgram(const MaterialDescriptor &desc, int lights)
{
	lights = Clamp(lights, 1, 4);

	//build some defines
	std::stringstream ss;
	if (desc.textures > 0)
		ss << "#define TEXTURE0\n";
	if (desc.vertexColors)
		ss << "#define VERTEXCOLOR\n";
	if (desc.alphaTest)
		ss << "#define ALPHA_TEST\n";
	//using only one light
	if (desc.lighting && lights > 0)
		ss << stringf("#define NUM_LIGHTS %0{d}\n", lights);
	else
		ss << "#define NUM_LIGHTS 0\n";

	if (desc.specularMap)
		ss << "#define MAP_SPECULAR\n";
	if (desc.glowMap)
		ss << "#define MAP_EMISSIVE\n";
	if (desc.usePatterns)
		ss << "#define MAP_COLOR\n";
	if (desc.quality & HAS_HEAT_GRADIENT)
		ss << "#define HEAT_COLOURING\n";

	m_name = "multi";
	m_defines = ss.str();

	LoadShaders(m_name, m_defines);
	InitUniforms();
}
Exemplo n.º 5
0
Program::Program(const std::string &name, const std::string &defines)
: m_name(name)
, m_defines(defines)
, m_program(0)
{
	LoadShaders(name, defines);
	InitUniforms();
}
Exemplo n.º 6
0
VtxColorProgram::VtxColorProgram(const MaterialDescriptor &desc)
{
	m_name = "vtxColor";
	RENDERER_CHECK_ERRORS();

	LoadShaders(m_name, m_defines);
	InitUniforms();
}
Exemplo n.º 7
0
VtxColorProgram::VtxColorProgram(const MaterialDescriptor &desc)
{
	m_name = "vtxColor";
	CheckRenderErrors();

	LoadShaders(m_name, m_defines);
	InitUniforms();
}
Exemplo n.º 8
0
		UIProgram::UIProgram(const MaterialDescriptor &desc)
		{
			m_name = "ui";
			CHECKERRORS();

			LoadShaders(m_name, m_defines);
			InitUniforms();
		}
FresnelColourProgram::FresnelColourProgram(const MaterialDescriptor &desc)
{
	//build some defines
	std::stringstream ss;

	m_name = "FresnelColour";
	m_defines = ss.str();

	LoadShaders(m_name, m_defines);
	InitUniforms();
}
Exemplo n.º 10
0
ShieldProgram::ShieldProgram(const MaterialDescriptor &desc, int lights)
{
	lights = Clamp(lights, 1, 4);

	//build some defines
	std::stringstream ss;

	m_name = "shield";
	m_defines = ss.str();

	LoadShaders(m_name, m_defines);
	InitUniforms();
}
Exemplo n.º 11
0
int Graphic::Renderer::Init() 
{
	if (!GetShaderProgramWithType(ShaderProgram::Type::Main)->isLinked())
	{
		std::cout<<"Shader program is not linked. Failed to init renderer \n";
		return 1;
	}
	Settings::Instance().resources.Init(*GetShaderProgramWithType(ShaderProgram::Type::Main));
	Settings::Instance().PassToShaderProgram(*GetShaderProgramWithType(ShaderProgram::Type::Main));
	
	skyBox->LoadModel(Settings::Instance().resources.GetPathSphereModel().c_str());

	if (InitUniforms() != 0)
		std::cout << "Failed to load uniforms \n";

	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LESS);

	return 0;
}
Exemplo n.º 12
0
SPostProcess::SPostProcess(SShader *prog,  RBO * resultRBO,
                                           RBO * srcRBO1,
                                           RBO * srcRBO2,
                                           RBO * srcRBO3,
                                           RBO * srcRBO4)
:p_prog(prog),d_resultRBO(resultRBO)
{
    for (int i = 0 ; i < SRC_TEXTURES_MAX ; i++){
        d_texSRC[i] = 0;
    }
    d_RBO[0] = srcRBO1;
    d_RBO[1] = srcRBO2;
    d_RBO[2] = srcRBO3;
    d_RBO[3] = srcRBO4;

    for (int i = 0 ; i < SRC_TEXTURES_MAX ; i++){
        if (d_RBO[i])
            d_texSRC[i] = d_RBO[i]->texIMG(0);
    }

    InitQuard();
    RectSizeInt sz = resultRBO->getSize();
    InitUniforms(sz);
}
void ShaderBase::InitUniforms(ID3D10Blob* s)
{
    InitUniforms(s->GetBufferPointer(), s->GetBufferSize());
}