void GLProgram::updateUniforms(void) { // Since sample most probably won't change, set it to 0 now. uniforms_[kCCUniformMVPMatrix] = glGetUniformLocation(program_, kCCUniformMVPMatrix_s); uniforms_[kCCUniformSampler] = glGetUniformLocation(program_, kCCUniformSampler_s); ccGLUseProgram( program_ ); glUniform1i( uniforms_[kCCUniformSampler], 0 ); }
void CAFlashView::draw() { CAView::draw(); ccGLBlendFunc(m_sBlendFunc.src, m_sBlendFunc.dst); kmMat4 matrixP; kmMat4 matrixMV; kmMat4 matrixMVP; kmGLGetMatrix(KM_GL_PROJECTION, &matrixP ); kmGLGetMatrix(KM_GL_MODELVIEW, &matrixMV ); matrixMV.mat[13] = this->getFrame().size.height + matrixMV.mat[13]; kmMat4Multiply(&matrixMVP, &matrixP, &matrixMV); #if CC_ENABLE_GL_STATE_CACHE ccGLUseProgram(0);//valid program is NON_ZERO unsigned int #endif CCSize size = this->getFrame().size; float localScaleX = size.width/ m_pFlash->getWidth(); float localScaleY = -(size.height / m_pFlash->getHeight()); float localScale = localScaleX > -localScaleY ? -localScaleY : localScaleX; kmMat4 matrixs; kmMat4Scaling(&matrixs, localScale, -localScale, getZOrder()); kmMat4Multiply(&matrixMVP, &matrixMVP, &matrixs); m_pFlash->display(&matrixMVP); CHECK_GL_ERROR_DEBUG(); }
void GLProgram::use(void) { ccGLUseProgram(program_); }