Browse Source

Adding the files is a crucial step, you know

And I so blame slime73 for his incorrect diff
Bart van Strien 13 years ago
parent
commit
9bf6f43a4e
2 changed files with 111 additions and 0 deletions
  1. 56 0
      src/modules/graphics/opengl/OpenGL.cpp
  2. 55 0
      src/modules/graphics/opengl/OpenGL.h

+ 56 - 0
src/modules/graphics/opengl/OpenGL.cpp

@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2006-2012 LOVE Development Team
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty.  In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ *    claim that you wrote the original software. If you use this software
+ *    in a product, an acknowledgment in the product documentation would be
+ *    appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ *    misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ **/
+
+#include "OpenGL.h"
+
+namespace love
+{
+namespace graphics
+{
+namespace opengl
+{
+	static GLuint boundTexture = 0;
+	
+	void resetBoundTexture()
+	{
+		// OpenGL might not be initialized yet, so we can't do a real reset
+		boundTexture = 0;
+	}
+	
+	void bindTexture(GLuint texture, bool override)
+	{
+		if (texture != boundTexture || texture == 0 || override)
+		{
+			boundTexture = texture;
+			glBindTexture(GL_TEXTURE_2D, texture);
+		}
+	}
+	
+	void deleteTexture(GLuint texture)
+	{
+		if (texture == boundTexture)
+			boundTexture = 0;
+		
+		glDeleteTextures(1, &texture);
+	}
+	
+} // opengl
+} // graphics
+} // love

+ 55 - 0
src/modules/graphics/opengl/OpenGL.h

@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2006-2012 LOVE Development Team
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty.  In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ *    claim that you wrote the original software. If you use this software
+ *    in a product, an acknowledgment in the product documentation would be
+ *    appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ *    misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ **/
+
+#ifndef LOVE_COMMON_OPENGL_H
+#define LOVE_COMMON_OPENGL_H
+
+#include "GLee.h"
+
+namespace love
+{
+namespace graphics
+{
+namespace opengl
+{
+
+	// resets the stored bound texture id
+	void resetBoundTexture();
+		
+	/**
+	 * Helper for binding an OpenGL texture.
+	 * Makes sure we aren't redundantly binding textures.
+	 * @param texture The texture to bind.
+	 * @param override Overrides the checks to guarantee texture bind
+	 **/
+	void bindTexture(GLuint texture, bool override = false);
+	
+	/**
+	 * Helper for deleting an OpenGL texture.
+	 * Cleans up if the texture is currently bound.
+	 * @param texture The texture to delete.
+	 **/
+	void deleteTexture(GLuint texture);
+	
+} // opengl
+} // graphics
+} // love
+
+#endif