diff options
| author | oy <Tom_Adams@web.de> | 2012-10-06 23:31:02 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2013-02-24 18:07:35 +0100 |
| commit | 71af97a5e30739577bde35db24ec9f160b0bea65 (patch) | |
| tree | 2ee41ce9e716213c5d1acaf35e79b2f66cef4741 /src/engine/client/backend_sdl.h | |
| parent | 7eddbe0dc9297e795ffdac65914f70ffcd43325a (diff) | |
| download | zcatch-71af97a5e30739577bde35db24ec9f160b0bea65.tar.gz zcatch-71af97a5e30739577bde35db24ec9f160b0bea65.zip | |
fixed texture memory usage calculation in graphics threaded
Conflicts: src/engine/client/graphics_threaded.cpp
Diffstat (limited to 'src/engine/client/backend_sdl.h')
| -rw-r--r-- | src/engine/client/backend_sdl.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/engine/client/backend_sdl.h b/src/engine/client/backend_sdl.h index 619ba84d..e1fc60b0 100644 --- a/src/engine/client/backend_sdl.h +++ b/src/engine/client/backend_sdl.h @@ -167,11 +167,32 @@ public: // takes care of opengl related rendering class CCommandProcessorFragment_OpenGL { - GLuint m_aTextures[CCommandBuffer::MAX_TEXTURES]; + struct CTexture + { + GLuint m_Tex; + int m_MemSize; + }; + CTexture m_aTextures[CCommandBuffer::MAX_TEXTURES]; + volatile int *m_pTextureMemoryUsage; + +public: + enum + { + CMD_INIT = CCommandBuffer::CMDGROUP_PLATFORM_OPENGL, + }; + + struct SCommand_Init : public CCommandBuffer::SCommand + { + SCommand_Init() : SCommand(CMD_INIT) {} + volatile int *m_pTextureMemoryUsage; + }; + +private: static int TexFormatToOpenGLFormat(int TexFormat); void SetState(const CCommandBuffer::SState &State); + void Cmd_Init(const SCommand_Init *pCommand); void Cmd_Texture_Update(const CCommandBuffer::SCommand_Texture_Update *pCommand); void Cmd_Texture_Destroy(const CCommandBuffer::SCommand_Texture_Destroy *pCommand); void Cmd_Texture_Create(const CCommandBuffer::SCommand_Texture_Create *pCommand); @@ -193,7 +214,7 @@ class CCommandProcessorFragment_SDL public: enum { - CMD_INIT = CCommandBuffer::CMDGROUP_PLATFORM, + CMD_INIT = CCommandBuffer::CMDGROUP_PLATFORM_SDL, CMD_SHUTDOWN, }; @@ -235,10 +256,13 @@ class CGraphicsBackend_SDL_OpenGL : public CGraphicsBackend_Threaded SDL_Surface *m_pScreenSurface; ICommandProcessor *m_pProcessor; SGLContext m_GLContext; + volatile int m_TextureMemoryUsage; public: virtual int Init(const char *pName, int *Width, int *Height, int FsaaSamples, int Flags); virtual int Shutdown(); + virtual int MemoryUsage() const; + virtual void Minimize(); virtual void Maximize(); virtual int WindowActive(); |