[nostalgia/core/studio] Cleanup and decouple main TileSheetEditor drawing from ImGui

This commit is contained in:
2022-02-13 02:25:14 -06:00
parent 779dd1fd05
commit 7370b23c9d
10 changed files with 123 additions and 128 deletions
@@ -4,9 +4,8 @@
#pragma once
#include <imgui.h>
#include <nostalgia/common/point.hpp>
#include <nostalgia/common/vec.hpp>
#include <nostalgia/core/gfx.hpp>
#include <nostalgia/glutils/glutils.hpp>
#include <nostalgia/studio/studio.hpp>
@@ -45,7 +44,7 @@ class TileSheetGrid {
static constexpr auto GShad = R"glsl(
{}
layout(points) in;
layout(line_strip, max_vertices = 9) out;
layout(line_strip, max_vertices = 2) out;
in vec3 gColor[];
in vec2 gPt2[];
out vec3 fColor;
@@ -68,17 +67,17 @@ class TileSheetGrid {
ox::Error buildShader() noexcept;
void draw(bool update, const ImVec2 &scroll) noexcept;
void draw(bool update, const common::Vec2 &scroll) noexcept;
void initBufferSet(const NostalgiaGraphic &img) noexcept;
void initBufferSet(const common::Vec2 &paneSize, const NostalgiaGraphic &img) noexcept;
private:
static void setBufferObject(common::Point pt1, common::Point pt2, Color32 c, float *vbo, const ImVec2 &pixSize) noexcept;
static void setBufferObject(common::Point pt1, common::Point pt2, Color32 c, float *vbo, const common::Vec2 &pixSize) noexcept;
void setBufferObjects(const NostalgiaGraphic &img, glutils::BufferSet *bg) noexcept;
void setBufferObjects(const common::Vec2 &paneSize, const NostalgiaGraphic &img, glutils::BufferSet *bg) noexcept;
[[nodiscard]]
class ImVec2 pixelSize(const ImVec2 &paneSize = ImGui::GetContentRegionAvail()) const noexcept;
common::Vec2 pixelSize(const common::Vec2 &paneSize) const noexcept;
};