|
From: <axl...@us...> - 2008-12-23 19:24:52
|
Revision: 80
http://hgengine.svn.sourceforge.net/hgengine/?rev=80&view=rev
Author: axlecrusher
Date: 2008-12-23 19:24:48 +0000 (Tue, 23 Dec 2008)
Log Message:
-----------
VBO texure binding
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2008-12-23 19:23:21 UTC (rev 79)
+++ Mercury2/src/Texture.cpp 2008-12-23 19:24:48 UTC (rev 80)
@@ -99,6 +99,8 @@
{
m_textureResource = GL_TEXTURE0+m_activeTextures;
glActiveTexture( m_textureResource );
+ glClientActiveTextureARB(m_textureResource);
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D, m_textureID);
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
@@ -108,12 +110,14 @@
void Texture::UnbindTexture()
{
glActiveTexture( m_textureResource );
+ glClientActiveTextureARB(m_textureResource);
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable( GL_TEXTURE_2D );
--m_activeTextures;
}
-bool Texture::m_initTextureSuccess;
-unsigned short Texture::m_activeTextures;
+bool Texture::m_initTextureSuccess = false;
+unsigned short Texture::m_activeTextures = 0;
/***************************************************************************
* Copyright (C) 2008 by Joshua Allen *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-06-14 13:08:11
|
Revision: 324
http://hgengine.svn.sourceforge.net/hgengine/?rev=324&view=rev
Author: axlecrusher
Date: 2009-06-14 13:08:10 +0000 (Sun, 14 Jun 2009)
Log Message:
-----------
remove debugging
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-06-14 13:07:39 UTC (rev 323)
+++ Mercury2/src/Texture.cpp 2009-06-14 13:08:10 UTC (rev 324)
@@ -175,7 +175,6 @@
m_path = "DYNATEXT"+name;
ADD_ASSET_INSTANCE(Texture, m_path, this);
- if (m_textureID == 0) printf("booo %d\n", m_textureID);
if (m_textureID == 0) glGenTextures( 1, &m_textureID );
glBindTexture( GL_TEXTURE_2D, m_textureID );
glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, width, height, 0 );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-06-14 23:41:09
|
Revision: 338
http://hgengine.svn.sourceforge.net/hgengine/?rev=338&view=rev
Author: axlecrusher
Date: 2009-06-14 23:39:48 +0000 (Sun, 14 Jun 2009)
Log Message:
-----------
bind textures for shaders
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-06-14 21:53:47 UTC (rev 337)
+++ Mercury2/src/Texture.cpp 2009-06-14 23:39:48 UTC (rev 338)
@@ -3,6 +3,8 @@
#include <ImageLoader.h>
#include <GLHeaders.h>
+#include <Shader.h>
+
using namespace std;
REGISTER_ASSET_TYPE(Texture);
@@ -127,6 +129,21 @@
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D, m_textureID);
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
+
+ GLERRORCHECK;
+
+ Shader* currentShader = Shader::GetCurrentShader();
+ if ( currentShader )
+ {
+ MString uname = ssprintf("HG_Texture%d", m_activeTextures);
+ int location = currentShader->GetUniformLocation( uname );
+ if ( location != -1 )
+ {
+ glUniform1i(location,m_activeTextures);
+ GLERRORCHECK;
+ }
+ }
+
++m_activeTextures;
++m_textureBinds;
}
@@ -137,6 +154,7 @@
glClientActiveTextureARB(m_textureResource);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable( GL_TEXTURE_2D );
+ GLERRORCHECK;
--m_activeTextures;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-01 17:48:17
|
Revision: 450
http://hgengine.svn.sourceforge.net/hgengine/?rev=450&view=rev
Author: axlecrusher
Date: 2009-08-01 17:48:06 +0000 (Sat, 01 Aug 2009)
Log Message:
-----------
fix texture binding to shader
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-08-01 14:20:20 UTC (rev 449)
+++ Mercury2/src/Texture.cpp 2009-08-01 17:48:06 UTC (rev 450)
@@ -120,7 +120,7 @@
ShaderAttribute sa;
sa.type = ShaderAttribute::TYPE_SAMPLER;
- sa.value.iSampler = m_textureResource;
+ sa.value.iSampler = m_numActiveTextures;
Shader::SetAttribute( ssprintf("HG_Texture%d", m_numActiveTextures), sa);
m_activeTextures.push_back(this);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-23 02:12:02
|
Revision: 515
http://hgengine.svn.sourceforge.net/hgengine/?rev=515&view=rev
Author: axlecrusher
Date: 2009-08-23 02:11:55 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
i guess all GL api calls can be done together when binding texture
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-08-23 01:41:14 UTC (rev 514)
+++ Mercury2/src/Texture.cpp 2009-08-23 02:11:55 UTC (rev 515)
@@ -127,10 +127,12 @@
Activate();
GLCALL( glBindTexture(GL_TEXTURE_2D, m_textureID) );
+
+ GLCALL( glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) );
+
m_lastBound[m_numActiveTextures] = this;
++m_textureBinds;
}
- GLCALL( glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) );
GLERRORCHECK;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-23 12:13:15
|
Revision: 519
http://hgengine.svn.sourceforge.net/hgengine/?rev=519&view=rev
Author: axlecrusher
Date: 2009-08-23 12:12:13 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
disable texture bind cache
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-08-23 06:04:16 UTC (rev 518)
+++ Mercury2/src/Texture.cpp 2009-08-23 12:12:13 UTC (rev 519)
@@ -118,7 +118,7 @@
m_textureResource = GL_TEXTURE0+m_numActiveTextures;
- if (m_lastBound[m_numActiveTextures] != this)
+// if (m_lastBound[m_numActiveTextures] != this)
{
// We don't really even have to disable old spots
// if ( m_lastBound[m_numActiveTextures] != NULL)
@@ -156,6 +156,8 @@
GLERRORCHECK;
*/
+ Deactivate();
+
Shader::RemoveAttribute( ssprintf("HG_Texture%d", m_numActiveTextures) );
m_activeTextures.pop_back();
@@ -188,7 +190,7 @@
GLCALL( glTexCoordPointer(2, GL_FLOAT, stride, BUFFER_OFFSET(sizeof(float)*0)) );
}
- Texture::DisableUnusedTextures();
+// Texture::DisableUnusedTextures();
}
void Texture::DisableUnusedTextures()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-23 13:10:28
|
Revision: 522
http://hgengine.svn.sourceforge.net/hgengine/?rev=522&view=rev
Author: axlecrusher
Date: 2009-08-23 13:10:21 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
fix order of UnbindTexture
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-08-23 13:08:11 UTC (rev 521)
+++ Mercury2/src/Texture.cpp 2009-08-23 13:10:21 UTC (rev 522)
@@ -150,12 +150,13 @@
void Texture::UnbindTexture()
{
-// Deactivate(m_textureResource);
+//Everything needs to be done in reverse of BindTexture()
+ --m_numActiveTextures;
Shader::RemoveAttribute( ssprintf("HG_Texture%d", m_numActiveTextures) );
m_activeTextures.pop_back();
-
- --m_numActiveTextures;
+
+// Deactivate(GL_TEXTURE0 + m_numActiveTextures);
}
void Texture::Activate(uint32_t textureResource)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2010-03-02 02:00:22
|
Revision: 681
http://hgengine.svn.sourceforge.net/hgengine/?rev=681&view=rev
Author: cnlohr
Date: 2010-03-02 02:00:15 +0000 (Tue, 02 Mar 2010)
Log Message:
-----------
Temporarily? remove the multitexture stuff that seems to be breaking things. It does appear as though multitextures works without this.
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2010-02-24 05:40:25 UTC (rev 680)
+++ Mercury2/src/Texture.cpp 2010-03-02 02:00:15 UTC (rev 681)
@@ -203,7 +203,7 @@
void Texture::Activate(uint32_t textureResource)
{
GLCALL( glActiveTexture( textureResource ) );
- GLCALL( glClientActiveTextureARB(textureResource) ); //XXX: Note to self, this seems to be causing a crash, look into it.
+// GLCALL( glClientActiveTextureARB(textureResource) ); //XXX: Note to self, this seems to be causing a crash, look into it.
GLCALL( glEnableClientState(GL_TEXTURE_COORD_ARRAY) );
GLCALL( glEnable( GL_TEXTURE_2D ) );
}
@@ -211,7 +211,7 @@
void Texture::Deactivate(uint32_t textureResource)
{
GLCALL( glActiveTexture( textureResource ) );
- GLCALL( glClientActiveTextureARB(textureResource) );
+// GLCALL( glClientActiveTextureARB(textureResource) );
GLCALL( glDisableClientState(GL_TEXTURE_COORD_ARRAY) );
GLCALL( glDisable( GL_TEXTURE_2D ) );
GLERRORCHECK;
@@ -222,7 +222,7 @@
for (uint8_t i = 0; i < m_numActiveTextures; ++i)
{
GLCALL( glActiveTexture( GL_TEXTURE0+i ) );
- GLCALL( glClientActiveTextureARB(GL_TEXTURE0+i) ); //XXX: Note to self, this seems to be causing a crash, look into it.
+// GLCALL( glClientActiveTextureARB(GL_TEXTURE0+i) ); //XXX: Note to self, this seems to be causing a crash, look into it.
GLCALL( glTexCoordPointer(2, GL_FLOAT, stride, BUFFER_OFFSET(uvByteOffset)) );
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2010-05-19 22:07:12
|
Revision: 743
http://hgengine.svn.sourceforge.net/hgengine/?rev=743&view=rev
Author: axlecrusher
Date: 2010-05-19 22:07:06 +0000 (Wed, 19 May 2010)
Log Message:
-----------
fix bug that keeps textures from rendering
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2010-05-19 22:05:52 UTC (rev 742)
+++ Mercury2/src/Texture.cpp 2010-05-19 22:07:06 UTC (rev 743)
@@ -104,9 +104,11 @@
{
if (GetLoadState() == LOADED)
{
- printf( "Rendering Texture (%s), but state is: %d\n", m_path.c_str(), GetLoadState() );
+ printf( "Rendering Texture (%s), but state is: %d\n", m_path.c_str(), GetLoadState() );
LoadFromRaw();
SetLoadState(NONE);
+ //force rebind since we were used before
+ if (m_lastBound[m_numActiveTextures] == this) m_lastBound[m_numActiveTextures] = NULL;
}
BindTexture();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2010-05-23 12:38:18
|
Revision: 747
http://hgengine.svn.sourceforge.net/hgengine/?rev=747&view=rev
Author: axlecrusher
Date: 2010-05-23 12:38:12 +0000 (Sun, 23 May 2010)
Log Message:
-----------
Move bind cache init into render
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2010-05-23 12:37:21 UTC (rev 746)
+++ Mercury2/src/Texture.cpp 2010-05-23 12:38:12 UTC (rev 747)
@@ -102,6 +102,8 @@
void Texture::Render(const MercuryNode* node)
{
+ if ( !m_lastBound ) InitiateBindCache();
+
if (GetLoadState() == LOADED)
{
printf( "Rendering Texture (%s), but state is: %d\n", m_path.c_str(), GetLoadState() );
@@ -109,6 +111,9 @@
SetLoadState(NONE);
//force rebind since we were used before
if (m_lastBound[m_numActiveTextures] == this) m_lastBound[m_numActiveTextures] = NULL;
+
+// for (uint8_t i = 0; i <= m_numActiveTextures; i++)
+// if (m_lastBound[i] == this) m_lastBound[i] = NULL;
}
BindTexture();
}
@@ -159,7 +164,7 @@
void Texture::BindTexture()
{
- if ( !m_lastBound ) InitiateBindCache();
+// if ( !m_lastBound ) InitiateBindCache();
if (m_numActiveTextures >= m_maxActiveTextures) return;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|