@@ -19,7 +19,7 @@ namespace lol | |||||
void Debug::DrawLine(vec3 a, vec3 b, vec4 color) | void Debug::DrawLine(vec3 a, vec3 b, vec4 color) | ||||
{ | { | ||||
Scene::GetDefault()->AddLine(a, b, color); | |||||
g_scene->AddLine(a, b, color); | |||||
} | } | ||||
void Debug::DrawBox(vec3 a, vec3 b, vec4 color) | void Debug::DrawBox(vec3 a, vec3 b, vec4 color) | ||||
@@ -36,9 +36,9 @@ void Debug::DrawBox(vec3 a, vec3 b, vec4 color) | |||||
{ | { | ||||
int j = ((i & 1) << 1) | ((i >> 1) ^ 1); | int j = ((i & 1) << 1) | ((i >> 1) ^ 1); | ||||
Scene::GetDefault()->AddLine(v[i], v[i + 4], color); | |||||
Scene::GetDefault()->AddLine(v[i], v[j], color); | |||||
Scene::GetDefault()->AddLine(v[i + 4], v[j + 4], color); | |||||
g_scene->AddLine(v[i], v[i + 4], color); | |||||
g_scene->AddLine(v[i], v[j], color); | |||||
g_scene->AddLine(v[i + 4], v[j + 4], color); | |||||
} | } | ||||
} | } | ||||
@@ -133,15 +133,15 @@ void DefaultShaderData::SetupDefaultData(bool with_UV) | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
void DefaultShaderData::SetupShaderDatas(mat4 const &model) | void DefaultShaderData::SetupShaderDatas(mat4 const &model) | ||||
{ | { | ||||
mat4 proj = Scene::GetDefault()->GetCamera()->GetProjection(); | |||||
mat4 view = Scene::GetDefault()->GetCamera()->GetView(); | |||||
mat4 proj = g_scene->GetCamera()->GetProjection(); | |||||
mat4 view = g_scene->GetCamera()->GetView(); | |||||
mat4 modelview = view * model; | mat4 modelview = view * model; | ||||
mat3 normalmat = transpose(inverse(mat3(modelview))); | mat3 normalmat = transpose(inverse(mat3(modelview))); | ||||
/* FIXME: this should be hidden in the shader */ | /* FIXME: this should be hidden in the shader */ | ||||
/* FIXME: the 4th component of the position can be used for other things */ | /* FIXME: the 4th component of the position can be used for other things */ | ||||
/* FIXME: GetUniform("blabla") is costly */ | /* FIXME: GetUniform("blabla") is costly */ | ||||
Array<Light *> const lights = Scene::GetDefault()->GetLights(); | |||||
Array<Light *> const lights = g_scene->GetLights(); | |||||
Array<vec4> light_data; | Array<vec4> light_data; | ||||
for (int i = 0; i < lights.Count(); ++i) | for (int i = 0; i < lights.Count(); ++i) | ||||
light_data << lights[i]->GetPosition() << lights[i]->GetColor(); | light_data << lights[i]->GetPosition() << lights[i]->GetColor(); | ||||
@@ -73,8 +73,8 @@ void Emitter::TickDraw(float seconds) | |||||
Entity::TickDraw(seconds); | Entity::TickDraw(seconds); | ||||
for (int i = 0; i < data->nparticles; i++) | for (int i = 0; i < data->nparticles; i++) | ||||
Scene::GetDefault()->AddTile(data->tileset, data->particles[i], | |||||
data->positions[i], 0, vec2(1.0f)); | |||||
g_scene->AddTile(data->tileset, data->particles[i], | |||||
data->positions[i], 0, vec2(1.0f)); | |||||
} | } | ||||
void Emitter::AddParticle(int id, vec3 pos, vec3 vel) | void Emitter::AddParticle(int id, vec3 pos, vec3 vel) | ||||
@@ -69,14 +69,12 @@ char const *Font::GetName() | |||||
void Font::Print(vec3 pos, char const *str, vec2 scale) | void Font::Print(vec3 pos, char const *str, vec2 scale) | ||||
{ | { | ||||
Scene *scene = Scene::GetDefault(); | |||||
while (*str) | while (*str) | ||||
{ | { | ||||
uint32_t ch = (uint8_t)*str++; | uint32_t ch = (uint8_t)*str++; | ||||
if (ch != ' ') | if (ch != ' ') | ||||
scene->AddTile(data->tileset, ch & 255, pos, 0, scale); | |||||
g_scene->AddTile(data->tileset, ch & 255, pos, 0, scale); | |||||
pos.x += data->size.x * scale.x; | pos.x += data->size.x * scale.x; | ||||
} | } | ||||
@@ -52,8 +52,6 @@ class RenderContextData | |||||
friend class RenderContext; | friend class RenderContext; | ||||
private: | private: | ||||
Scene *m_scene; | |||||
TrackedState<ibox2> m_viewport; | TrackedState<ibox2> m_viewport; | ||||
TrackedState<vec4> m_clear_color; | TrackedState<vec4> m_clear_color; | ||||
TrackedState<float> m_clear_depth; | TrackedState<float> m_clear_depth; | ||||
@@ -71,7 +69,6 @@ private: | |||||
RenderContext::RenderContext() | RenderContext::RenderContext() | ||||
: m_data(new RenderContextData()) | : m_data(new RenderContextData()) | ||||
{ | { | ||||
m_data->m_scene = Scene::GetDefault(); | |||||
} | } | ||||
RenderContext::~RenderContext() | RenderContext::~RenderContext() | ||||
@@ -44,11 +44,13 @@ namespace lol | |||||
/* | /* | ||||
* The global g_renderer object, initialised by Video::Init | * The global g_renderer object, initialised by Video::Init | ||||
*/ | */ | ||||
Renderer *g_renderer; | |||||
Renderer *g_renderer = nullptr; | |||||
/* | /* | ||||
* Private RendererData class | * Private RendererData class | ||||
*/ | */ | ||||
class RendererData | class RendererData | ||||
{ | { | ||||
friend class Renderer; | friend class Renderer; | ||||
@@ -94,9 +94,9 @@ void Gradient::TickDraw(float seconds) | |||||
data->shader->Bind(); | data->shader->Bind(); | ||||
uni_mat = data->shader->GetUniformLocation("proj_matrix"); | uni_mat = data->shader->GetUniformLocation("proj_matrix"); | ||||
data->shader->SetUniform(uni_mat, Scene::GetDefault()->GetCamera()->GetProjection()); | |||||
data->shader->SetUniform(uni_mat, g_scene->GetCamera()->GetProjection()); | |||||
uni_mat = data->shader->GetUniformLocation("view_matrix"); | uni_mat = data->shader->GetUniformLocation("view_matrix"); | ||||
data->shader->SetUniform(uni_mat, Scene::GetDefault()->GetCamera()->GetView()); | |||||
data->shader->SetUniform(uni_mat, g_scene->GetCamera()->GetView()); | |||||
uni_mat = data->shader->GetUniformLocation("model_matrix"); | uni_mat = data->shader->GetUniformLocation("model_matrix"); | ||||
data->shader->SetUniform(uni_mat, model_matrix); | data->shader->SetUniform(uni_mat, model_matrix); | ||||
@@ -51,15 +51,14 @@ void Layer::Render(int /* x */, int /* y */, int /* z */) | |||||
if (error && !(error = 0)) | if (error && !(error = 0)) | ||||
Log::Error("FIXME: Layer::Render no longer works\n"); | Log::Error("FIXME: Layer::Render no longer works\n"); | ||||
#if 0 | #if 0 | ||||
Scene *scene = Scene::GetDefault(); | |||||
for (int j = 0; j < height; j++) | for (int j = 0; j < height; j++) | ||||
for (int i = 0; i < width; i++) | for (int i = 0; i < width; i++) | ||||
if (data[j * width + i]) | if (data[j * width + i]) | ||||
scene->AddTile(data[j * width + i], | |||||
vec3(x + i * 32, | |||||
y + j * 32 - altitude, | |||||
altitude + z), | |||||
orientation); | |||||
g_scene->AddTile(data[j * width + i], | |||||
vec3(x + i * 32, | |||||
y + j * 32 - altitude, | |||||
altitude + z), | |||||
orientation); | |||||
#endif | #endif | ||||
} | } | ||||
@@ -64,7 +64,7 @@ void Light::TickDraw(float seconds) | |||||
{ | { | ||||
WorldEntity::TickDraw(seconds); | WorldEntity::TickDraw(seconds); | ||||
Scene::GetDefault()->AddLight(this); | |||||
g_scene->AddLight(this); | |||||
} | } | ||||
} /* namespace lol */ | } /* namespace lol */ | ||||
@@ -28,6 +28,16 @@ LOLFX_RESOURCE_DECLARE(line); | |||||
namespace lol | namespace lol | ||||
{ | { | ||||
/* | |||||
* The global g_scene object, initialised by Video::Init | |||||
*/ | |||||
Scene *g_scene = nullptr; | |||||
/* | |||||
* A quick and dirty Tile structure for 2D blits | |||||
*/ | |||||
struct Tile | struct Tile | ||||
{ | { | ||||
TileSet *tileset; | TileSet *tileset; | ||||
@@ -71,23 +81,18 @@ private: | |||||
Camera *m_default_cam; | Camera *m_default_cam; | ||||
Array<Camera *> m_camera_stack; | Array<Camera *> m_camera_stack; | ||||
static Scene *scene; | |||||
}; | }; | ||||
Scene *SceneData::scene = nullptr; | |||||
/* | /* | ||||
* Public Scene class | * Public Scene class | ||||
*/ | */ | ||||
Scene::Scene() | |||||
Scene::Scene(ivec2 size) | |||||
: data(new SceneData()) | : data(new SceneData()) | ||||
{ | { | ||||
/* Create a default orthographic camera, in case the user doesn’t. */ | /* Create a default orthographic camera, in case the user doesn’t. */ | ||||
data->m_default_cam = new Camera(); | data->m_default_cam = new Camera(); | ||||
mat4 proj = mat4::ortho(0, Video::GetSize().x, 0, Video::GetSize().y, | |||||
-1000.f, 1000.f); | |||||
mat4 proj = mat4::ortho(0, size.x, 0, size.y, -1000.f, 1000.f); | |||||
data->m_default_cam->SetProjection(proj); | data->m_default_cam->SetProjection(proj); | ||||
PushCamera(data->m_default_cam); | PushCamera(data->m_default_cam); | ||||
@@ -114,13 +119,6 @@ Scene::~Scene() | |||||
delete data; | delete data; | ||||
} | } | ||||
Scene *Scene::GetDefault() | |||||
{ | |||||
if (!SceneData::scene) | |||||
SceneData::scene = new Scene(); | |||||
return SceneData::scene; | |||||
} | |||||
void Scene::PushCamera(Camera *cam) | void Scene::PushCamera(Camera *cam) | ||||
{ | { | ||||
Ticker::Ref(cam); | Ticker::Ref(cam); | ||||
@@ -29,12 +29,13 @@ class SceneData; | |||||
class Scene | class Scene | ||||
{ | { | ||||
public: | |||||
Scene(); | |||||
~Scene(); | |||||
friend class Video; | |||||
static Scene *GetDefault(); | |||||
private: | |||||
Scene(ivec2 size); | |||||
~Scene(); | |||||
public: | |||||
Camera *GetCamera(); | Camera *GetCamera(); | ||||
void PushCamera(Camera *cam); | void PushCamera(Camera *cam); | ||||
void PopCamera(Camera *cam); | void PopCamera(Camera *cam); | ||||
@@ -54,6 +55,8 @@ private: | |||||
SceneData *data; | SceneData *data; | ||||
}; | }; | ||||
extern Scene *g_scene; | |||||
} /* namespace lol */ | } /* namespace lol */ | ||||
#endif // __LOL_SCENE_H__ | #endif // __LOL_SCENE_H__ | ||||
@@ -50,8 +50,7 @@ void Sprite::TickDraw(float seconds) | |||||
{ | { | ||||
Entity::TickDraw(seconds); | Entity::TickDraw(seconds); | ||||
Scene::GetDefault()->AddTile(data->tileset, data->id, m_position, | |||||
0, vec2(1.0f)); | |||||
g_scene->AddTile(data->tileset, data->id, m_position, 0, vec2(1.0f)); | |||||
} | } | ||||
Sprite::~Sprite() | Sprite::~Sprite() | ||||
@@ -386,7 +386,7 @@ void TickerData::DrawThreadTick() | |||||
switch (i) | switch (i) | ||||
{ | { | ||||
case Entity::DRAWGROUP_BEGIN: | case Entity::DRAWGROUP_BEGIN: | ||||
Scene::GetDefault()->Reset(); | |||||
g_scene->Reset(); | |||||
g_renderer->Clear(ClearMask::All); | g_renderer->Clear(ClearMask::All); | ||||
break; | break; | ||||
default: | default: | ||||
@@ -412,7 +412,7 @@ void TickerData::DrawThreadTick() | |||||
} | } | ||||
/* Do this render step */ | /* Do this render step */ | ||||
Scene::GetDefault()->Render(); | |||||
g_scene->Render(); | |||||
} | } | ||||
Profiler::Stop(Profiler::STAT_TICK_DRAW); | Profiler::Stop(Profiler::STAT_TICK_DRAW); | ||||
@@ -51,6 +51,7 @@ DebugRenderMode VideoData::render_mode = DebugRenderMode::Default; | |||||
void Video::Setup(ivec2 size) | void Video::Setup(ivec2 size) | ||||
{ | { | ||||
g_renderer = new Renderer(size); | g_renderer = new Renderer(size); | ||||
g_scene = new Scene(size); | |||||
/* Initialise reasonable scene default properties */ | /* Initialise reasonable scene default properties */ | ||||
SetDebugRenderMode(DebugRenderMode::Default); | SetDebugRenderMode(DebugRenderMode::Default); | ||||
@@ -114,6 +115,9 @@ DebugRenderMode Video::GetDebugRenderMode() | |||||
void Video::Destroy() | void Video::Destroy() | ||||
{ | { | ||||
delete g_scene; | |||||
g_scene = nullptr; | |||||
delete g_renderer; | delete g_renderer; | ||||
g_renderer = nullptr; | g_renderer = nullptr; | ||||
} | } | ||||
@@ -56,7 +56,7 @@ BtPhysTest::BtPhysTest(bool editor) | |||||
vec3(0.f, 0.f, 0.f), | vec3(0.f, 0.f, 0.f), | ||||
vec3(0, 1, 0)); | vec3(0, 1, 0)); | ||||
m_camera->SetProjection(mat4::perspective(45.f, 1280.f, 960.f, .1f, 1000.f)); | m_camera->SetProjection(mat4::perspective(45.f, 1280.f, 960.f, .1f, 1000.f)); | ||||
Scene::GetDefault()->PushCamera(m_camera); | |||||
g_scene->PushCamera(m_camera); | |||||
m_ready = false; | m_ready = false; | ||||
@@ -421,7 +421,7 @@ void BtPhysTest::TickDraw(float seconds) | |||||
BtPhysTest::~BtPhysTest() | BtPhysTest::~BtPhysTest() | ||||
{ | { | ||||
Scene::GetDefault()->PopCamera(m_camera); | |||||
g_scene->PopCamera(m_camera); | |||||
Ticker::Unref(m_light1); | Ticker::Unref(m_light1); | ||||
Ticker::Unref(m_light2); | Ticker::Unref(m_light2); | ||||
@@ -61,9 +61,9 @@ public: | |||||
void SetFov(float new_fov=60.0f, vec2 video_size = vec2(Video::GetSize())) | void SetFov(float new_fov=60.0f, vec2 video_size = vec2(Video::GetSize())) | ||||
{ | { | ||||
if (new_fov > MIN_FOV) | if (new_fov > MIN_FOV) | ||||
Scene::GetDefault()->GetCamera()->SetProjection(mat4::perspective(new_fov, video_size.x, video_size.y, .1f, 1000.f)); | |||||
g_scene->GetCamera()->SetProjection(mat4::perspective(new_fov, video_size.x, video_size.y, .1f, 1000.f)); | |||||
else | else | ||||
Scene::GetDefault()->GetCamera()->SetProjection(mat4::ortho(video_size.x, video_size.y, .1f, 1000.f)); | |||||
g_scene->GetCamera()->SetProjection(mat4::ortho(video_size.x, video_size.y, .1f, 1000.f)); | |||||
} | } | ||||
MeshViewer(char const *file_name = "data/mesh-buffer.txt") | MeshViewer(char const *file_name = "data/mesh-buffer.txt") | ||||
@@ -107,7 +107,7 @@ public: | |||||
m_camera->SetView(vec3(0.f, 0.f, 10.f), | m_camera->SetView(vec3(0.f, 0.f, 10.f), | ||||
vec3(0.f, 0.f, 0.f), | vec3(0.f, 0.f, 0.f), | ||||
vec3(0.f, 1.f, 0.f)); | vec3(0.f, 1.f, 0.f)); | ||||
Scene::GetDefault()->PushCamera(m_camera); | |||||
g_scene->PushCamera(m_camera); | |||||
//Lights setup | //Lights setup | ||||
m_lights << new Light(); | m_lights << new Light(); | ||||
@@ -144,7 +144,7 @@ public: | |||||
~MeshViewer() | ~MeshViewer() | ||||
{ | { | ||||
Scene::GetDefault()->PopCamera(m_camera); | |||||
g_scene->PopCamera(m_camera); | |||||
for (int i = 0; i < m_lights.Count(); ++i) | for (int i = 0; i < m_lights.Count(); ++i) | ||||
Ticker::Unref(m_lights[i]); | Ticker::Unref(m_lights[i]); | ||||
} | } | ||||
@@ -178,8 +178,8 @@ public: | |||||
if (m_meshes[mesh_id].m2) | if (m_meshes[mesh_id].m2) | ||||
break; | break; | ||||
mat4 world_cam = Scene::GetDefault()->GetCamera()->GetView(); | |||||
mat4 cam_screen = Scene::GetDefault()->GetCamera()->GetProjection(); | |||||
mat4 world_cam = g_scene->GetCamera()->GetView(); | |||||
mat4 cam_screen = g_scene->GetCamera()->GetProjection(); | |||||
if (m_meshes.Count() && mesh_id >= 0) | if (m_meshes.Count() && mesh_id >= 0) | ||||
{ | { | ||||
@@ -250,13 +250,13 @@ public: | |||||
SetFov(m_fov_damp); | SetFov(m_fov_damp); | ||||
//Move modification | //Move modification | ||||
vec3 campos = Scene::GetDefault()->GetCamera()->GetPosition(); | |||||
vec3 campos = g_scene->GetCamera()->GetPosition(); | |||||
if (m_fov_damp < MIN_FOV) | if (m_fov_damp < MIN_FOV) | ||||
Scene::GetDefault()->GetCamera()->SetView(vec3(campos.xy, 10.f), quat(1.f)); | |||||
g_scene->GetCamera()->SetView(vec3(campos.xy, 10.f), quat(1.f)); | |||||
else if (fov_ratio > .0f) | else if (fov_ratio > .0f) | ||||
Scene::GetDefault()->GetCamera()->SetView(vec3(campos.xy, campos.z * fov_ratio * 1.1f), quat(1.f)); | |||||
g_scene->GetCamera()->SetView(vec3(campos.xy, campos.z * fov_ratio * 1.1f), quat(1.f)); | |||||
#else | #else | ||||
Camera* cur_cam = Scene::GetDefault()->GetCamera(); | |||||
Camera* cur_cam = g_scene->GetCamera(); | |||||
vec3 min_max_diff = (cam_min_max[1] - cam_min_max[0]); | vec3 min_max_diff = (cam_min_max[1] - cam_min_max[0]); | ||||
float screen_size = max(max(lol::abs(min_max_diff.x), lol::abs(min_max_diff.y)), | float screen_size = max(max(lol::abs(min_max_diff.x), lol::abs(min_max_diff.y)), | ||||
max( lol::abs(min_max_diff.x), lol::abs(min_max_diff.y))); | max( lol::abs(min_max_diff.x), lol::abs(min_max_diff.y))); | ||||
@@ -442,7 +442,7 @@ public: | |||||
g_renderer->SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f)); | g_renderer->SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f)); | ||||
mat4 default_proj = Scene::GetDefault()->GetCamera()->GetProjection(); | |||||
mat4 default_proj = g_scene->GetCamera()->GetProjection(); | |||||
int max_drawn = m_meshes.Count() - m_mesh_shown; | int max_drawn = m_meshes.Count() - m_mesh_shown; | ||||
for (int i = max_drawn; i < m_meshes.Count(); i++) | for (int i = max_drawn; i < m_meshes.Count(); i++) | ||||
m_meshes[i].m4 = vec3(.0f); | m_meshes[i].m4 = vec3(.0f); | ||||
@@ -461,7 +461,7 @@ public: | |||||
} | } | ||||
m_meshes[i].m4 = damp(m_meshes[i].m4, new_mesh_offset, .35f, seconds); | m_meshes[i].m4 = damp(m_meshes[i].m4, new_mesh_offset, .35f, seconds); | ||||
Scene::GetDefault()->GetCamera()->SetProjection( | |||||
g_scene->GetCamera()->SetProjection( | |||||
mat4::translate(m_meshes[i].m4) * | mat4::translate(m_meshes[i].m4) * | ||||
mat4::translate(vec3(m_mesh_screen_offset_damp, .0f)) * | mat4::translate(vec3(m_mesh_screen_offset_damp, .0f)) * | ||||
mat4::scale(vec3(vec2(m_meshes[i].m3), 1.0f)) * | mat4::scale(vec3(vec2(m_meshes[i].m3), 1.0f)) * | ||||
@@ -475,7 +475,7 @@ public: | |||||
g_renderer->Clear(ClearMask::Depth); | g_renderer->Clear(ClearMask::Depth); | ||||
} | } | ||||
} | } | ||||
Scene::GetDefault()->GetCamera()->SetProjection(default_proj); | |||||
g_scene->GetCamera()->SetProjection(default_proj); | |||||
} | } | ||||
private: | private: | ||||
@@ -51,7 +51,7 @@ public: | |||||
m_camera->SetView(mat4::lookat(vec3(-15.f, 5.f, 0.f), | m_camera->SetView(mat4::lookat(vec3(-15.f, 5.f, 0.f), | ||||
vec3(0.f, -1.f, 0.f), | vec3(0.f, -1.f, 0.f), | ||||
vec3(0.f, 1.f, 0.f))); | vec3(0.f, 1.f, 0.f))); | ||||
Scene::GetDefault()->PushCamera(m_camera); | |||||
g_scene->PushCamera(m_camera); | |||||
/* Add a white directional light */ | /* Add a white directional light */ | ||||
m_light1 = new Light(); | m_light1 = new Light(); | ||||
@@ -70,7 +70,7 @@ public: | |||||
~EasyMeshTutorial() | ~EasyMeshTutorial() | ||||
{ | { | ||||
Scene::GetDefault()->PopCamera(m_camera); | |||||
g_scene->PopCamera(m_camera); | |||||
Ticker::Unref(m_light1); | Ticker::Unref(m_light1); | ||||
Ticker::Unref(m_light2); | Ticker::Unref(m_light2); | ||||
} | } | ||||
@@ -26,7 +26,7 @@ public: | |||||
m_camera = new Camera(); | m_camera = new Camera(); | ||||
m_camera->SetView(mat4(1.f)); | m_camera->SetView(mat4(1.f)); | ||||
m_camera->SetProjection(mat4::ortho(0.f, 640.f, 0.f, 480.f, -100.f, 100.f)); | m_camera->SetProjection(mat4::ortho(0.f, 640.f, 0.f, 480.f, -100.f, 100.f)); | ||||
Scene::GetDefault()->PushCamera(m_camera); | |||||
g_scene->PushCamera(m_camera); | |||||
Ticker::Ref(m_camera); | Ticker::Ref(m_camera); | ||||
m_tileset = Tiler::Register("06_sprite.png"); | m_tileset = Tiler::Register("06_sprite.png"); | ||||
@@ -46,7 +46,7 @@ public: | |||||
{ | { | ||||
Tiler::Deregister(m_tileset); | Tiler::Deregister(m_tileset); | ||||
Scene::GetDefault()->PopCamera(m_camera); | |||||
g_scene->PopCamera(m_camera); | |||||
Ticker::Unref(m_camera); | Ticker::Unref(m_camera); | ||||
} | } | ||||
@@ -77,8 +77,8 @@ public: | |||||
{ | { | ||||
int frame = (int)(m_sprites[i].m2 * FRAME_COUNT); | int frame = (int)(m_sprites[i].m2 * FRAME_COUNT); | ||||
// m_sprites[i].m1.z = frame; | // m_sprites[i].m1.z = frame; | ||||
Scene::GetDefault()->AddTile(m_tileset, frame, | |||||
(ivec3)m_sprites[i].m1, 0, vec2(2.f)); | |||||
g_scene->AddTile(m_tileset, frame, | |||||
(ivec3)m_sprites[i].m1, 0, vec2(2.f)); | |||||
} | } | ||||
} | } | ||||