载入中...
搜索中...
未找到
UIBackend.h
浏览该文件的文档.
1#pragma once
2
3#include <SDL2/SDL.h>
4#include <cstdint>
5#include <memory>
6
7namespace eve::graphics {
8class Graphics;
9class Texture;
10}
11
12namespace eve::ui {
13
18class UIBackend {
19public:
20 virtual ~UIBackend() = default;
21
22 virtual bool init(SDL_Window *window, eve::graphics::Graphics *gfx) = 0;
23 virtual void shutdown() = 0;
24 virtual bool isInitialized() const = 0;
25
26 virtual void processEvent(const SDL_Event *event) = 0;
27 virtual void newFrame() = 0;
28
29 virtual bool wantCaptureMouse() const { return false; }
30 virtual bool wantCaptureKeyboard() const { return false; }
31
33 virtual void setScale(float /*scale*/) {}
34 virtual float getScale() const { return 1.f; }
35
41 virtual uint64_t registerTexture(graphics::Texture * /*tex*/) { return 0; }
42 virtual void unregisterTexture(uint64_t /*id*/) {}
44 virtual bool textureSize(uint64_t /*id*/, int * /*w*/, int * /*h*/) const { return false; }
46 virtual void *textureHandle(uint64_t /*id*/) const { return nullptr; }
47};
48
50std::unique_ptr<UIBackend> createImGuiBackend();
51
52} // namespace eve::ui
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:17
Platform / renderer backend for declarative UI. Concrete implementations live under ui/<backend>/ (e....
Definition UIBackend.h:18
virtual void processEvent(const SDL_Event *event)=0
virtual void unregisterTexture(uint64_t)
Definition UIBackend.h:42
virtual bool wantCaptureMouse() const
Definition UIBackend.h:29
virtual bool init(SDL_Window *window, eve::graphics::Graphics *gfx)=0
virtual void * textureHandle(uint64_t) const
Definition UIBackend.h:46
virtual ~UIBackend()=default
virtual bool wantCaptureKeyboard() const
Definition UIBackend.h:30
virtual void shutdown()=0
virtual float getScale() const
Definition UIBackend.h:34
virtual uint64_t registerTexture(graphics::Texture *)
Definition UIBackend.h:41
virtual bool textureSize(uint64_t, int *, int *) const
Definition UIBackend.h:44
virtual void setScale(float)
Scale fonts + ImGui style metrics (1 = default desktop).
Definition UIBackend.h:33
virtual bool isInitialized() const =0
virtual void newFrame()=0
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition AnimTrail.h:6
std::unique_ptr< UIBackend > createImGuiBackend()
Default backend: Dear ImGui + SDL + Vulkan (see ui/imgui/).