diff --git a/Unuk-QT/Makefile b/Unuk-QT/Makefile index 61cc84b..c1ebc2c 100644 --- a/Unuk-QT/Makefile +++ b/Unuk-QT/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: Unuk-QT -# Generated by qmake (2.01a) (Qt 4.7.3) on: Wed Dec 21 23:06:49 2011 +# Generated by qmake (2.01a) (Qt 4.7.3) on: Sat Dec 31 00:45:11 2011 # Project: Unuk-QT.pro # Template: app # Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro @@ -68,7 +68,8 @@ SOURCES = ../src/libUnuk/Debug.cpp \ ../src/Unuk/Game.cpp \ ../src/libUnuk/MapElement.cpp \ ../src/libUnuk/MapEntities.cpp \ - ../src/libUnuk/FPS.cpp + ../src/libUnuk/FPS.cpp \ + ../src/libUnuk/MemManager.cpp OBJECTS = Debug.o \ main.o \ Input.o \ @@ -94,7 +95,8 @@ OBJECTS = Debug.o \ Game.o \ MapElement.o \ MapEntities.o \ - FPS.o + FPS.o \ + MemManager.o DIST = /usr/share/qt4/mkspecs/common/g++.conf \ /usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/linux.conf \ @@ -194,7 +196,7 @@ qmake: FORCE dist: @$(CHK_DIR_EXISTS) .tmp/Unuk-QT1.0.0 || $(MKDIR) .tmp/Unuk-QT1.0.0 - $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.h ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Input.h ../src/libUnuk/Rect.h ../src/libUnuk/Timer.h ../src/libUnuk/Font.h ../Constants.h ../src/Unuk/Constants.h ../src/libUnuk/ApplySurface.h ../src/Unuk/Globals.h ../src/libUnuk/ImageLoader.h ../src/libUnuk/TextureManager.h ../src/libUnuk/Texture.h ../src/libUnuk/Text.h ../src/libUnuk/MapTile.h ../src/libUnuk/Map.h ../src/libUnuk/Button.h ../src/libUnuk/ButtonToggle.h ../src/libUnuk/MainMenu.h ../src/libUnuk/ParticleEmitter.h ../src/libUnuk/IngameMenu.h ../src/libUnuk/Collision.h ../src/libUnuk/Character.h ../src/libUnuk/NPC.h ../src/Unuk/Player.h ../src/Unuk/Game.h ../src/libUnuk/MapElement.h ../src/libUnuk/MapEntities.h ../src/libUnuk/FPS.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.cpp ../src/Unuk/main.cpp ../src/libUnuk/Input.cpp ../src/libUnuk/Timer.cpp ../src/libUnuk/Font.cpp ../src/libUnuk/ApplySurface.cpp ../src/Unuk/Globals.cpp ../src/libUnuk/Rect.cpp ../src/libUnuk/ImageLoader.cpp ../src/libUnuk/TextureManager.cpp ../src/libUnuk/Texture.cpp ../src/libUnuk/Text.cpp ../src/libUnuk/Map.cpp ../src/libUnuk/Button.cpp ../src/libUnuk/ButtonToggle.cpp ../src/libUnuk/ParticleEmitter.cpp ../src/libUnuk/MainMenu.cpp ../src/libUnuk/IngameMenu.cpp ../src/libUnuk/Collision.cpp ../src/libUnuk/Character.cpp ../src/libUnuk/NPC.cpp ../src/Unuk/Player.cpp ../src/Unuk/Game.cpp ../src/libUnuk/MapElement.cpp ../src/libUnuk/MapEntities.cpp ../src/libUnuk/FPS.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0 + $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.h ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Input.h ../src/libUnuk/Rect.h ../src/libUnuk/Timer.h ../src/libUnuk/Font.h ../Constants.h ../src/Unuk/Constants.h ../src/libUnuk/ApplySurface.h ../src/Unuk/Globals.h ../src/libUnuk/ImageLoader.h ../src/libUnuk/TextureManager.h ../src/libUnuk/Texture.h ../src/libUnuk/Text.h ../src/libUnuk/MapTile.h ../src/libUnuk/Map.h ../src/libUnuk/Button.h ../src/libUnuk/ButtonToggle.h ../src/libUnuk/MainMenu.h ../src/libUnuk/ParticleEmitter.h ../src/libUnuk/IngameMenu.h ../src/libUnuk/Collision.h ../src/libUnuk/Character.h ../src/libUnuk/NPC.h ../src/Unuk/Player.h ../src/Unuk/Game.h ../src/libUnuk/MapElement.h ../src/libUnuk/MapEntities.h ../src/libUnuk/FPS.h ../src/libUnuk/MemManager.h ../src/libUnuk/MemClass.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.cpp ../src/Unuk/main.cpp ../src/libUnuk/Input.cpp ../src/libUnuk/Timer.cpp ../src/libUnuk/Font.cpp ../src/libUnuk/ApplySurface.cpp ../src/Unuk/Globals.cpp ../src/libUnuk/Rect.cpp ../src/libUnuk/ImageLoader.cpp ../src/libUnuk/TextureManager.cpp ../src/libUnuk/Texture.cpp ../src/libUnuk/Text.cpp ../src/libUnuk/Map.cpp ../src/libUnuk/Button.cpp ../src/libUnuk/ButtonToggle.cpp ../src/libUnuk/ParticleEmitter.cpp ../src/libUnuk/MainMenu.cpp ../src/libUnuk/IngameMenu.cpp ../src/libUnuk/Collision.cpp ../src/libUnuk/Character.cpp ../src/libUnuk/NPC.cpp ../src/Unuk/Player.cpp ../src/Unuk/Game.cpp ../src/libUnuk/MapElement.cpp ../src/libUnuk/MapEntities.cpp ../src/libUnuk/FPS.cpp ../src/libUnuk/MemManager.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0 clean:compiler_clean @@ -491,6 +493,10 @@ FPS.o: ../src/libUnuk/FPS.cpp ../src/libUnuk/FPS.h \ ../src/libUnuk/Timer.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o FPS.o ../src/libUnuk/FPS.cpp +MemManager.o: ../src/libUnuk/MemManager.cpp ../src/libUnuk/MemManager.h \ + ../src/libUnuk/MemClass.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o MemManager.o ../src/libUnuk/MemManager.cpp + ####### Install install: FORCE diff --git a/Unuk-QT/Unuk-QT b/Unuk-QT/Unuk-QT index 7494830..c768e34 100755 Binary files a/Unuk-QT/Unuk-QT and b/Unuk-QT/Unuk-QT differ diff --git a/Unuk-QT/Unuk-QT.pro b/Unuk-QT/Unuk-QT.pro index 8fff901..2449f2b 100644 --- a/Unuk-QT/Unuk-QT.pro +++ b/Unuk-QT/Unuk-QT.pro @@ -37,7 +37,9 @@ HEADERS += ../src/libUnuk/Debug.h \ ../src/Unuk/Game.h \ ../src/libUnuk/MapElement.h \ ../src/libUnuk/MapEntities.h \ - ../src/libUnuk/FPS.h + ../src/libUnuk/FPS.h \ + ../src/libUnuk/MemManager.h \ + ../src/libUnuk/MemClass.h SOURCES += ../src/libUnuk/Debug.cpp \ ../src/Unuk/main.cpp \ ../src/libUnuk/Input.cpp \ @@ -63,4 +65,5 @@ SOURCES += ../src/libUnuk/Debug.cpp \ ../src/Unuk/Game.cpp \ ../src/libUnuk/MapElement.cpp \ ../src/libUnuk/MapEntities.cpp \ - ../src/libUnuk/FPS.cpp + ../src/libUnuk/FPS.cpp \ + ../src/libUnuk/MemManager.cpp diff --git a/src/libUnuk/MemClass.h b/src/libUnuk/MemClass.h new file mode 100644 index 0000000..03e8b5d --- /dev/null +++ b/src/libUnuk/MemClass.h @@ -0,0 +1,29 @@ +#ifndef _MEMCLASS_H_ +#define _MEMCLASS_H_ +#include +#include +#include "MemManager.h" + +extern MemManager gMemManager; + +class Complex { +public: + Complex(void) : r(0), c(0) {} + Complex(double a, double b): r(a), c(b) {} + + inline void* operator new(size_t size) { + return gMemManager.Allocate(sizeof(Complex)); + } + + inline void operator delete(void* object) { + gMemManager.Free(object); + } + +private: + // Real part. + double r; + // Complex part. + double c; +}; + +#endif diff --git a/src/libUnuk/MemManager.cpp b/src/libUnuk/MemManager.cpp new file mode 100644 index 0000000..a6b06a3 --- /dev/null +++ b/src/libUnuk/MemManager.cpp @@ -0,0 +1,10 @@ +#include "MemManager.h" +#include "MemClass.h" + +MemManager::MemManager(void) { + +} + +MemManager::~MemManager(void) { + +} diff --git a/src/libUnuk/MemManager.h b/src/libUnuk/MemManager.h new file mode 100644 index 0000000..368cbbd --- /dev/null +++ b/src/libUnuk/MemManager.h @@ -0,0 +1,33 @@ +#ifndef _MEMMANAGER_H_ +#define _MEMMANAGER_H_ +#include +#include +#include +#include +#include +#include +using namespace std; + +class IMemManager { +public: + virtual void* Allocate(size_t size) = 0; + virtual void Free(void* ) = 0; +}; + +class MemManager : public IMemManager { +public: + MemManager(void); + ~MemManager(void); + + void* Allocate(size_t size); + void Free(void* object); + +private: + list _byte8PtrList; + list _byte16PtrList; + list _byte24PtrList; + list _byte32PtrList; + list _byte40PtrList; +}; + +#endif