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_); }
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()); } }
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; }
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(); }
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); }
void UpdateParameters(){ cgUpdateProgramParameters(mCgVertexProgram); }