From d7288f956ccea34fc6bdf118f13cda5ccf3d54fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Mon, 4 Nov 2013 02:48:09 -0300 Subject: [PATCH] EE_USE_DOUBLES is disabled by default in all archs. Reduced unnecessary OpenGL calls. Added eeColorAff typedef. --- include/eepp/declares.hpp | 10 +------ include/eepp/graphics/opengl.hpp | 2 +- include/eepp/graphics/renderer/cgl.hpp | 1 + include/eepp/system/colors.hpp | 1 + src/eepp/graphics/cvertexbufferogl.cpp | 1 - src/eepp/graphics/cvertexbuffervbo.cpp | 1 - src/eepp/graphics/renderer/cgl.cpp | 29 +++++++++++++++++++ src/eepp/graphics/renderer/crenderergl3cp.cpp | 2 -- 8 files changed, 33 insertions(+), 14 deletions(-) diff --git a/include/eepp/declares.hpp b/include/eepp/declares.hpp index 22717e36e..4cf4c3dcc 100644 --- a/include/eepp/declares.hpp +++ b/include/eepp/declares.hpp @@ -157,14 +157,6 @@ #define EE_API #endif -#ifndef EE_USE_DOUBLES - #ifdef EE_64BIT - #define EE_USE_DOUBLES 1 - #else - #define EE_USE_DOUBLES 0 - #endif -#endif - #if ( defined( EE_GLES2 ) || defined( EE_GLES1 ) ) && !defined( EE_GLES ) #define EE_GLES #endif @@ -185,7 +177,7 @@ #define eeINDEX_NOT_FOUND 0xFFFFFFFF namespace EE { -#if 1 == EE_USE_DOUBLES +#ifdef EE_USE_DOUBLES typedef double eeFloat; #define eesqrt sqrt #define eesin sin diff --git a/include/eepp/graphics/opengl.hpp b/include/eepp/graphics/opengl.hpp index 64d02330a..3910c2f00 100644 --- a/include/eepp/graphics/opengl.hpp +++ b/include/eepp/graphics/opengl.hpp @@ -3,7 +3,7 @@ #include -#if 1 == EE_USE_DOUBLES +#ifdef EE_USE_DOUBLES #define GL_FP GL_DOUBLE #else #define GL_FP GL_FLOAT diff --git a/include/eepp/graphics/renderer/cgl.hpp b/include/eepp/graphics/renderer/cgl.hpp index a8f0fa186..161529a43 100644 --- a/include/eepp/graphics/renderer/cgl.hpp +++ b/include/eepp/graphics/renderer/cgl.hpp @@ -219,6 +219,7 @@ class EE_API cGL { Uint32 mStateFlags; bool mPushClip; bool mQuadsSupported; + bool mBlendEnabled; int mQuadVertexs; GLfloat mLineWidth; GLuint mCurVAO; diff --git a/include/eepp/system/colors.hpp b/include/eepp/system/colors.hpp index 705a0816e..b4bb10555 100755 --- a/include/eepp/system/colors.hpp +++ b/include/eepp/system/colors.hpp @@ -195,6 +195,7 @@ typedef tColor eeColor; typedef tColor eeColorf; typedef tColorA eeColorA; typedef tColorA eeColorAf; +typedef tColorA eeColorAff; //! @brief Small class to help in some color operations class Color { diff --git a/src/eepp/graphics/cvertexbufferogl.cpp b/src/eepp/graphics/cvertexbufferogl.cpp index 389d915f6..53e9e3902 100644 --- a/src/eepp/graphics/cvertexbufferogl.cpp +++ b/src/eepp/graphics/cvertexbufferogl.cpp @@ -78,7 +78,6 @@ void cVertexBufferOGL::SetVertexStates() { } } - GLi->ActiveTexture( GL_TEXTURE0 ); GLi->ClientActiveTexture( GL_TEXTURE0 ); } diff --git a/src/eepp/graphics/cvertexbuffervbo.cpp b/src/eepp/graphics/cvertexbuffervbo.cpp index 557e781ac..e0f3aede9 100644 --- a/src/eepp/graphics/cvertexbuffervbo.cpp +++ b/src/eepp/graphics/cvertexbuffervbo.cpp @@ -332,7 +332,6 @@ void cVertexBufferVBO::Unbind() { GLi->EnableClientState( GL_TEXTURE_COORD_ARRAY ); } - GLi->ActiveTexture( GL_TEXTURE0 ); GLi->ClientActiveTexture( GL_TEXTURE0 ); if( !VERTEX_FLAG_QUERY( mVertexFlags, VERTEX_FLAG_POSITION ) ) { diff --git a/src/eepp/graphics/renderer/cgl.cpp b/src/eepp/graphics/renderer/cgl.cpp index 68d016a17..68aae05af 100644 --- a/src/eepp/graphics/renderer/cgl.cpp +++ b/src/eepp/graphics/renderer/cgl.cpp @@ -98,6 +98,7 @@ cGL::cGL() : mStateFlags( 1 << GLSF_LINE_SMOOTH ), mPushClip( true ), mQuadsSupported( true ), + mBlendEnabled( false ), mQuadVertexs( 4 ), mLineWidth( 1 ), mCurVAO( 0 ) @@ -353,10 +354,38 @@ void cGL::Viewport( GLint x, GLint y, GLsizei width, GLsizei height ) { } void cGL::Disable ( GLenum cap ) { + switch ( cap ) + { + case GL_BLEND: + { + if ( !mBlendEnabled ) { + return; + } + + mBlendEnabled = false; + + break; + } + } + glDisable( cap ); } void cGL::Enable( GLenum cap ) { + switch ( cap ) + { + case GL_BLEND: + { + if ( mBlendEnabled ) { + return; + } + + mBlendEnabled = true; + + break; + } + } + glEnable( cap ); } diff --git a/src/eepp/graphics/renderer/crenderergl3cp.cpp b/src/eepp/graphics/renderer/crenderergl3cp.cpp index d05f480d2..fc2a2a2e3 100644 --- a/src/eepp/graphics/renderer/crenderergl3cp.cpp +++ b/src/eepp/graphics/renderer/crenderergl3cp.cpp @@ -65,8 +65,6 @@ cRendererGL3CP::cRendererGL3CP() : mStack = eeNew( cMatrixStack, () ); mStack->mProjectionMatrix.push ( glm::mat4( 1.0f ) ); // identity matrix mStack->mModelViewMatrix.push ( glm::mat4( 1.0f ) ); // identity matrix - - cGL::Enable( GL_VERTEX_PROGRAM_POINT_SIZE ); } cRendererGL3CP::~cRendererGL3CP() {