[Scummvm-git-logs] scummvm master -> f24bffc8cf2fd0ba5538a82977ab2122943740ca

aquadran noreply at scummvm.org
Mon Jan 10 01:13:46 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f24bffc8cf BACKENDS: Drop glBegin/glEnd


Commit: f24bffc8cf2fd0ba5538a82977ab2122943740ca
    https://github.com/scummvm/scummvm/commit/f24bffc8cf2fd0ba5538a82977ab2122943740ca
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2022-01-10T02:13:40+01:00

Commit Message:
BACKENDS: Drop glBegin/glEnd

Changed paths:
    backends/graphics3d/opengl/surfacerenderer.cpp


diff --git a/backends/graphics3d/opengl/surfacerenderer.cpp b/backends/graphics3d/opengl/surfacerenderer.cpp
index a0a29e18070..85af0895fef 100644
--- a/backends/graphics3d/opengl/surfacerenderer.cpp
+++ b/backends/graphics3d/opengl/surfacerenderer.cpp
@@ -48,6 +48,13 @@ SurfaceRenderer *createBestSurfaceRenderer() {
 #endif
 }
 
+struct SurfaceVertex {
+	float x;
+	float y;
+	float u;
+	float v;
+};
+
 SurfaceRenderer::SurfaceRenderer() :
 		_flipY(false),
 		_alphaBlending(false) {
@@ -111,19 +118,38 @@ void FixedSurfaceRenderer::render(const TextureGL *tex, const Math::Rect2d &dest
 	float sizeX   = fabsf(dest.getWidth());
 	float sizeY   = fabsf(dest.getHeight());
 
+	SurfaceVertex vertices[4];
+	vertices[0].x = offsetX;
+	vertices[0].y = offsetY;
+	vertices[0].u = 0.0f;
+	vertices[0].v = texTop;
+	vertices[1].x = offsetX + sizeX;
+	vertices[1].y = offsetY;
+	vertices[1].u = texcropX;
+	vertices[1].v = texTop;
+	vertices[2].x = offsetX + sizeX;
+	vertices[2].y = offsetY + sizeY;
+	vertices[2].u = texcropX;
+	vertices[2].v = texBottom;
+	vertices[3].x = offsetX;
+	vertices[3].y = offsetY + sizeY;
+	vertices[3].u = 0.0f;
+	vertices[3].v = texBottom;
+
 	glColor4f(1.0, 1.0, 1.0, 1.0);
 
 	glBindTexture(GL_TEXTURE_2D, tex->getTextureName());
-	glBegin(GL_QUADS);
-		glTexCoord2f(0, texTop);
-		glVertex2f(offsetX, offsetY);
-		glTexCoord2f(texcropX, texTop);
-		glVertex2f(offsetX + sizeX, offsetY);
-		glTexCoord2f(texcropX, texBottom);
-		glVertex2f(offsetX + sizeX, offsetY + sizeY);
-		glTexCoord2f(0.0, texBottom);
-		glVertex2f(offsetX, offsetY + sizeY);
-	glEnd();
+
+	glEnableClientState(GL_VERTEX_ARRAY);
+	glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+
+	glVertexPointer(2, GL_FLOAT, sizeof(SurfaceVertex), &vertices[0].x);
+	glTexCoordPointer(2, GL_FLOAT, sizeof(SurfaceVertex), &vertices[0].u);
+
+	glDrawArrays(GL_QUADS, 0, 4);
+
+	glDisableClientState(GL_VERTEX_ARRAY);
+	glDisableClientState(GL_TEXTURE_COORD_ARRAY);
 }
 
 void FixedSurfaceRenderer::restorePreviousState() {
@@ -148,10 +174,10 @@ void FixedSurfaceRenderer::restorePreviousState() {
 
 ShaderSurfaceRenderer::ShaderSurfaceRenderer() {
 	const GLfloat vertices[] = {
-			0.0, 0.0,
-			1.0, 0.0,
-			0.0, 1.0,
-			1.0, 1.0,
+		0.0, 0.0,
+		1.0, 0.0,
+		0.0, 1.0,
+		1.0, 1.0,
 	};
 
 	// Setup the box shader used to render the overlay




More information about the Scummvm-git-logs mailing list