11#include " AGUIPicture.h"
2+ #include " AGUISystem.h"
23
34// -----------------------------------------------------------------------------
45// Enables memory debugging.
@@ -10,7 +11,45 @@ TOSHI_NAMESPACE_USING
1011
1112IMPLEMENT_DYNAMIC (AGUIPicture, TObject)
1213
14+ const AGUIPicture::SplitRule AGUIPicture::split_rules[6] = {
15+ SplitRule{ TVector2 (0 .0f , 256 .0f ), TVector2 (0 .0f , 256 .0f ), TVector2 (0 .0f , 1 .0f ), TVector2 (0 .0f , 1 .0f ), 0 , 0 , 0 },
16+ SplitRule{ TVector2 (255 .0f , 511 .0f ), TVector2 (0 .0f , 256 .0f ), TVector2 (0 .0f , 1 .0f ), TVector2 (0 .0f , 1 .0f ), 1 , 0 , 0 },
17+ SplitRule{ TVector2 (510 .0f , 638 .0f ), TVector2 (0 .0f , 256 .0f ), TVector2 (0 .0f , 1 .0f ), TVector2 (0 .0f , 1 .0f ), 2 , 0 , 0 },
18+ SplitRule{ TVector2 (0 .0f , 256 .0f ), TVector2 (255 .0f , 447 .0f ), TVector2 (0 .0f , 1 .0f ), TVector2 (0 .0f , 0 .75f ), 3 , 0 , 0 },
19+ SplitRule{ TVector2 (255 .0f , 511 .0f ), TVector2 (255 .0f , 447 .0f ), TVector2 (0 .0f , 1 .0f ), TVector2 (0 .0f , 0 .75f ), 4 , 0 , 0 },
20+ SplitRule{ TVector2 (510 .0f , 638 .0f ), TVector2 (255 .0f , 447 .0f ), TVector2 (0 .0f , 1 .0f ), TVector2 (0 .0f , 0 .75f ), 5 , 0 , 0 }
21+ };
22+
1323AGUIPicture::AGUIPicture ()
1424{
25+ m_iSplitTileCount = 0 ;
26+ m_iSplitTextureCount = 0 ;
27+ m_pTiles = TNULL;
28+ m_pTextures = TNULL;
29+ m_pShader = TNULL;
30+ }
31+
32+ void AGUIPicture::Delete ()
33+ {
34+ Flush ();
35+ delete this ;
36+ }
1537
38+ void AGUIPicture::Create (TPCCHAR a_szFileName, Toshi::TSpriteShader *a_pShader)
39+ {
40+ m_sFileName = a_szFileName;
41+ m_pShader = a_pShader;
42+ Cache ();
43+ }
44+
45+ void AGUIPicture::Render ()
46+ {
47+ AGUISystem *system = AGUISystem::GetGUISystem ();
48+ TFLOAT height = system->GetScreen ()->GetHeight () / 447 .0f ;
49+ TFLOAT width = system->GetScreen ()->GetWidth () / 638 .0f ;
50+ for (TUINT i = 0 ; i < m_iSplitTileCount; i++)
51+ {
52+ m_pShader->SetColour (TGUIColour ());
53+ m_pShader->SetMaterial (*m_pTiles[i].ppMaterial );
54+ }
1655}
0 commit comments