Compare commits

..

2 Commits

Author SHA1 Message Date
afaced62d4 Fixes 2025-09-22 22:58:44 +05:30
8793554994 Fixes 2025-09-22 20:52:16 +05:30
4 changed files with 82 additions and 7 deletions

View File

@ -59,8 +59,8 @@ namespace ia::iae
handles[i] = m_tileGrid.m_tileTextures[i].GetHandle(); handles[i] = m_tileGrid.m_tileTextures[i].GetHandle();
m_bakedGPUTexture = GPUTexture::GridCombine(handles.data(), m_tileGrid.TileCountX, m_tileGrid.TileCountY, m_bakedGPUTexture = GPUTexture::GridCombine(handles.data(), m_tileGrid.TileCountX, m_tileGrid.TileCountY,
m_tileGrid.TileWidth, m_tileGrid.TileHeight); m_tileGrid.TileWidth, m_tileGrid.TileHeight);
m_node->DrawnSize() = {w, h};
CurrentTexture() = Texture(m_bakedGPUTexture->GetHandle(), w, h); CurrentTexture() = Texture(m_bakedGPUTexture->GetHandle(), w, h);
PositionOffset() = m_tileGrid.Position;
} }
VOID AtlasRendererComponent::Update() VOID AtlasRendererComponent::Update()
@ -69,6 +69,9 @@ namespace ia::iae
VOID AtlasRendererComponent::Draw() VOID AtlasRendererComponent::Draw()
{ {
PositionOffset() = m_tileGrid.Position;
ScaleOffset() = {1.0f, 1.0f};
IsCameraRelative() = true;
TextureRendererComponent::Draw(); TextureRendererComponent::Draw();
} }
} // namespace ia::iae } // namespace ia::iae

View File

@ -314,15 +314,26 @@ namespace ia::iae
namespace ia::iae namespace ia::iae
{ {
Rml::Context *g_context{}; Rml::Context *g_context{};
BOOL g_debuggerEnabled{false};
struct MainDataModel
{
Rml::String InputValues[10];
} g_mainDataModel;
VOID UI::Initialize(IN INT32 width, IN INT32 height) VOID UI::Initialize(IN INT32 width, IN INT32 height)
{ {
Rml::SetRenderInterface(&g_rmlUIRenderInterface); Rml::SetRenderInterface(&g_rmlUIRenderInterface);
Rml::Initialise(); Rml::Initialise();
g_context = Rml::CreateContext("main", Rml::Vector2i(width, height)); g_context = Rml::CreateContext("main", Rml::Vector2i(width, height));
//Rml::Debugger::Initialise(g_context); Rml::Debugger::Initialise(g_context);
//Rml::Debugger::SetVisible(true); DisableDebugger();
//Rml::LoadFontFace("Roboto-Black.ttf");
if (auto dataModel = g_context->CreateDataModel("main"))
{
for (INT32 i = 0; i < ((sizeof(MainDataModel::InputValues) / sizeof(MainDataModel::InputValues[0]))); i++)
dataModel.Bind(BuildString("InputValue", i).c_str(), &g_mainDataModel.InputValues[i]);
}
} }
VOID UI::Terminate() VOID UI::Terminate()
@ -356,6 +367,13 @@ namespace ia::iae
g_context->ProcessMouseButtonDown(SDLMouseButtonToRml(event->button.button), keymods); g_context->ProcessMouseButtonDown(SDLMouseButtonToRml(event->button.button), keymods);
break; break;
case SDL_EventType::SDL_EVENT_KEY_DOWN: case SDL_EventType::SDL_EVENT_KEY_DOWN:
if (event->key.key == SDLK_F8)
{
if (g_debuggerEnabled)
DisableDebugger();
else
EnableDebugger();
}
g_context->ProcessKeyDown(SDLKeyToRml(event->key.key), keymods); g_context->ProcessKeyDown(SDLKeyToRml(event->key.key), keymods);
break; break;
case SDL_EventType::SDL_EVENT_KEY_UP: case SDL_EventType::SDL_EVENT_KEY_UP:
@ -369,6 +387,45 @@ namespace ia::iae
} }
} // namespace ia::iae } // namespace ia::iae
namespace ia::iae
{
VOID UI::AddFontFromFile(IN CONST String &path)
{
Rml::LoadFontFace(path.c_str());
}
VOID UI::EnableDebugger()
{
Rml::Debugger::SetVisible(g_debuggerEnabled = true);
}
VOID UI::DisableDebugger()
{
Rml::Debugger::SetVisible(g_debuggerEnabled = false);
}
Handle UI::AddWindowFromFile(IN CONST String &path)
{
return (Handle) g_context->LoadDocument(path.c_str());
}
VOID UI::ShowWindow(IN Handle handle)
{
reinterpret_cast<Rml::ElementDocument *>(handle)->Show();
}
VOID UI::HideWindow(IN Handle handle)
{
reinterpret_cast<Rml::ElementDocument *>(handle)->Hide();
}
VOID UI::AddClickEvent(IN Handle handle, IN PCCHAR elementId, IN std::function<VOID()> callback)
{
const auto doc = reinterpret_cast<Rml::ElementDocument *>(handle);
}
} // namespace ia::iae
namespace ia::iae namespace ia::iae
{ {
Rml::CompiledGeometryHandle RmlUIRenderInterface::CompileGeometry(Rml::Span<const Rml::Vertex> vertices, Rml::CompiledGeometryHandle RmlUIRenderInterface::CompileGeometry(Rml::Span<const Rml::Vertex> vertices,

View File

@ -90,7 +90,7 @@ namespace ia::iae
BOOL m_isFlippedV{}; BOOL m_isFlippedV{};
BOOL m_shouldDrawOutline{}; BOOL m_shouldDrawOutline{};
glm::vec4 m_outlineColor{0.25f, 0.25f, 0.25f, 0.75f}; glm::vec4 m_outlineColor{0.25f, 0.25f, 0.25f, 0.75f};
BOOL m_isCameraRelative{}; BOOL m_isCameraRelative{true};
glm::vec2 m_positionOffset{}; glm::vec2 m_positionOffset{};
glm::vec2 m_scaleOffset{}; glm::vec2 m_scaleOffset{};
FLOAT32 m_rotationOffset{}; FLOAT32 m_rotationOffset{};

View File

@ -22,7 +22,20 @@ namespace ia::iae
{ {
class UI class UI
{ {
public: public:
STATIC VOID AddFontFromFile(IN CONST String &path);
STATIC Handle AddWindowFromFile(IN CONST String &path);
STATIC VOID ShowWindow(IN Handle handle);
STATIC VOID HideWindow(IN Handle handle);
STATIC VOID AddClickEvent(IN Handle handle, IN PCCHAR elementId, IN std::function<VOID()> callback);
STATIC VOID EnableDebugger();
STATIC VOID DisableDebugger();
private:
STATIC VOID Initialize(IN INT32 width, IN INT32 height); STATIC VOID Initialize(IN INT32 width, IN INT32 height);
STATIC VOID Terminate(); STATIC VOID Terminate();
@ -31,5 +44,7 @@ namespace ia::iae
STATIC VOID OnEvent(IN PVOID event); STATIC VOID OnEvent(IN PVOID event);
STATIC VOID OnResize(IN INT32 width, IN INT32 height); STATIC VOID OnResize(IN INT32 width, IN INT32 height);
friend class Engine;
}; };
} } // namespace ia::iae