OpenBarnyard
 
Loading...
Searching...
No Matches
TTextureFactoryHAL_DX8.cpp
Go to the documentation of this file.
1#include "ToshiPCH.h"
5
6//-----------------------------------------------------------------------------
7// Enables memory debugging.
8// Note: Should be the last include!
9//-----------------------------------------------------------------------------
10#include "Core/TMemoryDebugOn.h"
11
13
15
16// $Barnyard: FUNCTION 006d7bd0
17TTexture* TTextureFactoryHAL::CreateTextureFromFile( const TCHAR* a_szFilePath, TUINT32 a_eTextureFlags )
18{
19 TTexture* pTexture = FindTexture( a_szFilePath );
20
21 if ( !pTexture )
22 {
23 pTexture = TSTATICCAST(
25 GetRenderer()->CreateResource(
26 TClass::Find( "TTextureResourceHAL" ),
27 TNULL,
28 this
29 )
30 );
31
32 pTexture->Create( a_szFilePath, a_eTextureFlags );
33 RegisterTexture( a_szFilePath, pTexture );
34 pTexture->Validate();
35 }
36
37 return pTexture;
38}
39
40// $Barnyard: FUNCTION 006d7c30
41TTexture* TTextureFactoryHAL::CreateTextureFromMemory( void* a_pData, TUINT a_uiDataSize, TUINT a_eTextureFlags, TUINT a_uiWidth, TUINT a_uiHeight )
42{
43 static TUINT s_iNumMemTextures = 0;
44 static TCHAR s_szName[ 32 ];
45
46 s_szName[ 0 ] = 'm';
47 s_szName[ 1 ] = 't';
48 s_szName[ 2 ] = 'e';
49 s_szName[ 3 ] = 'x';
50 s_szName[ 4 ] = ':';
51 T2String8::IntToString( ++s_iNumMemTextures, s_szName + 5, 16 );
52
53 TTexture* pTexture = TSTATICCAST(
55 GetRenderer()->CreateResource(
56 TClass::Find( "TTextureResourceHAL" ),
57 TNULL,
58 this
59 )
60 );
61
62 pTexture->Create( a_pData, a_uiDataSize, a_eTextureFlags, a_uiWidth, a_uiHeight );
63 RegisterTexture( s_szName, pTexture );
64
65 return pTexture;
66}
67
68// $Barnyard: FUNCTION 006d7cd0
69TTexture* TTextureFactoryHAL::CreateEx( void* a_pData, TUINT a_uiDataSize, TUINT a_uiWidth, TUINT a_uiHeight, TUINT a_uiMipLevels, TTEXTURERESOURCEFORMAT a_eFormat, TUINT a_uiMipMapFlags )
70{
71 static TUINT s_iNumMemTextures = 0;
72 static TCHAR s_szName[ 32 ];
73
74 s_szName[ 0 ] = 'm';
75 s_szName[ 1 ] = 't';
76 s_szName[ 2 ] = 'e';
77 s_szName[ 3 ] = 'x';
78 s_szName[ 4 ] = ':';
79 T2String8::IntToString( ++s_iNumMemTextures, s_szName + 5, 16 );
80
81 TTexture* pTexture = TSTATICCAST(
83 GetRenderer()->CreateResource(
84 TClass::Find( "TTextureResourceHAL" ),
85 TNULL,
86 this
87 )
88 );
89
90 pTexture->CreateEx( a_pData, a_uiDataSize, a_uiWidth, a_uiHeight, a_uiMipLevels, a_eFormat, a_uiMipMapFlags );
91 RegisterTexture( s_szName, pTexture );
92
93 return pTexture;
94}
95
96// $Barnyard: FUNCTION 006d7d80
98{
99 static TUINT s_iNumMemTextures = 0;
100 static TCHAR s_szName[ 32 ];
101
102 s_szName[ 0 ] = 't';
103 s_szName[ 1 ] = '2';
104 s_szName[ 2 ] = 't';
105 s_szName[ 3 ] = 'x';
106 s_szName[ 4 ] = ':';
107 T2String8::IntToString( ++s_iNumMemTextures, s_szName + 5, 16 );
108
109 TTexture* pTexture = TSTATICCAST(
110 TTexture,
111 GetRenderer()->CreateResource(
112 TClass::Find( "TTextureResourceHAL" ),
113 TNULL,
114 this
115 )
116 );
117
118 pTexture->CreateFromT2Texture( a_pTexture );
119 RegisterTexture( s_szName, pTexture );
120
121 return pTexture;
122}
123
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TDEFINE_CLASS(...)
Definition TObject.h:120
unsigned int TUINT
Definition Typedefs.h:8
char TCHAR
Definition Typedefs.h:20
#define TNULL
Definition Typedefs.h:23
uint32_t TUINT32
Definition Typedefs.h:13
TTexture * CreateFromT2Texture(T2Texture *a_pTexture) override
TTexture * CreateEx(void *a_pData, TUINT a_uiDataSize, TUINT a_uiWidth, TUINT a_uiHeight, TUINT a_uiMipLevels, TTEXTURERESOURCEFORMAT a_eFormat, TUINT a_uiMipMapFlags) override
TTexture * CreateTextureFromMemory(void *a_pData, TUINT a_uiDataSize, TUINT a_eTextureFlags, TUINT a_uiWidth, TUINT a_uiHeight) override
TTexture * CreateTextureFromFile(const TCHAR *a_szFilePath, TUINT32 a_eTextureFlags) override
virtual void CreateFromT2Texture(T2Texture *a_pTexture)=0
virtual TBOOL Create(void *a_pData, TUINT a_uiDataSize, TUINT a_eTextureFlags, TUINT a_uiWidth, TUINT a_uiHeight)=0
virtual TBOOL CreateEx(void *a_pData, TUINT a_uiDataSize, TUINT a_uiWidth, TUINT a_uiHeight, TUINT a_uiMipLevels, TTEXTURERESOURCEFORMAT a_eFormat, TUINT a_uiMipMapFlags)
Definition TTexture.cpp:38
virtual TBOOL Validate()
Definition TResource.cpp:36
TRenderInterface * GetRenderer() const
NameEntry * RegisterTexture(const TCHAR *a_szName, TTexture *a_pTexture)
TTexture * FindTexture(const TCHAR *a_szName) const
static void IntToString(TINT value, TCHAR *dst, TINT unused, TINT radix)
static TClass * Find(const TCHAR *name, TClass *parent=TNULL)
Definition TClass.cpp:110