月叮当0609 |
2016-07-01 17:07 |
setTexture函数如下: { static const GLfloat vertexVertices[] = { -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, }; m_program->setAttributeArray(ATTRIB_VERTEX, GL_FLOAT, vertexVertices, 2); m_program->enableAttributeArray(ATTRIB_VERTEX);
static const GLfloat textureVertices[] = { 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, }; m_program->setAttributeArray(ATTRIB_TEXTURE, GL_FLOAT, textureVertices, 2); m_program->enableAttributeArray(ATTRIB_TEXTURE);
m_TextureID0=m_program->uniformLocation("tex_y"); m_TextureID1=m_program->uniformLocation("tex_u"); m_TextureID2=m_program->uniformLocation("tex_v");
glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_ytexture); glTexImage2D ( GL_TEXTURE_2D, 0, GL_LUMINANCE, MAIN_TEXTURE_WIDTH, MAIN_TEXTURE_HEIGHT, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, m_pImgData); m_program->setUniformValue(m_TextureID0, 0);
glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D,m_utexture); glTexImage2D ( GL_TEXTURE_2D, 0, GL_LUMINANCE, MAIN_TEXTURE_WIDTH/2, MAIN_TEXTURE_HEIGHT/2, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, m_pImgData+Pitch); m_program->setUniformValue(m_TextureID1, 1);
glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, m_vtexture); glTexImage2D ( GL_TEXTURE_2D, 0, GL_LUMINANCE, MAIN_TEXTURE_WIDTH/2, MAIN_TEXTURE_HEIGHT/2, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, m_pImgData+Pitch+ (Pitch >> 4)); m_program->setUniformValue(m_TextureID2, 2); }
|
|