shithub: cstory

Download patch

ref: 53c0e8470fa7cb0893d30bc1f19640e34ca7d0c2
parent: dfacd626622d57ef924f394f6378fdfb437e0959
author: Clownacy <Clownacy@users.noreply.github.com>
date: Mon Feb 3 10:53:59 EST 2020

Add an optimisation to the OpenGL renderers

Since we track the currently-bound "source texture", we don't need
to poll the OpenGL driver for the same info.

--- a/src/Backends/Rendering/OpenGL3.cpp
+++ b/src/Backends/Rendering/OpenGL3.cpp
@@ -479,9 +479,6 @@
 {
 	(void)udata;
 
-	GLint previously_bound_texture;
-	glGetIntegerv(GL_TEXTURE_BINDING_2D, &previously_bound_texture);
-
 	GLuint texture_id;
 	glGenTextures(1, &texture_id);
 	glBindTexture(GL_TEXTURE_2D, texture_id);
@@ -499,7 +496,7 @@
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
 #endif
 
-	glBindTexture(GL_TEXTURE_2D, previously_bound_texture);
+	glBindTexture(GL_TEXTURE_2D, last_source_texture);
 
 	return (SPRITEBATCH_U64)texture_id;
 }
@@ -796,9 +793,6 @@
 	if (surface == NULL)
 		return NULL;
 
-	GLint previously_bound_texture;
-	glGetIntegerv(GL_TEXTURE_BINDING_2D, &previously_bound_texture);
-
 	glGenTextures(1, &surface->texture_id);
 	glBindTexture(GL_TEXTURE_2D, surface->texture_id);
 #ifdef USE_OPENGLES2
@@ -814,7 +808,7 @@
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
 #endif
 
-	glBindTexture(GL_TEXTURE_2D, previously_bound_texture);
+	glBindTexture(GL_TEXTURE_2D, last_source_texture);
 
 	surface->width = width;
 	surface->height = height;
@@ -866,14 +860,11 @@
 	if (surface->texture_id == last_source_texture || surface->texture_id == last_destination_texture)
 		FlushVertexBuffer();
 
-	GLint previously_bound_texture;
-	glGetIntegerv(GL_TEXTURE_BINDING_2D, &previously_bound_texture);
-
 	glBindTexture(GL_TEXTURE_2D, surface->texture_id);
 	glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, surface->pixels);
 	free(surface->pixels);
 
-	glBindTexture(GL_TEXTURE_2D, previously_bound_texture);
+	glBindTexture(GL_TEXTURE_2D, last_source_texture);
 }
 
 // ====================
--