|
|
@@ -1,4 +1,5 @@
|
|
|
/*
|
|
|
+Copyright (c) 2013 Daniele Bartolini, Michele Rossi
|
|
|
Copyright (c) 2012 Daniele Bartolini, Simone Boscaratto
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person
|
|
|
@@ -37,8 +38,9 @@ OTHER DEALINGS IN THE SOFTWARE.
|
|
|
#include "String.h"
|
|
|
#include "Args.h"
|
|
|
#include "Game.h"
|
|
|
-#include "ArchiveResourceArchive.h"
|
|
|
-#include "FileResourceArchive.h"
|
|
|
+#include <cstdlib>
|
|
|
+#include "ArchiveBundle.h"
|
|
|
+#include "FileBundle.h"
|
|
|
#include "ResourceManager.h"
|
|
|
#include "TextureResource.h"
|
|
|
#include "Keyboard.h"
|
|
|
@@ -46,6 +48,7 @@ OTHER DEALINGS IN THE SOFTWARE.
|
|
|
#include "Touch.h"
|
|
|
#include "Accelerometer.h"
|
|
|
#include "OsWindow.h"
|
|
|
+#include "Memory.h"
|
|
|
|
|
|
namespace crown
|
|
|
{
|
|
|
@@ -76,7 +79,7 @@ Device::Device() :
|
|
|
m_debug_renderer(NULL),
|
|
|
|
|
|
m_resource_manager(NULL),
|
|
|
- m_resource_archive(NULL),
|
|
|
+ m_resource_bundle(NULL),
|
|
|
|
|
|
m_game_library(NULL)
|
|
|
{
|
|
|
@@ -172,13 +175,13 @@ void Device::shutdown()
|
|
|
|
|
|
if (m_input_manager)
|
|
|
{
|
|
|
- delete m_input_manager;
|
|
|
+ CE_DELETE(m_allocator, m_input_manager);
|
|
|
}
|
|
|
|
|
|
Log::i("Releasing DebugRenderer...");
|
|
|
if (m_debug_renderer)
|
|
|
{
|
|
|
- delete m_debug_renderer;
|
|
|
+ CE_DELETE(m_allocator, m_debug_renderer);
|
|
|
}
|
|
|
|
|
|
Log::i("Releasing Renderer...");
|
|
|
@@ -192,24 +195,24 @@ void Device::shutdown()
|
|
|
Log::i("Releasing Window...");
|
|
|
if (m_window)
|
|
|
{
|
|
|
- delete m_window;
|
|
|
+ CE_DELETE(m_allocator, m_window);
|
|
|
}
|
|
|
|
|
|
Log::i("Releasing ResourceManager...");
|
|
|
- if (m_resource_archive)
|
|
|
+ if (m_resource_bundle)
|
|
|
{
|
|
|
- delete m_resource_archive;
|
|
|
+ CE_DELETE(m_allocator, m_resource_bundle);
|
|
|
}
|
|
|
|
|
|
if (m_resource_manager)
|
|
|
{
|
|
|
- delete m_resource_manager;
|
|
|
+ CE_DELETE(m_allocator, m_resource_manager);
|
|
|
}
|
|
|
|
|
|
Log::i("Releasing Filesystem...");
|
|
|
if (m_filesystem)
|
|
|
{
|
|
|
- delete m_filesystem;
|
|
|
+ CE_DELETE(m_allocator, m_filesystem);
|
|
|
}
|
|
|
|
|
|
m_is_init = false;
|
|
|
@@ -379,7 +382,7 @@ const void* Device::data(ResourceId name)
|
|
|
//-----------------------------------------------------------------------------
|
|
|
void Device::create_filesystem()
|
|
|
{
|
|
|
- m_filesystem = new Filesystem(m_preferred_root_path);
|
|
|
+ m_filesystem = CE_NEW(m_allocator, Filesystem)(m_preferred_root_path);
|
|
|
|
|
|
Log::d("Filesystem created.");
|
|
|
Log::d("Filesystem root path: %s", m_filesystem->root_path());
|
|
|
@@ -391,15 +394,15 @@ void Device::create_resource_manager()
|
|
|
// Select appropriate resource archive
|
|
|
if (m_preferred_mode == MODE_DEVELOPMENT)
|
|
|
{
|
|
|
- m_resource_archive = new FileResourceArchive(*m_filesystem);
|
|
|
+ m_resource_bundle = CE_NEW(m_allocator, FileBundle)(*m_filesystem);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- m_resource_archive = new ArchiveResourceArchive(*m_filesystem);
|
|
|
+ m_resource_bundle = CE_NEW(m_allocator, ArchiveBundle)(*m_filesystem);
|
|
|
}
|
|
|
|
|
|
// Create resource manager
|
|
|
- m_resource_manager = new ResourceManager(*m_resource_archive, m_resource_allocator);
|
|
|
+ m_resource_manager = CE_NEW(m_allocator, ResourceManager)(*m_resource_bundle);
|
|
|
|
|
|
Log::d("Resource manager created.");
|
|
|
Log::d("Resource seed: %d", m_resource_manager->seed());
|
|
|
@@ -409,7 +412,7 @@ void Device::create_resource_manager()
|
|
|
void Device::create_input_manager()
|
|
|
{
|
|
|
// Create input manager
|
|
|
- m_input_manager = new InputManager();
|
|
|
+ m_input_manager = CE_NEW(m_allocator, InputManager)();
|
|
|
|
|
|
Log::d("Input manager created.");
|
|
|
}
|
|
|
@@ -417,7 +420,7 @@ void Device::create_input_manager()
|
|
|
//-----------------------------------------------------------------------------
|
|
|
void Device::create_window()
|
|
|
{
|
|
|
- m_window = new OsWindow(m_preferred_window_width, m_preferred_window_height);
|
|
|
+ m_window = CE_NEW(m_allocator, OsWindow)(m_preferred_window_width, m_preferred_window_height);
|
|
|
|
|
|
CE_ASSERT(m_window != NULL, "Unable to create the window");
|
|
|
|
|
|
@@ -440,7 +443,7 @@ void Device::create_renderer()
|
|
|
void Device::create_debug_renderer()
|
|
|
{
|
|
|
// Create debug renderer
|
|
|
- m_debug_renderer = new DebugRenderer(*m_renderer);
|
|
|
+ m_debug_renderer = CE_NEW(m_allocator, DebugRenderer)(*m_renderer);
|
|
|
|
|
|
Log::d("Debug renderer created.");
|
|
|
}
|