Check texture params before updateing them
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
This commit is contained in:
parent
61836f8c51
commit
09274e2483
|
@ -17,8 +17,6 @@
|
||||||
|
|
||||||
#include "GLUtil.h"
|
#include "GLUtil.h"
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "RasterFont.h"
|
#include "RasterFont.h"
|
||||||
// globals
|
// globals
|
||||||
|
|
||||||
|
@ -150,7 +148,6 @@ static const char *s_fragment_shader =
|
||||||
RasterFont::RasterFont()
|
RasterFont::RasterFont()
|
||||||
{
|
{
|
||||||
// generate the texture
|
// generate the texture
|
||||||
glEnable(GL_TEXTURE_RECTANGLE);
|
|
||||||
glGenTextures(1, &texture);
|
glGenTextures(1, &texture);
|
||||||
glBindTexture(GL_TEXTURE_RECTANGLE, texture);
|
glBindTexture(GL_TEXTURE_RECTANGLE, texture);
|
||||||
u32* texture_data = new u32[char_width*char_count*char_height];
|
u32* texture_data = new u32[char_width*char_count*char_height];
|
||||||
|
@ -281,7 +278,6 @@ void RasterFont::printMultilineText(const char *text, double start_x, double sta
|
||||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
|
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
glBindTexture(GL_TEXTURE_RECTANGLE, texture);
|
glBindTexture(GL_TEXTURE_RECTANGLE, texture);
|
||||||
glEnable(GL_TEXTURE_RECTANGLE);
|
|
||||||
glDrawArrays(GL_TRIANGLES, 0, usage/4);
|
glDrawArrays(GL_TRIANGLES, 0, usage/4);
|
||||||
|
|
||||||
glUseProgram(0);
|
glUseProgram(0);
|
||||||
|
|
|
@ -113,6 +113,8 @@ TextureCache::TCacheEntry::~TCacheEntry()
|
||||||
TextureCache::TCacheEntry::TCacheEntry()
|
TextureCache::TCacheEntry::TCacheEntry()
|
||||||
{
|
{
|
||||||
glGenTextures(1, &texture);
|
glGenTextures(1, &texture);
|
||||||
|
currmode.hex = 0;
|
||||||
|
currmode1.hex = 0;
|
||||||
GL_REPORT_ERRORD();
|
GL_REPORT_ERRORD();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +127,9 @@ void TextureCache::TCacheEntry::Bind(unsigned int stage)
|
||||||
// TODO: is this already done somewhere else?
|
// TODO: is this already done somewhere else?
|
||||||
TexMode0 &tm0 = bpmem.tex[stage >> 2].texMode0[stage & 3];
|
TexMode0 &tm0 = bpmem.tex[stage >> 2].texMode0[stage & 3];
|
||||||
TexMode1 &tm1 = bpmem.tex[stage >> 2].texMode1[stage & 3];
|
TexMode1 &tm1 = bpmem.tex[stage >> 2].texMode1[stage & 3];
|
||||||
SetTextureParameters(tm0, tm1);
|
|
||||||
|
if(currmode.hex != tm0.hex || currmode1.hex != tm1.hex)
|
||||||
|
SetTextureParameters(tm0, tm1);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextureCache::TCacheEntry::Save(const char filename[], unsigned int level)
|
bool TextureCache::TCacheEntry::Save(const char filename[], unsigned int level)
|
||||||
|
@ -404,6 +408,9 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo
|
||||||
|
|
||||||
void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1)
|
void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1)
|
||||||
{
|
{
|
||||||
|
currmode = newmode;
|
||||||
|
currmode1 = newmode1;
|
||||||
|
|
||||||
// TODO: not used anywhere
|
// TODO: not used anywhere
|
||||||
TexMode0 mode = newmode;
|
TexMode0 mode = newmode;
|
||||||
//mode1 = newmode1;
|
//mode1 = newmode1;
|
||||||
|
|
|
@ -67,6 +67,8 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1);
|
void SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1);
|
||||||
|
TexMode0 currmode;
|
||||||
|
TexMode1 currmode1;
|
||||||
};
|
};
|
||||||
|
|
||||||
~TextureCache();
|
~TextureCache();
|
||||||
|
|
Loading…
Reference in New Issue