OpenBarnyard
 
Loading...
Searching...
No Matches
T2GLTexture_GL.h
Go to the documentation of this file.
1#pragma once
2#include "Toshi/T2Map.h"
3
4#include <gl/glew.h>
5
7
8typedef enum TEXTURE_FORMAT
9{
133
142
143typedef enum TEXTURE_FILTER
144{
182
183//-----------------------------------------------------------------------------
184// Note: This is a custom class.
185//-----------------------------------------------------------------------------
187{
188public:
189 friend class T2TextureManager;
190
191public:
192 T2GLTexture() = default;
193 ~T2GLTexture();
194
195 void Create( TEXTURE_FORMAT a_eFormat, UINT a_uiWidth, UINT a_uiHeight, const void* a_pData );
196 void Destroy();
197
198 const TCHAR* GetName() const { return m_pchTexName; }
199 GLuint GetHandle() const { return m_pHandle; }
200 UINT GetWidth() const { return m_uiWidth; }
201 UINT GetHeight() const { return m_uiHeight; }
202
203 void SetName( const TCHAR* a_pchName ) { m_pchTexName = a_pchName; }
204 void SetWrap( TEXTURE_ADDRESS_MODE a_eAddressU, TEXTURE_ADDRESS_MODE a_eAddressV );
205
206private:
207 const TCHAR* m_pchTexName = TNULL;
208
209 UINT m_uiWidth = 0;
210 UINT m_uiHeight = 0;
211 UINT m_uiMipMapCount = 0;
213 GLuint m_pHandle = 0;
214
218
219 T2GLTexture* m_pPrevTexture = TNULL;
220 T2GLTexture* m_pNextTexture = TNULL;
221};
222
223//-----------------------------------------------------------------------------
224// Note: This is a custom class.
225//-----------------------------------------------------------------------------
227 : public TSingleton<T2TextureManager>
228{
229public:
230 friend class T2GLTexture;
231
232public:
234 ~T2TextureManager() = default;
235
236 T2GLTexture* GetLastTexture() const { return m_pLastTexture; }
237 T2GLTexture* GetInvalidTexture() const { return m_pInvalidTexture; }
238 T2GLTexture* GetWhiteTexture() const { return m_pWhiteTexture; }
239
240 T2GLTexture* FindTexture( const TCHAR* a_pchTexName );
241 void AddTexture( T2GLTexture* a_pTexture );
242 void RemoveTexture( T2GLTexture* a_pTexture );
243
244private:
245 T2GLTexture* m_pLastTexture;
246 T2GLTexture* m_pInvalidTexture;
247 T2GLTexture* m_pWhiteTexture;
248};
249
TEXTURE_FORMAT
@ TEXTURE_FORMAT_R8_TYPELESS
@ TEXTURE_FORMAT_R24_UNORM_X8_TYPELESS
@ TEXTURE_FORMAT_UNKNOWN
@ TEXTURE_FORMAT_R32G32B32A32_SINT
@ TEXTURE_FORMAT_B8G8R8A8_UNORM_SRGB
@ TEXTURE_FORMAT_Y216
@ TEXTURE_FORMAT_R8_SNORM
@ TEXTURE_FORMAT_R8_SINT
@ TEXTURE_FORMAT_R16G16B16A16_UNORM
@ TEXTURE_FORMAT_B8G8R8A8_UNORM
@ TEXTURE_FORMAT_R8G8_SNORM
@ TEXTURE_FORMAT_BC6H_TYPELESS
@ TEXTURE_FORMAT_R32_FLOAT
@ TEXTURE_FORMAT_BC3_UNORM
@ TEXTURE_FORMAT_R16G16B16A16_TYPELESS
@ TEXTURE_FORMAT_R16_TYPELESS
@ TEXTURE_FORMAT_V408
@ TEXTURE_FORMAT_BC3_TYPELESS
@ TEXTURE_FORMAT_R8_UINT
@ TEXTURE_FORMAT_BC4_UNORM
@ TEXTURE_FORMAT_BC6H_SF16
@ TEXTURE_FORMAT_BC4_SNORM
@ TEXTURE_FORMAT_BC2_UNORM_SRGB
@ TEXTURE_FORMAT_A8_UNORM
@ TEXTURE_FORMAT_BC1_UNORM
@ TEXTURE_FORMAT_R16G16B16A16_UINT
@ TEXTURE_FORMAT_NV11
@ TEXTURE_FORMAT_B4G4R4A4_UNORM
@ TEXTURE_FORMAT_B8G8R8X8_TYPELESS
@ TEXTURE_FORMAT_AI44
@ TEXTURE_FORMAT_R8G8B8A8_SINT
@ TEXTURE_FORMAT_R16_UINT
@ TEXTURE_FORMAT_R16G16B16A16_SNORM
@ TEXTURE_FORMAT_IA44
@ TEXTURE_FORMAT_P010
@ TEXTURE_FORMAT_R32G32B32A32_FLOAT
@ TEXTURE_FORMAT_BC4_TYPELESS
@ TEXTURE_FORMAT_R16G16B16A16_SINT
@ TEXTURE_FORMAT_NV12
@ TEXTURE_FORMAT_R1_UNORM
@ TEXTURE_FORMAT_R32G32_SINT
@ TEXTURE_FORMAT_R32G32B32_SINT
@ TEXTURE_FORMAT_P8
@ TEXTURE_FORMAT_R32G32B32_FLOAT
@ TEXTURE_FORMAT_Y410
@ TEXTURE_FORMAT_B8G8R8A8_TYPELESS
@ TEXTURE_FORMAT_B5G6R5_UNORM
@ TEXTURE_FORMAT_BC3_UNORM_SRGB
@ TEXTURE_FORMAT_BC2_UNORM
@ TEXTURE_FORMAT_R32G32B32A32_UINT
@ TEXTURE_FORMAT_R32_TYPELESS
@ TEXTURE_FORMAT_R32_UINT
@ TEXTURE_FORMAT_R8G8B8A8_TYPELESS
@ TEXTURE_FORMAT_R16G16_UINT
@ TEXTURE_FORMAT_BC7_UNORM_SRGB
@ TEXTURE_FORMAT_R10G10B10A2_UNORM
@ TEXTURE_FORMAT_G8R8_G8B8_UNORM
@ TEXTURE_FORMAT_BC5_UNORM
@ TEXTURE_FORMAT_D24_UNORM_S8_UINT
@ TEXTURE_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
@ TEXTURE_FORMAT_R32G32B32_TYPELESS
@ TEXTURE_FORMAT_R32_FLOAT_X8X24_TYPELESS
@ TEXTURE_FORMAT_FORCE_UINT
@ TEXTURE_FORMAT_P208
@ TEXTURE_FORMAT_R16G16_UNORM
@ TEXTURE_FORMAT_B5G5R5A1_UNORM
@ TEXTURE_FORMAT_D16_UNORM
@ TEXTURE_FORMAT_R16_SINT
@ TEXTURE_FORMAT_R16G16_TYPELESS
@ TEXTURE_FORMAT_R16_FLOAT
@ TEXTURE_FORMAT_R16_UNORM
@ TEXTURE_FORMAT_A8P8
@ TEXTURE_FORMAT_P016
@ TEXTURE_FORMAT_BC1_TYPELESS
@ TEXTURE_FORMAT_R8G8B8A8_SNORM
@ TEXTURE_FORMAT_BC7_TYPELESS
@ TEXTURE_FORMAT_X24_TYPELESS_G8_UINT
@ TEXTURE_FORMAT_B8G8R8X8_UNORM
@ TEXTURE_FORMAT_R32G32_UINT
@ TEXTURE_FORMAT_R16G16_SNORM
@ TEXTURE_FORMAT_YUY2
@ TEXTURE_FORMAT_R8_UNORM
@ TEXTURE_FORMAT_R8G8B8A8_UINT
@ TEXTURE_FORMAT_R11G11B10_FLOAT
@ TEXTURE_FORMAT_R32G32_FLOAT
@ TEXTURE_FORMAT_Y416
@ TEXTURE_FORMAT_420_OPAQUE
@ TEXTURE_FORMAT_R32G32_TYPELESS
@ TEXTURE_FORMAT_R32G32B32_UINT
@ TEXTURE_FORMAT_V208
@ TEXTURE_FORMAT_D32_FLOAT
@ TEXTURE_FORMAT_BC2_TYPELESS
@ TEXTURE_FORMAT_R16G16B16A16_FLOAT
@ TEXTURE_FORMAT_BC1_UNORM_SRGB
@ TEXTURE_FORMAT_R16_SNORM
@ TEXTURE_FORMAT_R16G16_SINT
@ TEXTURE_FORMAT_B8G8R8X8_UNORM_SRGB
@ TEXTURE_FORMAT_AYUV
@ TEXTURE_FORMAT_D32_FLOAT_S8X24_UINT
@ TEXTURE_FORMAT_BC5_TYPELESS
@ TEXTURE_FORMAT_R16G16_FLOAT
@ TEXTURE_FORMAT_BC5_SNORM
@ TEXTURE_FORMAT_R8G8B8A8_UNORM_SRGB
@ TEXTURE_FORMAT_X32_TYPELESS_G8X24_UINT
@ TEXTURE_FORMAT_R8G8B8A8_UNORM
@ TEXTURE_FORMAT_R32G32B32A32_TYPELESS
@ TEXTURE_FORMAT_Y210
@ TEXTURE_FORMAT_R24G8_TYPELESS
@ TEXTURE_FORMAT_R32G8X24_TYPELESS
@ TEXTURE_FORMAT_R8G8_UINT
@ TEXTURE_FORMAT_R32_SINT
@ TEXTURE_FORMAT_R8G8_B8G8_UNORM
@ TEXTURE_FORMAT_BC7_UNORM
@ TEXTURE_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE
@ TEXTURE_FORMAT_R8G8_SINT
@ TEXTURE_FORMAT_R8G8_TYPELESS
@ TEXTURE_FORMAT_BC6H_UF16
@ TEXTURE_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE
@ TEXTURE_FORMAT_R10G10B10A2_UINT
@ TEXTURE_FORMAT_R8G8_UNORM
@ TEXTURE_FORMAT_R9G9B9E5_SHAREDEXP
@ TEXTURE_FORMAT_R10G10B10A2_TYPELESS
TEXTURE_ADDRESS_MODE
@ TEXTURE_ADDRESS_MIRROR_ONCE
@ TEXTURE_ADDRESS_WRAP
@ TEXTURE_ADDRESS_CLAMP
@ TEXTURE_ADDRESS_BORDER
@ TEXTURE_ADDRESS_MIRROR
TEXTURE_FILTER
@ TEXTURE_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MAXIMUM_MIN_MAG_MIP_POINT
@ TEXTURE_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
@ TEXTURE_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
@ TEXTURE_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
@ TEXTURE_FILTER_MINIMUM_MIN_MAG_MIP_POINT
@ TEXTURE_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
@ TEXTURE_FILTER_MIN_POINT_MAG_MIP_LINEAR
@ TEXTURE_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_COMPARISON_ANISOTROPIC
@ TEXTURE_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
@ TEXTURE_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
@ TEXTURE_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
@ TEXTURE_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
@ TEXTURE_FILTER_ANISOTROPIC
@ TEXTURE_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
@ TEXTURE_FILTER_MIN_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MIN_MAG_POINT_MIP_LINEAR
@ TEXTURE_FILTER_MAXIMUM_ANISOTROPIC
@ TEXTURE_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_MIN_MAG_MIP_LINEAR
@ TEXTURE_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
@ TEXTURE_FILTER_MIN_LINEAR_MAG_MIP_POINT
@ TEXTURE_FILTER_MINIMUM_ANISOTROPIC
@ TEXTURE_FILTER_COMPARISON_MIN_MAG_MIP_POINT
@ TEXTURE_FILTER_MIN_MAG_MIP_POINT
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
char TCHAR
Definition Typedefs.h:20
#define TNULL
Definition Typedefs.h:23
void SetName(const TCHAR *a_pchName)
UINT GetWidth() const
friend class T2TextureManager
void SetWrap(TEXTURE_ADDRESS_MODE a_eAddressU, TEXTURE_ADDRESS_MODE a_eAddressV)
T2GLTexture()=default
GLuint GetHandle() const
void Create(TEXTURE_FORMAT a_eFormat, UINT a_uiWidth, UINT a_uiHeight, const void *a_pData)
const TCHAR * GetName() const
UINT GetHeight() const
friend class T2GLTexture
T2GLTexture * GetWhiteTexture() const
T2GLTexture * FindTexture(const TCHAR *a_pchTexName)
T2GLTexture * GetLastTexture() const
~T2TextureManager()=default
void AddTexture(T2GLTexture *a_pTexture)
T2GLTexture * GetInvalidTexture() const
void RemoveTexture(T2GLTexture *a_pTexture)
TSingleton(const TSingleton &)=delete