FINISHED!

master
Joey Pollack 3 years ago
parent 43ac2d1d06
commit 9c37b81765

@ -1,5 +1,6 @@
Editor: Editor:
☐ Add button to flip image assets vertically
☐ Design a custom editor style @low ☐ Design a custom editor style @low
☐ Save and unload world data when a new world is selected ☐ Save and unload world data when a new world is selected
✔ Load the selected world when double clicked on in the asset browser @done(22-07-05 14:29) ✔ Load the selected world when double clicked on in the asset browser @done(22-07-05 14:29)
@ -70,6 +71,7 @@ Editor:
☐ Stamp system ☐ Stamp system
Tile Map Canvas: Tile Map Canvas:
☐ Clicking in a tile is inaccurate in the bottom-right corner of the tile
☐ Implement a proper camera system and do not use panel scrolling @high ☐ Implement a proper camera system and do not use panel scrolling @high
Implement drawing tiles: Implement drawing tiles:

@ -5,14 +5,14 @@
☐ Binary serializeable ☐ Binary serializeable
Renderer rewrite: Renderer rewrite:
☐ Re-integrate the new renderer into the editor ✔ Re-integrate the new renderer into the editor @done(22-08-31 16:22)
✔ Clean up class name differences @done(22-08-30 15:58) ✔ Clean up class name differences @done(22-08-30 15:58)
Hook up update and render calls between the core and the editor Hook up update and render calls between the core and the editor @done(22-08-31 16:22)
☐ Re-write render code in map tools and assets ✔ Re-write render code in map tools and assets @done(22-08-31 16:22)
☐ Tilemap ✔ Tilemap @done(22-08-31 16:22)
☐ TileSet ✔ TileSet @done(22-08-31 16:22)
☐ MapCanvas ✔ MapCanvas @done(22-08-31 16:22)
☐ TileSetView ✔ TileSetView @done(22-08-31 16:22)
✔ Add double buffer to the VertexBuffer class with a Flush method to send the verts to the gpu @high @done(22-08-29 15:14) ✔ Add double buffer to the VertexBuffer class with a Flush method to send the verts to the gpu @high @done(22-08-29 15:14)
✔ Add Draw method to the VertexBuffer class @high @done(22-08-29 15:06) ✔ Add Draw method to the VertexBuffer class @high @done(22-08-29 15:06)
✔ Batch rendering minimally working @done(22-08-12 19:19) ✔ Batch rendering minimally working @done(22-08-12 19:19)

