annotate LightClone/Source/ResourceManager.cpp @ 68:c4ece16cf995

Finish cleaning up memory leaks; Starting on screen manager
author koryspansel <koryspansel@bendbroadband.com>
date Fri, 07 Oct 2011 13:31:52 -0700
parents 1fe27776627e
children
rev   line source
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
1 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
2 * ResourceManager
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
3 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
4
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
5 #include "ResourceManager.h"
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
6
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
7 /*
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
8 * CreateTextureHelper
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
9 */
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
10 ErrorCode CreateTextureHelper(GraphicsDevice* pDevice, const char* pName, IDirect3DTexture9** pTexture)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
11 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
12 const uint32 nSizeX = D3DX_DEFAULT_NONPOW2;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
13 const uint32 nSizeY = D3DX_DEFAULT_NONPOW2;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
14 const uint32 nFilter = D3DX_DEFAULT;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
15 const uint32 nFilterMip = D3DX_DEFAULT;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
16
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
17 return SUCCEEDED(D3DXCreateTextureFromFileExA(*pDevice, pName, nSizeX, nSizeY, 0, 0, D3DFMT_FROM_FILE, D3DPOOL_MANAGED, nFilter, nFilterMip, 0, NULL, NULL, pTexture)) ? Error_Success : Error_Fail;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
18 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
19
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
20 /*
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
21 * CreateEffectHelper
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
22 */
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
23 ErrorCode CreateEffectHelper(GraphicsDevice* pDevice, const char* pName, ID3DXEffect** pEffect)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
24 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
25 ID3DXBuffer* pBuffer = NULL;
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
26
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
27 HRESULT hResult = D3DXCreateEffectFromFileA(*pDevice, pName, NULL, NULL, 0, NULL, pEffect, &pBuffer);
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
28 if(FAILED(hResult))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
29 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
30 if(pBuffer)
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
31 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
32 TRACE("Failed to load effect %s: %s", pName, (const char*)pBuffer->GetBufferPointer());
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
33 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
34
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
35 return Error_Fail;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
36 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
37
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
38 return Error_Success;
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
39 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
40
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
41 /*
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
42 * CreateFontHelper
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
43 */
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
44 ErrorCode CreateFontHelper(GraphicsDevice* pDevice, const char* pName, uint32 nSize, uint32 nWeight, ID3DXFont** pFont)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
45 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
46 const uint32 nCharset = DEFAULT_CHARSET;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
47 const uint32 nPrecision = OUT_DEFAULT_PRECIS;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
48 const uint32 nQuality = DEFAULT_QUALITY;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
49 const uint32 nPitch = DEFAULT_PITCH | FF_DONTCARE;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
50
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
51 return SUCCEEDED(D3DXCreateFontA(*pDevice, nSize, 0, nWeight, 1, FALSE, nCharset, nPrecision, nQuality, nPitch, pName, pFont)) ? Error_Success : Error_Fail;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
52 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
53
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
54 /*
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
55 * ResourceManager
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
56 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
57 ResourceManager::ResourceManager()
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
58 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
59 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
60
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
61 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
62 * Initialize
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
63 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
64 ErrorCode ResourceManager::Initialize(GraphicsDevice* pDevice)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
65 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
66 return pGraphicsDevice = pDevice, Error_Success;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
67 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
68
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
69 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
70 * Terminate
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
71 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
72 void ResourceManager::Terminate()
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
73 {
27
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
74 TextureCache::Iterator kTexture = kTextureCache.Begin();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
75 TextureCache::Iterator kTextureEnd = kTextureCache.End();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
76
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
77 for(; kTexture != kTextureEnd; ++kTexture)
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
78 {
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
79 (*kTexture)->Release();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
80 }
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
81
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
82 EffectCache::Iterator kEffect = kEffectCache.Begin();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
83 EffectCache::Iterator kEffectEnd = kEffectCache.End();
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
84
27
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
85 for(; kEffect != kEffectEnd; ++kEffect)
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
86 {
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
87 (*kEffect)->Release();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
88 }
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
89
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
90 FontCache::Iterator kFont = kFontCache.Begin();
68
c4ece16cf995 Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents: 61
diff changeset
91 FontCache::Iterator kFontEnd = kFontCache.End();
27
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
92
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
93 for(; kFont != kFontEnd; ++kFont)
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
94 {
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
95 (*kFont)->Release();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
96 }
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
97
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
98 kTextureCache.Clear();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
99 kEffectCache.Clear();
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
100 kFontCache.Clear();
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
101
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
102 pGraphicsDevice = NULL;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
103 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
104
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
105 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
106 * CreateTextureFromFile
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
107 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
108 ErrorCode ResourceManager::CreateTextureFromFile(const char* pName, IDirect3DTexture9** pTexture)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
109 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
110 ErrorCode eCode = Error_Fail;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
111
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
112 if(pGraphicsDevice)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
113 {
31
0b729faa4e73 Fixed resource leak; Corrected button state logic
koryspansel
parents: 27
diff changeset
114 ResourcePath kPath(pName);
0b729faa4e73 Fixed resource leak; Corrected button state logic
koryspansel
parents: 27
diff changeset
115
0b729faa4e73 Fixed resource leak; Corrected button state logic
koryspansel
parents: 27
diff changeset
116 IDirect3DTexture9** pInstance = kTextureCache.Find(kPath);
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
117 if(!pInstance)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
118 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
119 IDirect3DTexture9* pTextureObject = NULL;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
120
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
121 eCode = CreateTextureHelper(pGraphicsDevice, pName, &pTextureObject);
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
122 if(eCode == Error_Success)
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
123 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
124 if(pTextureObject)
31
0b729faa4e73 Fixed resource leak; Corrected button state logic
koryspansel
parents: 27
diff changeset
125 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
126 pInstance = kTextureCache.Add(kPath);
61
1fe27776627e Added asserts
koryspansel
parents: 51
diff changeset
127 ASSERT(pInstance != NULL);
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
128
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
129 *pInstance = pTextureObject;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
130 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
131 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
132 {
31
0b729faa4e73 Fixed resource leak; Corrected button state logic
koryspansel
parents: 27
diff changeset
133 eCode = Error_Fail;
0b729faa4e73 Fixed resource leak; Corrected button state logic
koryspansel
parents: 27
diff changeset
134 }
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
135 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
136 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
137 else
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
138 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
139 eCode = Error_Success;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
140 }
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
141
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
142 if(eCode == Error_Success)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
143 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
144 if(pTexture)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
145 *pTexture = *pInstance;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
146 }
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
147 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
148
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
149 return eCode;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
150 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
151
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
152 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
153 * CreateEffectFromFile
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
154 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
155 ErrorCode ResourceManager::CreateEffectFromFile(const char* pName, ID3DXEffect** pEffect)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
156 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
157 ErrorCode eCode = Error_Fail;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
158
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
159 if(pGraphicsDevice)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
160 {
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
161 ID3DXEffect** pInstance = kEffectCache.Find(ResourcePath(pName));
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
162 if(!pInstance)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
163 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
164 ID3DXEffect* pEffectObject = NULL;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
165
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
166 eCode = CreateEffectHelper(pGraphicsDevice, pName, &pEffectObject);
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
167 if(eCode == Error_Success)
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
168 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
169 if(pEffectObject)
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
170 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
171 pInstance = kEffectCache.Add(ResourcePath(pName));
61
1fe27776627e Added asserts
koryspansel
parents: 51
diff changeset
172 ASSERT(pInstance != NULL);
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
173
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
174 *pInstance = pEffectObject;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
175 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
176 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
177 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
178 eCode = Error_Fail;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
179 }
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
180 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
181 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
182 else
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
183 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
184 eCode = Error_Success;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
185 }
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
186
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
187 if(eCode == Error_Success)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
188 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
189 if(pEffect)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
190 *pEffect = *pInstance;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
191 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
192 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
193
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
194 return eCode;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
195 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
196
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
197 /*
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
198 * CreateFontFromName
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
199 */
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
200 ErrorCode ResourceManager::CreateFontFromName(const char* pName, uint32 nSize, uint32 nWeight, ID3DXFont** pFont)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
201 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
202 ErrorCode eCode = Error_Fail;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
203
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
204 if(pGraphicsDevice)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
205 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
206 ID3DXFont** pInstance = kFontCache.Find(ResourcePath(pName));
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
207 if(!pInstance)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
208 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
209 ID3DXFont* pFontObject = NULL;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
210
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
211 eCode = CreateFontHelper(pGraphicsDevice, pName, nSize, nWeight, &pFontObject);
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
212 if(eCode == Error_Success)
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
213 {
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
214 if(pFontObject)
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
215 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
216 pInstance = kFontCache.Add(ResourcePath(pName));
61
1fe27776627e Added asserts
koryspansel
parents: 51
diff changeset
217 ASSERT(pInstance != NULL);
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
218
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
219 *pInstance = pFontObject;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
220 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
221 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
222 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
223 eCode = Error_Fail;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 31
diff changeset
224 }
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
225 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
226 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
227 else
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
228 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
229 eCode = Error_Success;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
230 }
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
231
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
232 if(eCode == Error_Success)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
233 {
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
234 if(pFont)
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
235 *pFont = *pInstance;
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
236 }
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
237 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
238
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
239 return eCode;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
240 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
241
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
242 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
243 * CreateVertexBuffer
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
244 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
245 ErrorCode ResourceManager::CreateVertexBuffer(uint32 nSize, uint32 nUsage, uint32 nPool, IDirect3DVertexBuffer9** pBuffer)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
246 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
247 ErrorCode eCode = Error_Fail;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
248
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
249 if(pGraphicsDevice)
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
250 {
26
3a63df04f3c0 Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents: 8
diff changeset
251 HRESULT hResult = ((IDirect3DDevice9*)*pGraphicsDevice)->CreateVertexBuffer(nSize, nUsage, 0, (D3DPOOL)nPool, pBuffer, NULL);
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
252 if(SUCCEEDED(hResult))
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
253 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
254 eCode = Error_Success;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
255 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
256 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
257
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
258 return eCode;
968341ab1fb2 First pass world re-structuring
koryspansel
parents:
diff changeset
259 }