diff options
author | tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2010-04-25 17:14:14 +0000 |
---|---|---|
committer | tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2010-04-25 17:14:14 +0000 |
commit | d142fd8700057ad284e2620076d6716387f3cd63 (patch) | |
tree | 525aa81095befe11ea2a195d2c9a9c0db0a226f5 | |
parent | 666189bdf771731b25ade3eaf4db82dac2343a64 (diff) | |
download | usdx-d142fd8700057ad284e2620076d6716387f3cd63.tar.gz usdx-d142fd8700057ad284e2620076d6716387f3cd63.tar.xz usdx-d142fd8700057ad284e2620076d6716387f3cd63.zip |
wrong usage of glTexEnvi fixed
- the environment must be GL_TEXTURE_ENV and not GL_TEXTURE_2D
- it must be set before a draw function (glBegin(), ...) and not before glTexImage2D() as the current texture will not store this setting (the setting is global for all textures).
- the setting must be set to the default (GL_MODULATE) after usage, otherwise later opengl drawing calls will be unwantedly affected too.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2309 b956fd51-792f-4845-bead-9b4dfca2ff2c
-rw-r--r-- | src/media/UVideo.pas | 7 | ||||
-rw-r--r-- | src/menu/UDisplay.pas | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/media/UVideo.pas b/src/media/UVideo.pas index 0716bee2..c7d59fc8 100644 --- a/src/media/UVideo.pas +++ b/src/media/UVideo.pas @@ -824,8 +824,8 @@ begin // Or should we add padding with avpicture_fill? (check which one is faster) //glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - // TODO: check if this is faster - //glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + // glTexEnvi with GL_REPLACE might give a small speed improvement + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); if (not fPboEnabled) then begin @@ -867,6 +867,9 @@ begin Log.LogError('PBO texture stream error: ' + gluErrorString(glErr), 'TVideo_FFmpeg.GetFrame'); end; + // reset to default + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + if (not fFrameTexValid) then fFrameTexValid := true; diff --git a/src/menu/UDisplay.pas b/src/menu/UDisplay.pas index 0b32c6cd..e3ec272a 100644 --- a/src/menu/UDisplay.pas +++ b/src/menu/UDisplay.pas @@ -204,10 +204,9 @@ begin for i := 0 to 1 do begin glBindTexture(GL_TEXTURE_2D, FadeTex[i]); - //glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - glTexImage2D(GL_TEXTURE_2D, 0, 3, TexW, TexH, 0, GL_RGB, GL_UNSIGNED_BYTE, nil); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexImage2D(GL_TEXTURE_2D, 0, 3, TexW, TexH, 0, GL_RGB, GL_UNSIGNED_BYTE, nil); end; end; @@ -366,6 +365,8 @@ begin FadeH := ScreenH/TexH; glBindTexture(GL_TEXTURE_2D, FadeTex[S-1]); + // TODO: check if glTexEnvi() gives any speed improvement + //glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glColor4f(1, 1, 1, 1-FadeStateSquare); glEnable(GL_TEXTURE_2D); @@ -386,6 +387,9 @@ begin glEnd; glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); + + // reset to default + //glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); end; end |