# HG changeset patch # User koryspansel # Date 1316222496 25200 # Node ID 5656c8e382fce11a8903c5684243ebfb6266137e # Parent 3a63df04f3c0ff4d7bd4a469c6502df719ac1d29 More Gui work; Remove some old files diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/LightClone.vcproj --- a/LightClone/LightClone.vcproj Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/LightClone.vcproj Fri Sep 16 18:21:36 2011 -0700 @@ -181,10 +181,6 @@ > - - @@ -209,14 +205,6 @@ > - - - - @@ -339,10 +327,6 @@ > - - @@ -367,14 +351,6 @@ > - - - - diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/Bot.cpp --- a/LightClone/Source/Bot.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/Bot.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -67,18 +67,6 @@ pVertexBuffer->Release(); pVertexBuffer = NULL; } - - if(pTexture) - { - pTexture->Release(); - pTexture = NULL; - } - - if(pEffect) - { - pEffect->Release(); - pEffect = NULL; - } } /* diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/ButtonPane.cpp --- a/LightClone/Source/ButtonPane.cpp Fri Sep 16 15:28:15 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* - * ButtonPane - */ - -#include "ButtonPane.h" - -/* - * ButtonPane - */ -ButtonPane::ButtonPane(uint32 nMax) : nMaximum(nMax), nSize(0) -{ - pBounds = new Rectangle2[nMax]; -} - -/* - * Add - */ -void ButtonPane::Add(float fX, float fY, float fWidth, float fHeight) -{ - if(nSize < nMaximum) - { - pBounds[nSize++] = Rectangle2(fX, fY, fWidth, fHeight); - } -} - -/* - * Pick - */ -int32 ButtonPane::Pick(float fX, float fY) -{ - for(uint32 i = 0; i < nMaximum; ++i) - { - if(pBounds[i].Contains(fX, fY)) - { - return (int32)i; - } - } - - return -1; -} - -/* - * GetMaximum - */ -uint32 ButtonPane::GetMaximum() const -{ - return nMaximum; -} - -/* - * GetSize - */ -uint32 ButtonPane::GetSize() const -{ - return nSize; -} - -/* - * GetBounds - */ -const Rectangle2& ButtonPane::GetBounds(uint32 nSlot) const -{ - return pBounds[nSlot]; -} diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/ButtonPane.h --- a/LightClone/Source/ButtonPane.h Fri Sep 16 15:28:15 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* - * ButtonPane - */ - -#ifndef __BUTTONPANE_H__ -#define __BUTTONPANE_H__ - -#include "Core.h" - -/* - * ButtonPane - */ -class ButtonPane -{ -private: - - /* - * nMaximum - */ - uint32 nMaximum; - - /* - * nSize - */ - uint32 nSize; - - /* - * pBounds - */ - Rectangle2* pBounds; - -public: - - /* - * ButtonPane - */ - ButtonPane(uint32 nMax); - - /* - * Add - */ - void Add(float fX, float fY, float fWidth, float fHeight); - - /* - * Pick - */ - int32 Pick(float fX, float fY); - - /* - * GetMaximum - */ - uint32 GetMaximum() const; - - /* - * GetSize - */ - uint32 GetSize() const; - - /* - * GetBounds - */ - const Rectangle2& GetBounds(uint32 nSlot) const; -}; - -#endif //__BUTTONPANE_H__ diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/Dialog.cpp --- a/LightClone/Source/Dialog.cpp Fri Sep 16 15:28:15 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* - * Dialog - */ - -#include "Dialog.h" - -/* - * Dialog - */ -Dialog::Dialog() -{ - nButtonCount = 0; -} - -/* - * Reset - */ -void Dialog::Reset(const char* pText) -{ - if(strcpy_s(kMessage, pText) == 0) - { - nButtonCount = 0; - } -} - -/* - * AddButton - */ -void Dialog::AddButton(uint32 nButton, const char* pText, float fX, float fY, float fWidth, float fHeight) -{ - if(nButtonCount < MaximumButtonCount) - { - if(strcpy_s(kButtonLabel[nButtonCount], pText) == 0) - { - kButtonRectangle[nButtonCount] = Rectangle2(fX, fY, fWidth, fHeight); - nButtonIdentifier[nButtonCount] = nButton; - - ++nButtonCount; - } - } -} - -/* - * Pick - */ -int32 Dialog::Pick(float fX, float fY) -{ - for(uint32 i = 0; i < nButtonCount; ++i) - { - if(kButtonRectangle[i].Contains(fX, fY)) - { - return (int32)nButtonIdentifier[i]; - } - } - - return -1; -} diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/Dialog.h --- a/LightClone/Source/Dialog.h Fri Sep 16 15:28:15 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* - * Dialog - */ - -#ifndef __DIALOG_H__ -#define __DIALOG_H__ - -#include "Core.h" - -/* - * Dialog - */ -class Dialog -{ -public: - - /* - * MaximumButtonCount - */ - static const uint32 MaximumButtonCount = 2; - - /* - * MaximumMessageLength - */ - static const uint32 MaximumMessageLength = 256; - -private: - - /* - * kMessage - */ - char kMessage[MaximumMessageLength]; - - /* - * kButtonLabel - */ - char kButtonLabel[MaximumButtonCount][MaximumMessageLength]; - - /* - * kButtonRectangle - */ - Rectangle2 kButtonRectangle[MaximumButtonCount]; - - /* - * nButtonIdentifier - */ - uint32 nButtonIdentifier[MaximumButtonCount]; - - /* - * nButtonCount - */ - uint32 nButtonCount; - -public: - - /* - * Dialog - */ - Dialog(); - - /* - * Reset - */ - void Reset(const char* pText); - - /* - * AddButton - */ - void AddButton(uint32 nButton, const char* pText, float fX, float fY, float fWidth, float fHeight); - - /* - * Pick - */ - int32 Pick(float fX, float fY); -}; - -#endif //__DIALOG_H__ diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/DragController.cpp --- a/LightClone/Source/DragController.cpp Fri Sep 16 15:28:15 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* - * DragController - */ - -#include "DragController.h" - -/* - * DragController - */ -DragController::DragController() -{ - bActive = false; - nParameter = 0; -} - -/* - * Begin - */ -void DragController::Begin(uint32 nValue) -{ - bActive = true; - nParameter = nValue; -} - -/* - * End - */ -uint32 DragController::End() -{ - bActive = false; - return nParameter; -} - -/* - * Reset - */ -void DragController::Reset() -{ - bActive = false; - nParameter = 0; -} - -/* - * IsActive - */ -bool DragController::IsActive() const -{ - return bActive; -} - -/* - * GetParameter - */ -uint32 DragController::GetParameter() const -{ - return nParameter; -} \ No newline at end of file diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/DragController.h --- a/LightClone/Source/DragController.h Fri Sep 16 15:28:15 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* - * DragController - */ - -#ifndef __DRAGCONTROLLER_H__ -#define __DRAGCONTROLLER_H__ - -#include "Core.h" - -/* - * DragController - */ -class DragController -{ - /* - * bActive - */ - bool bActive; - - /* - * nParameter - */ - uint32 nParameter; - -public: - - /* - * DragController - */ - DragController(); - - /* - * Begin - */ - void Begin(uint32 nValue); - - /* - * End - */ - uint32 End(); - - /* - * Reset - */ - void Reset(); - - /* - * IsActive - */ - bool IsActive() const; - - /* - * GetParameter - */ - uint32 GetParameter() const; -}; - -#endif //__DRAGCONTROLLER_H__ diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/Environment.cpp --- a/LightClone/Source/Environment.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/Environment.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -11,14 +11,14 @@ */ Environment::Environment() : pGrid(0) { - pBlockEffect = NULL; - pBlockVertexBuffer = NULL; - pBlockTexture = NULL; - nWidth = 0; - nHeight = 0; - kScale.x = 1.0f; - kScale.y = 0.4f; - kScale.z = 1.0f; + pEffect = NULL; + pVertexBuffer = NULL; + pTexture = NULL; + nWidth = 0; + nHeight = 0; + kScale.x = 1.0f; + kScale.y = 0.4f; + kScale.z = 1.0f; } /* @@ -34,13 +34,13 @@ */ ErrorCode Environment::Initialize(ResourceManager* pResourceManager) { - ErrorCode eCode = pResourceManager->CreateEffectFromFile("Data\\Shaders\\Environment.fx", &pBlockEffect); + ErrorCode eCode = pResourceManager->CreateEffectFromFile("Data\\Shaders\\Environment.fx", &pEffect); if(eCode == Error_Success) { - eCode = pResourceManager->CreateTextureFromFile("Data\\Textures\\Block02.tga", &pBlockTexture); + eCode = pResourceManager->CreateTextureFromFile("Data\\Textures\\Block02.tga", &pTexture); if(eCode == Error_Success) { - eCode = pResourceManager->CreateVertexBuffer(VerticesPerBlock * sizeof(Vertex::Block), D3DUSAGE_WRITEONLY, D3DPOOL_MANAGED, &pBlockVertexBuffer); + eCode = pResourceManager->CreateVertexBuffer(VerticesPerBlock * sizeof(Vertex::Block), D3DUSAGE_WRITEONLY, D3DPOOL_MANAGED, &pVertexBuffer); if(eCode == Error_Success) { eCode = SetupVertexBuffer(); @@ -56,22 +56,10 @@ */ void Environment::Terminate() { - if(pBlockVertexBuffer) - { - pBlockVertexBuffer->Release(); - pBlockVertexBuffer = NULL; - } - - if(pBlockTexture) + if(pVertexBuffer) { - pBlockTexture->Release(); - pBlockTexture = NULL; - } - - if(pBlockEffect) - { - pBlockEffect->Release(); - pBlockEffect = 0; + pVertexBuffer->Release(); + pVertexBuffer = NULL; } } @@ -111,11 +99,11 @@ { uint32 nPasses = 0; - kContext.ApplyCameraToEffect(kCamera, pBlockEffect); + kContext.ApplyCameraToEffect(kCamera, pEffect); - pBlockEffect->SetTechnique(pBlockEffect->GetTechnique(0)); - pBlockEffect->Begin(&nPasses, 0); - pBlockEffect->BeginPass(0); + pEffect->SetTechnique(pEffect->GetTechnique(0)); + pEffect->Begin(&nPasses, 0); + pEffect->BeginPass(0); D3DXMATRIX kScaleMatrix; D3DXMatrixScaling(&kScaleMatrix, kScale.x, kScale.y, kScale.z); @@ -162,24 +150,24 @@ const D3DXVECTOR4 kColorVector(fRed, fGreen, fBlue, fAlpha); - pBlockEffect->SetMatrix(pBlockEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix); - pBlockEffect->SetVector(pBlockEffect->GetParameterByName(NULL, "kColor"), &kColorVector); - pBlockEffect->SetTexture(pBlockEffect->GetParameterByName(NULL, "kTexture"), pBlockTexture); - pBlockEffect->CommitChanges(); + pEffect->SetMatrix(pEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix); + pEffect->SetVector(pEffect->GetParameterByName(NULL, "kColor"), &kColorVector); + pEffect->SetTexture(pEffect->GetParameterByName(NULL, "kTexture"), pTexture); + pEffect->CommitChanges(); - kContext.DrawTriangles(Vertex::Block::Declaration, pBlockVertexBuffer, sizeof(Vertex::Block), FacesPerCube * TrianglesPerFace); + kContext.DrawTriangles(Vertex::Block::Declaration, pVertexBuffer, sizeof(Vertex::Block), FacesPerCube * TrianglesPerFace); } } } - pBlockEffect->EndPass(); - pBlockEffect->End(); + pEffect->EndPass(); + pEffect->End(); if(false) // wireframe { - pBlockEffect->SetTechnique(pBlockEffect->GetTechniqueByName("Wire")); - pBlockEffect->Begin(&nPasses, 0); - pBlockEffect->BeginPass(0); + pEffect->SetTechnique(pEffect->GetTechniqueByName("Wire")); + pEffect->Begin(&nPasses, 0); + pEffect->BeginPass(0); for(uint32 nZ = 0; nZ < nHeight; ++nZ) { @@ -195,18 +183,18 @@ const D3DXVECTOR4 kColorVector(0.0f, 0.0f, 0.0f, 1.0f); - pBlockEffect->SetMatrix(pBlockEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix); - pBlockEffect->SetVector(pBlockEffect->GetParameterByName(NULL, "kColor"), &kColorVector); - pBlockEffect->SetTexture(pBlockEffect->GetParameterByName(NULL, "kTexture"), pBlockTexture); - pBlockEffect->CommitChanges(); + pEffect->SetMatrix(pEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix); + pEffect->SetVector(pEffect->GetParameterByName(NULL, "kColor"), &kColorVector); + pEffect->SetTexture(pEffect->GetParameterByName(NULL, "kTexture"), pTexture); + pEffect->CommitChanges(); - kContext.DrawTriangles(Vertex::Block::Declaration, pBlockVertexBuffer, sizeof(Vertex::Block), FacesPerCube * TrianglesPerFace); + kContext.DrawTriangles(Vertex::Block::Declaration, pVertexBuffer, sizeof(Vertex::Block), FacesPerCube * TrianglesPerFace); } } } - pBlockEffect->EndPass(); - pBlockEffect->End(); + pEffect->EndPass(); + pEffect->End(); } } @@ -404,7 +392,7 @@ { Vertex::Block* pVertices = NULL; - HRESULT hResult = pBlockVertexBuffer->Lock(0, 0, (void**)&pVertices, D3DLOCK_DISCARD); + HRESULT hResult = pVertexBuffer->Lock(0, 0, (void**)&pVertices, D3DLOCK_DISCARD); if(FAILED(hResult)) { return Error_Fail; @@ -456,7 +444,7 @@ pVertices[34] = Vertex::Block(+0.5f, 0.0f, -0.5f, 0.0f, -1.0f, 0.0f, 1.00f, 0.00f); pVertices[35] = Vertex::Block(+0.5f, 0.0f, +0.5f, 0.0f, -1.0f, 0.0f, 1.00f, 0.66f); - pBlockVertexBuffer->Unlock(); + pVertexBuffer->Unlock(); return Error_Success; } \ No newline at end of file diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/Environment.h --- a/LightClone/Source/Environment.h Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/Environment.h Fri Sep 16 18:21:36 2011 -0700 @@ -16,19 +16,19 @@ class Environment { /* - * pBlockEffect + * pEffect */ - ID3DXEffect* pBlockEffect; + ID3DXEffect* pEffect; /* - * pBlockVertexBuffer + * pVertexBuffer */ - IDirect3DVertexBuffer9* pBlockVertexBuffer; + IDirect3DVertexBuffer9* pVertexBuffer; /* - * pBlockTexture + * pTexture */ - IDirect3DTexture9* pBlockTexture; + IDirect3DTexture9* pTexture; /* * nWidth diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/GuiButton.cpp --- a/LightClone/Source/GuiButton.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/GuiButton.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -46,32 +46,11 @@ */ void GuiButton::Terminate() { - if(pFont) - { - pFont->Release(); - pFont = NULL; - } - - for(uint32 i = 0; i < GuiButtonState_Count; ++i) - { - if(pTexture[i]) - { - pTexture[i]->Release(); - pTexture[i] = NULL; - } - } - if(pVertexBuffer) { pVertexBuffer->Release(); pVertexBuffer = NULL; } - - if(pEffect) - { - pEffect->Release(); - pEffect = NULL; - } } /* @@ -155,11 +134,7 @@ if(nState < GuiButtonState_Count) { - if(pTexture[nState]) - { - pTexture[nState]->Release(); - pTexture[nState] = NULL; - } + pTexture[nState] = NULL; eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture[nState]); if(eCode == Error_Success) @@ -183,11 +158,7 @@ */ ErrorCode GuiButton::SetFont(const char* pName, uint32 nSize, uint32 nWeight) { - if(pFont) - { - pFont->Release(); - pFont = NULL; - } + pFont = NULL; return pResourceManager->CreateFontFromName(pName, nSize, nWeight, &pFont); } diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/GuiCursor.cpp --- a/LightClone/Source/GuiCursor.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/GuiCursor.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -37,23 +37,11 @@ */ void GuiCursor::Terminate() { - if(pTexture) - { - pTexture->Release(); - pTexture = NULL; - } - if(pVertexBuffer) { pVertexBuffer->Release(); pVertexBuffer = NULL; } - - if(pEffect) - { - pEffect->Release(); - pEffect = NULL; - } } /* @@ -109,11 +97,7 @@ */ ErrorCode GuiCursor::SetTexture(const char* pName, bool bResize) { - if(pTexture) - { - pTexture->Release(); - pTexture = NULL; - } + pTexture = NULL; ErrorCode eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture); if(eCode == Error_Success) diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/GuiImage.cpp --- a/LightClone/Source/GuiImage.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/GuiImage.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -37,23 +37,11 @@ */ void GuiImage::Terminate() { - if(pTexture) - { - pTexture->Release(); - pTexture = NULL; - } - if(pVertexBuffer) { pVertexBuffer->Release(); pVertexBuffer = NULL; } - - if(pEffect) - { - pEffect->Release(); - pEffect = NULL; - } } /* @@ -115,11 +103,7 @@ */ ErrorCode GuiImage::SetTexture(const char* pName, bool bResize) { - if(pTexture) - { - pTexture->Release(); - pTexture = NULL; - } + pTexture = NULL; ErrorCode eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture); if(eCode == Error_Success) diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/GuiLabel.cpp --- a/LightClone/Source/GuiLabel.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/GuiLabel.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -24,11 +24,6 @@ */ void GuiLabel::Terminate() { - if(pFont) - { - pFont->Release(); - pFont = NULL; - } } /* @@ -80,11 +75,7 @@ */ ErrorCode GuiLabel::SetFont(const char* pName, uint32 nSize, uint32 nWeight) { - if(pFont) - { - pFont->Release(); - pFont = NULL; - } + pFont = NULL; return pResourceManager->CreateFontFromName(pName, nSize, nWeight, &pFont); } diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/HashMap.h --- a/LightClone/Source/HashMap.h Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/HashMap.h Fri Sep 16 18:21:36 2011 -0700 @@ -30,6 +30,11 @@ class HashMap { /* + * Iterator + */ + friend class HashMapIterator, Value>; + + /* * Node */ struct Node @@ -54,6 +59,9 @@ */ Node(Key& kNodeKey) : kKey(kNodeKey), pNext(NULL) { + uint8* pData = (uint8*)&kValue; + for(uint32 i = 0; i < sizeof(kValue); ++i) + *pData++ = 0; } }; @@ -100,6 +108,14 @@ } /* + * ~HashMap + */ + ~HashMap() + { + Clear(); + } + + /* * Add */ Value* Add(Key& kKey) @@ -121,6 +137,27 @@ } /* + * Clear + */ + void Clear() + { + for(uint32 i = 0; i < Size; ++i) + { + Node* pNode = pTable[i]; + + while(pNode) + { + Node* pItem = pNode; + pNode = pNode->pNext; + + delete pItem; + } + + pTable[i] = NULL; + } + } + + /* * Find */ Value* Find(const Key& kKey) @@ -144,12 +181,18 @@ /* * Begin */ - Iterator Begin(); + Iterator Begin() + { + return Iterator(this, Size); + } /* * End */ - Iterator End(); + Iterator End() + { + return Iterator(this, Size, Size); + } private: diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/HashMapIterator.h --- a/LightClone/Source/HashMapIterator.h Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/HashMapIterator.h Fri Sep 16 18:21:36 2011 -0700 @@ -40,6 +40,10 @@ */ HashMapIterator(Map* pInstance, uint32 nInstanceSize) : pMap(pInstance), nSize(nInstanceSize), pNode(NULL), nSlot(0) { + while(!pNode && nSlot < nSize) + { + pNode = pInstance->pTable[nSlot++]; + } } /* @@ -47,7 +51,10 @@ */ HashMapIterator(Map* pInstance, uint32 nInstanceSize, uint32 nStart) : pMap(pInstance), nSize(nInstanceSize), pNode(NULL), nSlot(nStart) { - //pNode = pInstance->pTable[nSlot]; + while(!pNode && nSlot < nSize) + { + pNode = pInstance->pTable[nSlot++]; + } } /* @@ -55,6 +62,18 @@ */ HashMapIterator& operator ++() { + if(pNode) + { + pNode = pNode->pNext; + if(!pNode) + { + while(!pNode && nSlot < nSize) + { + pNode = pMap->pTable[nSlot++]; + } + } + } + return *this; } @@ -63,6 +82,18 @@ */ HashMapIterator& operator ++(int) { + if(pNode) + { + pNode = pNode->pNext; + if(!pNode) + { + while(!pNode && nSlot < nSize) + { + pNode = pMap->pTable[nSlot++]; + } + } + } + return *this; } diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/ResourceManager.cpp --- a/LightClone/Source/ResourceManager.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/ResourceManager.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -59,8 +59,33 @@ */ void ResourceManager::Terminate() { - //TODO: Iterate over each cache and release resources + TextureCache::Iterator kTexture = kTextureCache.Begin(); + TextureCache::Iterator kTextureEnd = kTextureCache.End(); + + for(; kTexture != kTextureEnd; ++kTexture) + { + (*kTexture)->Release(); + } + + EffectCache::Iterator kEffect = kEffectCache.Begin(); + EffectCache::Iterator kEffectEnd = kEffectCache.End(); + for(; kEffect != kEffectEnd; ++kEffect) + { + (*kEffect)->Release(); + } + + FontCache::Iterator kFont = kFontCache.Begin(); + FontCache::Iterator kFontEnd = kFontCache.Begin(); + + for(; kFont != kFontEnd; ++kFont) + { + (*kFont)->Release(); + } + + kTextureCache.Clear(); + kEffectCache.Clear(); + kFontCache.Clear(); pGraphicsDevice = NULL; } diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/ResourceManager.h --- a/LightClone/Source/ResourceManager.h Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/ResourceManager.h Fri Sep 16 18:21:36 2011 -0700 @@ -34,6 +34,21 @@ class ResourceManager { /* + * TextureCache + */ + typedef HashMap TextureCache; + + /* + * EffectCache + */ + typedef HashMap EffectCache; + + /* + * FontCache + */ + typedef HashMap FontCache; + + /* * pGraphicsDevice */ GraphicsDevice* pGraphicsDevice; @@ -41,17 +56,17 @@ /* * kTextureCache */ - HashMap kTextureCache; + TextureCache kTextureCache; /* * kEffectCache */ - HashMap kEffectCache; + EffectCache kEffectCache; /* * kFontCache */ - HashMap kFontCache; + FontCache kFontCache; public: diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/World.cpp --- a/LightClone/Source/World.cpp Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/World.cpp Fri Sep 16 18:21:36 2011 -0700 @@ -11,7 +11,7 @@ /* * World */ -World::World() : kToolbar(8), kMain(16), kFunction(8) +World::World() //: kToolbar(8), kMain(16), kFunction(8) { nGameState = GameState_Active; nSimulationState = SimulationState_Idle; @@ -19,14 +19,15 @@ nCurrentFunction = 0; nCurrentLevel = 0; - kArrowBounds[0] = Rectangle2(1206.0f + 0 * 16.0f, 473.0f + 0 * 54.0f, 16.0f, 16.0f); - kArrowBounds[1] = Rectangle2(1206.0f + 2 * 16.0f, 473.0f + 0 * 54.0f, 16.0f, 16.0f); + //kArrowBounds[0] = Rectangle2(1206.0f + 0 * 16.0f, 473.0f + 0 * 54.0f, 16.0f, 16.0f); + //kArrowBounds[1] = Rectangle2(1206.0f + 2 * 16.0f, 473.0f + 0 * 54.0f, 16.0f, 16.0f); + + //kDialog1Bounds[0] = Rectangle2(567.0f, 412.0f, 150.0f, 60.0f); - kDialog1Bounds[0] = Rectangle2(567.0f, 412.0f, 150.0f, 60.0f); + //kDialog2Bounds[0] = Rectangle2(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f); + //kDialog2Bounds[1] = Rectangle2(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f); - kDialog2Bounds[0] = Rectangle2(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f); - kDialog2Bounds[1] = Rectangle2(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f); - + /* kToolbar.Add(1023.0f + 0 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f); kToolbar.Add(1023.0f + 1 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f); kToolbar.Add(1023.0f + 2 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f); @@ -61,6 +62,7 @@ kFunction.Add(1023.0f + 1 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f); kFunction.Add(1023.0f + 2 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f); kFunction.Add(1023.0f + 3 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f); + */ } /* @@ -237,8 +239,8 @@ { if(kEnvironment.RequirementsMet()) { - kDialog.Reset("Some message"); - kDialog.AddButton(DialogButton_Ok, "Ok", 0.0f, 0.0f, 0.0f, 0.0f); + //kDialog.Reset("Some message"); + //kDialog.AddButton(DialogButton_Ok, "Ok", 0.0f, 0.0f, 0.0f, 0.0f); nGameState = GameState_Complete; } @@ -284,6 +286,8 @@ pBackground->SetTexture("Data\\Textures\\Background01.tga", true); pBackground->SetPosition(ScreenSizeX - pBackground->GetWidth(), 0.0f); + //GuiImage* pToolbar = new GuiImage(); + GuiButton* pButtonPlay = new GuiButton(); pButtonPlay->Initialize(pResourceManager); pButtonPlay->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Play.tga", true); @@ -339,21 +343,20 @@ pLevelDialog->Add(pLevelDialogOk); - /* + pGameDialog = new GuiImage(); + pGameDialog->Initialize(pResourceManager); + pGameDialog->ClearFlag(GuiElementFlag_Visible); + pGameDialog->SetTexture("Data\\Textures\\Dialog0.tga", true); + pGameDialog->SetPosition(0.5f * (ScreenSizeX - pGameDialog->GetWidth()), 0.5f * (ScreenSizeY - pGameDialog->GetHeight())); + pGameDialogOk = new GuiButton(); pGameDialogOk->Initialize(pResourceManager); pGameDialogOk->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button.tga", true); pGameDialogOk->SetText("Ok"); pGameDialogOk->SetPosition(0.5f * (pGameDialog->GetWidth() - pGameDialogOk->GetWidth()), 171.0f); - pGameDialogOk->Subscribe(GuiButton::EventClick, &World::OnOk, this); - */ + pGameDialogOk->Subscribe(GuiButton::EventClick, &World::OnExit, this); - pGameDialog = new GuiImage(); - pGameDialog->Initialize(pResourceManager); - pGameDialog->ClearFlag(GuiElementFlag_Visible); - pGameDialog->SetTexture("Data\\Textures\\Dialog0.tga", true); - pGameDialog->SetPosition(0.5f * (ScreenSizeX - pGameDialog->GetWidth()), 0.5f * (ScreenSizeY - pGameDialog->GetHeight())); - //pGameDialog->Add(pGameDialogOk); + pGameDialog->Add(pGameDialogOk); kInterface.Add(pBackground); kInterface.Add(pButtonPlay); @@ -490,9 +493,10 @@ } #endif - const float fMouseX = pInputManager->GetMouseX(); - const float fMouseY = pInputManager->GetMouseY(); + //const float fMouseX = pInputManager->GetMouseX(); + //const float fMouseY = pInputManager->GetMouseY(); + /* if(nGameState == GameState_Active) { if(pInputManager->IsButtonDown(0) && !pInputManager->WasButtonDown(0)) @@ -593,7 +597,7 @@ } } - /* + #if 0 int32 nSelection = kDialog.Pick(fMouseX, fMouseY); if(nSelection == DialogButton_A) @@ -608,7 +612,7 @@ nGameState = GameState_LoadMap; } - */ + #endif } } else @@ -630,7 +634,7 @@ } } - /* + #if 0 int32 nSelection = kDialog.Pick(fMouseX, fMouseY); if(nSelection == DialogButton_A) @@ -638,7 +642,7 @@ nCurrentLevel = 0; nGameState = GameState_LoadMap; } - */ + #endif } } else @@ -665,7 +669,7 @@ } } - /* + #if 0 int32 nSelection = kDialog.Pick(fMouseX, fMouseY); if(nSelection == DialogButton_A) @@ -678,9 +682,10 @@ { nGameState = GameState_Active; } - */ + #endif } } + */ } /* diff -r 3a63df04f3c0 -r 5656c8e382fc LightClone/Source/World.h --- a/LightClone/Source/World.h Fri Sep 16 15:28:15 2011 -0700 +++ b/LightClone/Source/World.h Fri Sep 16 18:21:36 2011 -0700 @@ -14,10 +14,10 @@ #include "Code.h" #include "Loader.h" #include "CameraController.h" -#include "DragController.h" +//#include "DragController.h" #include "InputManager.h" -#include "ButtonPane.h" -#include "Dialog.h" +//#include "ButtonPane.h" +//#include "Dialog.h" #include "GuiInterface.h" #include "GuiImage.h" #include "GuiButton.h" @@ -88,44 +88,39 @@ GuiInterface kInterface; /* - * kDragController - */ - DragController kDragController; - - /* * kToolbar */ - ButtonPane kToolbar; + //ButtonPane kToolbar; /* * kMain */ - ButtonPane kMain; + //ButtonPane kMain; /* * kFunction */ - ButtonPane kFunction; + //ButtonPane kFunction; /* * kArrowBounds */ - Rectangle2 kArrowBounds[2]; + //Rectangle2 kArrowBounds[2]; /* * kDialog1Bounds */ - Rectangle2 kDialog1Bounds[1]; + //Rectangle2 kDialog1Bounds[1]; /* * kDialog2Bounds */ - Rectangle2 kDialog2Bounds[2]; + //Rectangle2 kDialog2Bounds[2]; /* * kDialog */ - Dialog kDialog; + //Dialog kDialog; /* * pLevelDialog