Magic_Game/project/ImGuiSample/easy2d-imgui/ImGuiLayer.h

54 lines
932 B
C
Raw Normal View History

// Copyright (C) 2019 Nomango
#pragma once
namespace easy2d
{
E2D_DECLARE_SMART_PTR(ImGuiLayer);
using ImGuiPipeline = std::function<void()>;
class ImGuiLayer
: public Layer
{
public:
ImGuiLayer();
virtual ~ImGuiLayer();
// <20><><EFBFBD><EFBFBD> ImGui Ԫ<><D4AA>
void AddItem(
ImGuiPipeline const& item,
String const& name
);
// <20>Ƴ<EFBFBD> ImGui Ԫ<><D4AA>
void RemoveItem(
String const& name
);
// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>
void RemoveAllItems();
public:
void OnMouseButtonDown(int btn, Point const& p) override;
void OnMouseButtonUp(int btn, Point const& p) override;
void OnMouseWheel(float wheel) override;
void OnKeyDown(int key) override;
void OnKeyUp(int key) override;
void OnChar(char c) override;
public:
void OnUpdate(Duration dt) override;
void OnRender() override;
void UpdateMousePos();
void UpdateMouseCursor();
protected:
HWND target_window_;
Map<String, ImGuiPipeline> pipelines_;
};
}