@ -116,6 +116,11 @@ namespace lunarium
DrawQuad(quad, color, texture, angle, sub_texture_area); DrawQuad(quad, color, texture, angle, sub_texture_area);
} }
// void Renderer2D::DrawSprite(Texture* texture, Rectangle destination, Rectangle sub_texture_area, Color color = Color::White(), float angle = 0.0f)
// {
// DrawQuad(destination, color, texture, angle, sub_texture_area);
// }
void Renderer2D::DrawQuad(Rectangle quad, Color color, Texture* texture, float angle, Rectangle sub_texture_area) void Renderer2D::DrawQuad(Rectangle quad, Color color, Texture* texture, float angle, Rectangle sub_texture_area)
{ {
if (!mQuadData.VertexBuffer->WillFit(4)) if (!mQuadData.VertexBuffer->WillFit(4))

@ -48,6 +48,7 @@ namespace lunarium
/// sub_texture_area is the area of the texture to draw /// sub_texture_area is the area of the texture to draw
/// position is the top-left corner of the quad /// position is the top-left corner of the quad
void DrawSprite(Texture* texture, glm::vec2 position, Rectangle sub_texture_area, Color color = Color::White(), float angle = 0.0f); void DrawSprite(Texture* texture, glm::vec2 position, Rectangle sub_texture_area, Color color = Color::White(), float angle = 0.0f);
//void DrawSprite(Texture* texture, Rectangle destination, Rectangle sub_texture_area, Color color = Color::White(), float angle = 0.0f);
/// sub_texture_area is the area of the texture to draw /// sub_texture_area is the area of the texture to draw
void DrawQuad(Rectangle quad, Color color, Texture* texture = nullptr, float angle = 0.0f, Rectangle sub_texture_area = Rectangle(-1, -1, -1, -1)); void DrawQuad(Rectangle quad, Color color, Texture* texture = nullptr, float angle = 0.0f, Rectangle sub_texture_area = Rectangle(-1, -1, -1, -1));

@ -177,7 +177,7 @@ namespace lunarium { namespace editor
Rectangle dest = Rectangle::MakeFromTopLeft(i * mTileSize.Width, j * mTileSize.Height, mTileSize.Width, mTileSize.Height); Rectangle dest = Rectangle::MakeFromTopLeft(i * mTileSize.Width, j * mTileSize.Height, mTileSize.Width, mTileSize.Height);
Rectangle src = set->GetTileRect(mpMap[i][j].TileIndex); Rectangle src = set->GetTileRect(mpMap[i][j].TileIndex);
//g->DrawImage(*set->GetImage(), src, dest, Color::White()); g->DrawSprite(set->GetImage(), glm::vec2(i * mTileSize.Width, j * mTileSize.Height), src);
// DEBUG // DEBUG
//g->DrawImage(*set->GetImage(), glm::vec2(dest.left(), dest.top()), Color::White()); //g->DrawImage(*set->GetImage(), glm::vec2(dest.left(), dest.top()), Color::White());
@ -187,16 +187,22 @@ namespace lunarium { namespace editor
} }
// Draw grid // Draw grid
// for (int i = 0; i < mSizeInTiles.Width; i++) for (int i = 0; i < mSizeInTiles.Width; i++)
// { {
// g->DrawLine(glm::vec2(i * mTileSize.Width, 0), glm::vec2(i * mTileSize.Width, map_size_pixels.Height), Color::Black(), 1.0f); g->DrawLine(glm::vec2(i * mTileSize.Width, 0), glm::vec2(i * mTileSize.Width, map_size_pixels.Height), Color::Black(), 1.5f);
// } }
// g->DrawLine(glm::vec2(map_size_pixels.Width, 0), glm::vec2(map_size_pixels.Width, map_size_pixels.Height), Color::Black(), 1.0f); g->DrawLine(glm::vec2(map_size_pixels.Width, 0), glm::vec2(map_size_pixels.Width, map_size_pixels.Height), Color::Black(), 1.5f);
// for (int j = 0; j < mSizeInTiles.Height; j++) for (int j = 0; j < mSizeInTiles.Height; j++)
// { {
// g->DrawLine(glm::vec2(0, j * mTileSize.Height), glm::vec2(map_size_pixels.Width, j * mTileSize.Height), Color::Black(), 1.0f); g->DrawLine(glm::vec2(0, j * mTileSize.Height), glm::vec2(map_size_pixels.Width, j * mTileSize.Height), Color::Black(), 1.5f);
// } }
// g->DrawLine(glm::vec2(0, map_size_pixels.Height), glm::vec2(map_size_pixels.Width, map_size_pixels.Height), Color::Black(), 1.0f); g->DrawLine(glm::vec2(0, map_size_pixels.Height), glm::vec2(map_size_pixels.Width, map_size_pixels.Height), Color::Black(), 1.5f);
}
void TileMap::DrawDebugGUI()
{
} }
}} }}

