WINTERMUTE: Replace glInterleavedArrays calls

This commit is contained in:
Paweł Kołodziejski 2020-10-22 16:43:15 +02:00
parent 702c843e06
commit db89c680a1
3 changed files with 26 additions and 14 deletions

View file

@ -213,9 +213,13 @@ void BaseRenderOpenGL3D::displayShadow(BaseObject *object, const Math::Vector3d
glEnable(GL_TEXTURE_2D);
static_cast<BaseSurfaceOpenGL3D *>(shadowImage)->setTexture();
#ifndef __MORPHOS__
glInterleavedArrays(GL_T2F_N3F_V3F, 0, _simpleShadow);
#endif
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(SimpleShadowVertex), &_simpleShadow[0].x);
glNormalPointer(GL_FLOAT, sizeof(SimpleShadowVertex), &_simpleShadow[0].nx);
glTexCoordPointer(2, GL_FLOAT, sizeof(SimpleShadowVertex), &_simpleShadow[0].u);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
@ -721,10 +725,11 @@ bool BaseRenderOpenGL3D::drawSpriteEx(BaseSurfaceOpenGL3D &tex, const Wintermute
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
#ifndef __MORPHOS__
glInterleavedArrays(GL_T2F_C4UB_V3F, 0, vertices);
#endif
glVertexPointer(3, GL_FLOAT, sizeof(SpriteVertex), &vertices[0].x);
glTexCoordPointer(2, GL_FLOAT, sizeof(SpriteVertex), &vertices[0].u);
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(SpriteVertex), &vertices[0].r);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

View file

@ -69,9 +69,15 @@ bool MeshXOpenGL::render(ModelX *model) {
glDisable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 0);
}
#ifndef __MORPHOS__
glInterleavedArrays(GL_T2F_N3F_V3F, 0, _vertexData);
#endif
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(3, GL_FLOAT, kVertexComponentCount * sizeof(float), _vertexData + kPositionOffset);
glNormalPointer(GL_FLOAT, kVertexComponentCount * sizeof(float), _vertexData + kNormalOffset);
glTexCoordPointer(2, GL_FLOAT, kVertexComponentCount * sizeof(float), _vertexData + kTextureCoordOffset);
glDrawElements(GL_TRIANGLES, _indexRanges[i + 1] - _indexRanges[i], GL_UNSIGNED_SHORT, _indexData.data() + _indexRanges[i]);
}

View file

@ -133,11 +133,12 @@ bool ShadowVolumeOpenGL::renderToScene() {
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
// Draw a big, gray square
#ifndef __MORPHOS__
glInterleavedArrays(GL_C4UB_V3F, 0, _shadowMask);
#endif
glVertexPointer(3, GL_FLOAT, sizeof(ShadowVertex), &_shadowMask[0].x);
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(ShadowVertex), &_shadowMask[0].r);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
// Restore render states