void CgShaderProgramD3D11::bind()
{
    if (!ParameterMap_.empty())
        cgUpdateProgramParameters(cgProgram_);
    
    if (cgD3D11BindProgram(cgProgram_) != D3D_OK)
        io::Log::error("Could not bind Cg shader");
}
void CgShaderProgramGL::bind()
{
    if (!ParameterMap_.empty())
        cgUpdateProgramParameters(cgProgram_);

    cgGLBindProgram(cgProgram_);
    cgGLEnableProfile(cgProfile_);
}
Beispiel #3
0
void Material::bind()
{
	//bytt til egen shader
	if(m_shaderSys)
		m_shaderSys->enableProfiles();
	
	if(m_vertexShader) {
		m_vertexShader->bind();
		cgGLSetStateMatrixParameter(m_vertexShader->getParameter("worldViewProj"), CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);
		cgGLSetStateMatrixParameter(m_vertexShader->getParameter("worldView"), CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY);
		cgGLSetParameter4f(m_vertexShader->getParameter("lightPos"), g_lightPos.x,g_lightPos.y,g_lightPos.z,1);
		cgGLSetMatrixParameterfc(m_vertexShader->getParameter("view"),g_viewMat);
		cgUpdateProgramParameters(m_vertexShader->getProgram());
	}
	if(m_fragmentShader) {
		m_fragmentShader->bind();
		cgGLSetParameter3f(m_fragmentShader->getParameter("col"),m_color.x,m_color.y,m_color.z);
		cgUpdateProgramParameters(m_fragmentShader->getProgram());
	}
}
Beispiel #4
0
bool GLCgShader::SetShader()
{
	cgGLBindProgram(m_cgProgam);
	if (CheckForError("cgGLBindProgram", m_shaderName))
		return false;

	cgUpdateProgramParameters(m_cgProgam);
	if (CheckForError("cgUpdateProgramParameters", m_shaderName))
		return false;

	cgGLEnableProfile(m_cgProfile);
	if (CheckForError("cgGLEnableProfile", m_shaderName))
		return false;

	return true;
}
Beispiel #5
0
void CapsuleGraphicsObject::render()
{
	glShadeModel(GL_SMOOTH);

	if(g_shaderSys)
		g_shaderSys->enableProfiles();
	if(g_defaultVertexShader) {
		g_defaultVertexShader->bind();
	}
	if(g_defaultFragmentShader)
		g_defaultFragmentShader->bind();

	glPushMatrix();
	glEnable(GL_NORMALIZE);
	glScalef(radius,length,radius);
	if(g_defaultVertexShader) {
		cgGLSetParameter4f(g_defaultVertexShader->getParameter("lightPos"), g_lightPos.x,g_lightPos.y,g_lightPos.z,1); //move to bind place
		cgGLSetMatrixParameterfc(g_defaultVertexShader->getParameter("view"),g_viewMat);
		cgGLSetStateMatrixParameter( g_defaultVertexShader->getParameter("worldViewProj"), CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY );
		cgGLSetStateMatrixParameter( g_defaultVertexShader->getParameter("worldView"), CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY );
		cgUpdateProgramParameters(g_defaultVertexShader->getProgram());
	}

	glColor3f(1,1,1);
	glEnableClientState(GL_VERTEX_ARRAY);
	glVertexPointer(3,GL_FLOAT,0,verts);
	glEnableClientState(GL_NORMAL_ARRAY);
	glNormalPointer(GL_FLOAT,0,normals);
	glDrawArrays(GL_TRIANGLES,0,nVerts);
	glDisableClientState(GL_VERTEX_ARRAY);
	glDisableClientState(GL_NORMAL_ARRAY);
	glDisable(GL_NORMALIZE);
	glPopMatrix();

	//sphere caps
	glPushMatrix();
	glTranslatef(0,length/2,0);
	sphere->render();
	glPopMatrix();
	glPushMatrix();
	glTranslatef(0,-length/2,0);
	sphere->render();
	glPopMatrix();

	if(g_shaderSys)
		g_shaderSys->disableProfiles();
}
Beispiel #6
0
void BoxGraphicsObject::render(void)
{
	if(g_shaderSys)
		g_shaderSys->enableProfiles();
	if(g_defaultVertexShader) {
		g_defaultVertexShader->bind();
	}
	if(g_defaultFragmentShader)
		g_defaultFragmentShader->bind();


	glPushMatrix();
	glEnable(GL_NORMALIZE);
	glScalef(width,height,depth);

	if(g_defaultVertexShader) {
		cgGLSetParameter4f(g_defaultVertexShader->getParameter("lightPos"), g_lightPos.x,g_lightPos.y,g_lightPos.z,1); //move to bind place
		cgGLSetMatrixParameterfc(g_defaultVertexShader->getParameter("view"),g_viewMat);
		cgGLSetStateMatrixParameter( g_defaultVertexShader->getParameter("worldViewProj"), CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY );
		cgGLSetStateMatrixParameter( g_defaultVertexShader->getParameter("worldView"), CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY );
		cgUpdateProgramParameters(g_defaultVertexShader->getProgram());
	}

	glColor3f(1,1,1);
	glEnableClientState(GL_VERTEX_ARRAY);
	glVertexPointer(3,GL_FLOAT,0,boxVerts);
	glEnableClientState(GL_NORMAL_ARRAY);
	glNormalPointer(GL_FLOAT,0,boxNormals);
	glDrawArrays(GL_QUADS,0,24);
	glDisableClientState(GL_VERTEX_ARRAY);
	glDisableClientState(GL_NORMAL_ARRAY);
	glDisable(GL_NORMALIZE);
	glPopMatrix();

	if(g_shaderSys)
		g_shaderSys->disableProfiles();
}
void VertexObject::UpdateParameters()
{ 
	cgUpdateProgramParameters(vertexProgram); 
}
Beispiel #8
0
	void UpdateParameters(){
		cgUpdateProgramParameters(mCgVertexProgram);
	}