@ -42,6 +42,10 @@ namespace lunarium { namespace editor
// Call during render to texture phase // Call during render to texture phase
void Render(lunarium::Renderer2D* g); void Render(lunarium::Renderer2D* g);
void DrawDebugGUI();
TileRef** GetMap() { return mpMap; };
private: private:
TileRef** mpMap; TileRef** mpMap;
Sizei mSizeInTiles; Sizei mSizeInTiles;

@ -26,6 +26,7 @@ namespace lunarium { namespace editor
OpRes TileSet::LoadRawFile() OpRes TileSet::LoadRawFile()
{ {
mSetImage = FileLoaders::LoadImage(mAssetDir / GetFileLocation()); mSetImage = FileLoaders::LoadImage(mAssetDir / GetFileLocation());
mSetImage->FlipVertically();
if (!mSetImage) if (!mSetImage)
{ {
return OpRes::Fail("Could not load image file: %s", GetFileLocation().string().c_str()); return OpRes::Fail("Could not load image file: %s", GetFileLocation().string().c_str());
@ -44,6 +45,7 @@ namespace lunarium { namespace editor
// Load Image // Load Image
mSetImage = FileLoaders::LoadImage(mAssetDir / GetFileLocation()); mSetImage = FileLoaders::LoadImage(mAssetDir / GetFileLocation());
mSetImage->FlipVertically();
if (!mSetImage) if (!mSetImage)
{ {
return OpRes::Fail("Could not load image file: %s", GetFileLocation().string().c_str()); return OpRes::Fail("Could not load image file: %s", GetFileLocation().string().c_str());
@ -153,19 +155,19 @@ namespace lunarium { namespace editor
void TileSet::Render(lunarium::Renderer2D* g) void TileSet::Render(lunarium::Renderer2D* g)
{ {
// g->DrawImage(*mSetImage, glm::vec2(0, 0), Color::White()); g->DrawSprite(mSetImage, glm::vec2(0, 0), Rectangle::MakeFromTopLeft(0, 0, mSetImage->GetWidth(), mSetImage->GetHeight()));
// // Draw grid // Draw grid
// for (int i = 0; i < mNumTiles.Width; i++) for (int i = 0; i < mNumTiles.Width; i++)
// { {
// g->DrawLine(glm::vec2(i * mTileSize.Width, 0), glm::vec2(i * mTileSize.Width, mSetImage->GetHeight()), Color::Black(), 1.0f); g->DrawLine(glm::vec2(i * mTileSize.Width, 0), glm::vec2(i * mTileSize.Width, mSetImage->GetHeight()), Color::Black(), 1.5f);
// } }
// g->DrawLine(glm::vec2(mSetImage->GetWidth(), 0), glm::vec2(mSetImage->GetWidth(), mSetImage->GetHeight()), Color::Black(), 1.0f); g->DrawLine(glm::vec2(mSetImage->GetWidth(), 0), glm::vec2(mSetImage->GetWidth(), mSetImage->GetHeight()), Color::Black(), 1.5f);
// for (int j = 0; j < mNumTiles.Height; j++) for (int j = 0; j < mNumTiles.Height; j++)
// { {
// g->DrawLine(glm::vec2(0, j * mTileSize.Height), glm::vec2(mSetImage->GetWidth(), j * mTileSize.Height), Color::Black(), 1.0f); g->DrawLine(glm::vec2(0, j * mTileSize.Height), glm::vec2(mSetImage->GetWidth(), j * mTileSize.Height), Color::Black(), 1.5f);
// } }
// g->DrawLine(glm::vec2(0, mSetImage->GetHeight()), glm::vec2(mSetImage->GetWidth(), mSetImage->GetHeight()), Color::Black(), 1.0f); g->DrawLine(glm::vec2(0, mSetImage->GetHeight()), glm::vec2(mSetImage->GetWidth(), mSetImage->GetHeight()), Color::Black(), 1.5f);
} }
}} }}

@ -11,6 +11,7 @@
#include <utils/helpers.h> #include <utils/helpers.h>
#include <gui/panel_manager.h> #include <gui/panel_manager.h>
#include <core/core.h> #include <core/core.h>
#include <renderer/renderer2D.h>
#include <core/version.h> #include <core/version.h>
#include <utils/logger.h> #include <utils/logger.h>
#include <internal_data/data_manager.h> #include <internal_data/data_manager.h>
@ -97,6 +98,21 @@ namespace editor
} }
HandleMenuEvents(); HandleMenuEvents();
// Render
int w, h;
Core::MainWindow().GetFramebufferSize(&w, &h);
OrthographicCamera main_cam(Vec2f { 0.0f, 0.0f }, Sizef { (float)w, (float)h });
Core::GUI().NewFrame();
Core::Graphics().ResetFrameStats();
Core::Graphics().BeginDraw(&main_cam);
// No non-gui graphics are drawn
Core::Graphics().EndDraw(); // Graphics end draw must happen before GUI end frame
OnRender(&Core::Graphics());
Core::GUI().EndFrame();
Core::MainWindow().SwapBuffers();
} }
void Editor::OnRender(lunarium::Renderer2D* g) void Editor::OnRender(lunarium::Renderer2D* g)

@ -14,6 +14,7 @@
#include <core/core.h> #include <core/core.h>
#include <renderer/renderer2D.h> #include <renderer/renderer2D.h>
#include <renderer/texture.h> #include <renderer/texture.h>
#include <renderer/orthographic_camera.h>
#include <string> #include <string>
#include <sstream> #include <sstream>
@ -22,7 +23,7 @@ namespace lunarium { namespace editor
{ {
MapCanvas::MapCanvas(MapEditor* editor) MapCanvas::MapCanvas(MapEditor* editor)
: Panel("Map Canvas", PanelDockZone::DDZ_CENTER, true, ImGuiWindowFlags_NoScrollbar), : Panel("Map Canvas", PanelDockZone::DDZ_CENTER, true, ImGuiWindowFlags_NoScrollbar),
mpMapEditor(editor), mpCanvasImage(nullptr), mMap(nullptr), mSelectedTile({-1, -1}), mFrameBuffer(-1), mMapSizeChanged(false), mpMapEditor(editor), mpCanvasImage(nullptr), mMap(nullptr), mSelectedTile({-1, -1}), mFrameBuffer(nullptr), mMapSizeChanged(false),
mZoomFactor(1.0f), mScrollDragged(false), mCurrentRegion({0, 0}), mRegionString("") mZoomFactor(1.0f), mScrollDragged(false), mCurrentRegion({0, 0}), mRegionString("")
{ {
mRegionString = std::to_string(mCurrentRegion.X); mRegionString = std::to_string(mCurrentRegion.X);
@ -109,22 +110,27 @@ namespace lunarium { namespace editor
{ {
if (mMapSizeChanged) if (mMapSizeChanged)
{ {
//Core::Graphics().DestroyRenderTexture(mFrameBuffer); FrameBuffer::Destroy(&mFrameBuffer);
mFrameBuffer = -1; mFrameBuffer = nullptr;
mMapSizeChanged = false; mMapSizeChanged = false;
} }
if (mFrameBuffer == -1) if (!mFrameBuffer)
{ {
//mFrameBuffer = Core::Graphics().CreateRenderTexture(mMap->GetSizeInPixels().Width, mMap->GetSizeInPixels().Height, 4); mFrameBuffer = FrameBuffer::Create(mMap->GetSizeInPixels().Width, mMap->GetSizeInPixels().Height);
} }
// Color prev = Core::Graphics().GetClearColor(); Color prev = Core::Graphics().GetClearColor();
// Core::Graphics().SetClearColor(Color::Transparent()); Core::Graphics().SetClearColor(Color::Transparent());
// Core::GetInstance().BeginRenderToTexture(mFrameBuffer).LogIfFailed(Editor::LogCat); mFrameBuffer->Bind();
// mMap->Render(&Core::Graphics()); OrthographicCamera cam(Vec2f{0.0f, 0.0f}, Sizef{(float)mFrameBuffer->GetTexture()->GetWidth(), (float)mFrameBuffer->GetTexture()->GetHeight()});
// mpCanvasImage = Core::GetInstance().EndRenderToTexture(); Renderer2D& g = Core::Graphics();
// Core::Graphics().SetClearColor(prev); g.BeginDraw(&cam);
mMap->Render(&g);
g.EndDraw();
Core::Graphics().SetClearColor(prev);
mFrameBuffer->Unbind();
mpCanvasImage = mFrameBuffer->GetTexture();
} }
} }
} }

@ -13,7 +13,7 @@
#include <editor/contents/definitions.h> #include <editor/contents/definitions.h>
#include <string> #include <string>
namespace lunarium { class Texture; class Renderer2D; } namespace lunarium { class Texture; class Renderer2D; class FrameBuffer; }
namespace lunarium { namespace editor namespace lunarium { namespace editor
{ {
@ -45,7 +45,7 @@ namespace lunarium { namespace editor
bool mScrollDragged; bool mScrollDragged;
float mZoomFactor; float mZoomFactor;
std::string mMouseStatusInfo; std::string mMouseStatusInfo;
int mFrameBuffer; lunarium::FrameBuffer* mFrameBuffer;
lunarium::Texture* mpCanvasImage; lunarium::Texture* mpCanvasImage;
TileMap* mMap; // TODO: Replace with a World TileMap* mMap; // TODO: Replace with a World
TileRef mSelectedTile; TileRef mSelectedTile;

@ -14,6 +14,7 @@
#include <core/core.h> #include <core/core.h>
#include <renderer/renderer2D.h> #include <renderer/renderer2D.h>
#include <renderer/frame_buffer.h> #include <renderer/frame_buffer.h>
#include <renderer/orthographic_camera.h>
#include <sstream> #include <sstream>
#include <utils/stb/std_image_write.h> #include <utils/stb/std_image_write.h>
@ -74,23 +75,27 @@ namespace lunarium { namespace editor
mFrameBuffer = FrameBuffer::Create(mpSelectedTileSet->GetImage()->GetWidth(), mpSelectedTileSet->GetImage()->GetHeight()); mFrameBuffer = FrameBuffer::Create(mpSelectedTileSet->GetImage()->GetWidth(), mpSelectedTileSet->GetImage()->GetHeight());
} }
// Color prev = Core::Graphics().GetClearColor(); Color prev = Core::Graphics().GetClearColor();
// Core::Graphics().SetClearColor(Color::Transparent()); Core::Graphics().SetClearColor(Color::Transparent());
// Core::GetInstance().BeginRenderToTexture(mFrameBuffer).LogIfFailed(Editor::LogCat); mFrameBuffer->Bind();
OrthographicCamera cam(Vec2f{0.0f, 0.0f}, Sizef{(float)mFrameBuffer->GetTexture()->GetWidth(), (float)mFrameBuffer->GetTexture()->GetHeight()});
Renderer2D& g = Core::Graphics();
g.BeginDraw(&cam);
// mpSelectedTileSet->Render(&Core::Graphics()); mpSelectedTileSet->Render(&g);
// // Draw selected tile highlight
// if (mSelectedTile.X >= 0 && mSelectedTile.Y >= 0)
// {
// Rectangle selection = mpSelectedTileSet->GetTileRect(mSelectedTile);
// Core::Graphics().DrawBox(selection, Color::Red(), 1.5f);
// }
// mpViewImage = Core::GetInstance().EndRenderToTexture();
// Core::Graphics().SetClearColor(prev);
// Draw selected tile highlight
if (mSelectedTile.X >= 0 && mSelectedTile.Y >= 0)
{
Rectangle selection = mpSelectedTileSet->GetTileRect(mSelectedTile);
Core::Graphics().DrawBox(selection, Color::Red(), 1.5f);
}
g.EndDraw();
Core::Graphics().SetClearColor(prev);
mFrameBuffer->Unbind();
mpViewImage = mFrameBuffer->GetTexture();
//mpViewImage->FlipVertically();
// //stbi_flip_vertically_on_write(1); // //stbi_flip_vertically_on_write(1);
// stbi_write_png("tileset_test_image.png", mpViewImage->GetWidth(), mpViewImage->GetHeight(), 4, // stbi_write_png("tileset_test_image.png", mpViewImage->GetWidth(), mpViewImage->GetHeight(), 4,

@ -28,7 +28,7 @@ namespace lunarium
{ {
SimpleRenderScene::SimpleRenderScene(uint32_t logCat) SimpleRenderScene::SimpleRenderScene(uint32_t logCat)
: BaseScene(logCat), mTestMode(TestMode::Basic), mShapeMode(ShapeMode::Lines), mFrameTime(0.0), mNumFrames(0), mpTestImageLoad3(nullptr), : BaseScene(logCat), mTestMode(TestMode::Basic), mShapeMode(ShapeMode::Lines), mFrameTime(0.0), mNumFrames(0), mpTestImageLoad3(nullptr),
mEllipseResolution(50), mEllipseRadii{ 100.0f, 100.0f } mEllipseResolution(50), mEllipseRadii{ 100.0f, 100.0f }, mTestMap({ 16, 16 })
{ {
srand((u32)time(0)); srand((u32)time(0));
} }
@ -182,6 +182,7 @@ namespace lunarium
case TestMode::Stress: RenderBatchStressTest(Core::Graphics()); break; case TestMode::Stress: RenderBatchStressTest(Core::Graphics()); break;
case TestMode::String: RenderStringTest(Core::Graphics()); break; case TestMode::String: RenderStringTest(Core::Graphics()); break;
case TestMode::Shapes: RenderShapesTest(Core::Graphics()); break; case TestMode::Shapes: RenderShapesTest(Core::Graphics()); break;
case TestMode::TileMap: RenderTileMapTest(Core::Graphics()); break;
} }
@ -278,19 +279,24 @@ namespace lunarium
} }
void SimpleRenderScene::RenderTileMapTest(Renderer2D& g)
{
mTestMap.Render(&g);
}
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
// GUI DRAWING GUI DRAWING // GUI DRAWING GUI DRAWING
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
void SimpleRenderScene::DrawStatsGUI() void SimpleRenderScene::DrawStatsGUI()
{ {
const char* mode_names[4] = { "Basic", "Stress", "String", "Shapes" }; const char* mode_names[5] = { "Basic", "Stress", "String", "Shapes", "TileMap"};
ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiCond_FirstUseEver); ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSize(ImVec2(400, 800)); ImGui::SetNextWindowSize(ImVec2(400, 800));
ImGui::Begin("RENDER INFO"); ImGui::Begin("RENDER INFO");
ImGui::BeginChild("Scene Info", ImVec2(ImGui::GetWindowSize().x - 15, ImGui::GetFrameHeightWithSpacing() * 3.5f), true); ImGui::BeginChild("Scene Info", ImVec2(ImGui::GetWindowSize().x - 15, ImGui::GetFrameHeightWithSpacing() * 3.5f), true);
ImGui::Text("Scene Info"); ImGui::Text("Scene Info");
ImGui::Separator(); ImGui::Separator();
ImGui::Combo("Scene Mode", (int*)&mTestMode, mode_names, 4); ImGui::Combo("Scene Mode", (int*)&mTestMode, mode_names, 5);
ImGui::EndChild(); ImGui::EndChild();
ImGui::BeginChild("Per Frame", ImVec2(ImGui::GetWindowSize().x - 15, ImGui::GetFrameHeightWithSpacing() * 3.5f), true); ImGui::BeginChild("Per Frame", ImVec2(ImGui::GetWindowSize().x - 15, ImGui::GetFrameHeightWithSpacing() * 3.5f), true);
ImGui::Text("Per Frame"); ImGui::Text("Per Frame");
@ -347,6 +353,37 @@ namespace lunarium
GenerateEllipses(); GenerateEllipses();
} }
} }
else if (mTestMode == TestMode::TileMap)
{
ImGui::Begin("TileSet View");
ImGui::Image((ImTextureID)mpTestImageLoad->GetGLID64(), ImVec2(mpTestImageLoad->GetWidth(), mpTestImageLoad->GetHeight()));
ImGui::End();
ImGui::BeginChild("TileMap Editor", ImVec2(ImGui::GetWindowSize().x - 15, ImGui::GetFrameHeightWithSpacing() * 6.5f), true, ImGuiWindowFlags_HorizontalScrollbar);
for (int i = 0; i < mTestMap.GetSizeInTiles().Width; i++)
{
for (int j = 0; j < mTestMap.GetSizeInTiles().Height; j++)
{
std::string id = "##idx";
id += std::to_string(i);
id += ", ";
id += std::to_string(j);
int v[2] = { mTestMap.GetMap()[i][j].TileIndex.X, mTestMap.GetMap()[i][j].TileIndex.Y };
ImGui::SetNextItemWidth(65);
if (ImGui::InputInt2(id.c_str(), v))
{
mTestMap.SetTile(editor::TileRef {0, v[0], v[1] }, Vec2i { i, j });
}
if (j + 1 < mTestMap.GetSizeInTiles().Height)
{
ImGui::SameLine();
}
}
}
ImGui::EndChild();
}
ImGui::EndChild(); ImGui::EndChild();
@ -411,6 +448,12 @@ namespace lunarium
mpTestImageLoad3 = Texture::Create(buffer, w, h, format); mpTestImageLoad3 = Texture::Create(buffer, w, h, format);
delete[] buffer; delete[] buffer;
mTestSet.SetImage(mpTestImageLoad);
mTestSet.SetTileSize({16, 16});
mTestMap.AddTileSet(0, &mTestSet).LogIfFailed(mLogCat);
mTestMap.ResizeMap({4, 4});
mTestMap.ClearMap();
} }
void SimpleRenderScene::GenerateLines() void SimpleRenderScene::GenerateLines()
@ -436,7 +479,6 @@ namespace lunarium
} }
} }
void SimpleRenderScene::GenerateEllipses() void SimpleRenderScene::GenerateEllipses()
{ {
@ -468,8 +510,6 @@ namespace lunarium
} }
} }
void SimpleRenderScene::DoFrameBufferSaveTest() void SimpleRenderScene::DoFrameBufferSaveTest()
{ {
// Test writing out a rendered image with transparency // Test writing out a rendered image with transparency

@ -15,6 +15,9 @@
#include <utils/high_resolution_timer.h> #include <utils/high_resolution_timer.h>
#include <string> #include <string>
#include <run_modes/editor/contents/tile_map.h>
#include <run_modes/editor/contents/tile_set.h>
namespace lunarium namespace lunarium
{ {
class Texture; class Texture;
@ -27,6 +30,7 @@ namespace lunarium
Stress, Stress,
String, String,
Shapes, Shapes,
TileMap,
}; };
enum ShapeMode enum ShapeMode
@ -45,6 +49,7 @@ namespace lunarium
void RenderBatchStressTest(Renderer2D& g); void RenderBatchStressTest(Renderer2D& g);
void RenderStringTest(Renderer2D& g); void RenderStringTest(Renderer2D& g);
void RenderShapesTest(Renderer2D& g); void RenderShapesTest(Renderer2D& g);
void RenderTileMapTest(Renderer2D& g);
private: private:
@ -109,6 +114,9 @@ namespace lunarium
std::vector<EllipseData> mEllipses; std::vector<EllipseData> mEllipses;
// //
editor::TileMap mTestMap;
editor::TileSet mTestSet;
struct GridTestObj struct GridTestObj
{ {
int X; int X;

Loading…
Cancel
Save