29 #if defined(_WIN32) && defined(HR_ENGINE_SHARED) 31 # define MR_DllDeclare __declspec( dllexport ) 33 # define MR_DllDeclare __declspec( dllimport ) 36 # define MR_DllDeclare 56 namespace VideoServices {
89 Display() : uiOrigin(0, 0), uiLayoutFlags(0), uiScale(1.0),
90 uiOffset(0, 0), uiScreenSize(1280, 720) { }
99 std::shared_ptr<TypeCase> GetTypeCase(
const UiFont &font);
101 void CleanTypeCaseCache();
112 virtual std::shared_ptr<TypeCase> MakeTypeCase(
const UiFont &font) = 0;
135 virtual void OnDesktopModeChanged(
int width,
int height) = 0;
149 virtual void OnDisplayConfigChanged();
153 boost::signals2::signal<void(int, int)>;
156 void FireDisplayConfigChangedSignal(
int width,
int height)
const;
160 boost::signals2::signal<void(double)>;
163 void FireUiScaleChangedSignal(
double scale)
const;
169 virtual void Flip() = 0;
174 virtual void Screenshot() = 0;
200 Vec2 oldOrigin = uiOrigin;
221 auto oldFlags = uiLayoutFlags;
222 uiLayoutFlags |= flags;
232 Vec2 adjustedPos = relPos;
233 adjustedPos += GetUiOrigin();
235 adjustedPos *= GetUiScale();
238 adjustedPos += GetUiOffset();
259 std::unordered_map<UiFont, std::weak_ptr<TypeCase>>
typeCases;
Vec2 uiOffset
Definition: Display.h:257
boost::signals2::signal< void(int, int)> displayConfigChangedSignal_t
Definition: Display.h:153
Describes a font used for the UI.
Definition: UiFont.h:44
const Vec2 & GetUiOrigin() const noexcept
Retrieve the current UI origin coordinates.
Definition: Display.h:181
Vec2 uiOrigin
Definition: Display.h:254
uiLayoutFlags_t uiLayoutFlags
Definition: Display.h:255
Shared styles for UI components.
Definition: Styles.h:45
#define MR_DllDeclare
Definition: Display.h:36
boost::signals2::signal< void(double)> uiScaleChangedSignal_t
Definition: Display.h:160
uiScaleChangedSignal_t uiScaleChangedSignal
Definition: Display.h:261
Interface for classes that can attach a view to a model.
Definition: ViewAttacher.h:43
Vec2 uiScreenSize
Definition: Display.h:258
uiScaleChangedSignal_t & GetUiScaleChangedSignal()
Definition: Display.h:161
std::unordered_map< UiFont, std::weak_ptr< TypeCase > > typeCases
Definition: Display.h:259
MR_UInt32 uiLayoutFlags_t
Definition: UiLayoutFlags.h:53
Don't scale the component to the UI viewport.
Definition: UiLayoutFlags.h:48
Base class for display managers.
Definition: Display.h:73
Video framebuffer for legacy (8-bit, palettized) rendering.
Definition: VideoBuffer.h:54
displayConfigChangedSignal_t displayConfigChangedSignal
Definition: Display.h:260
Vec2 LayoutUiPosition(const Vec2 &relPos, uiLayoutFlags_t layoutFlags=0) noexcept
Definition: Display.h:229
double GetUiScale() const noexcept
Definition: Display.h:226
const Vec2 & GetUiScreenSize() const noexcept
Retrieve the dimensions of the screen, in UI coordinates.
Definition: Display.h:251
virtual ~Display()
Definition: Display.h:91
Display()
Definition: Display.h:89
Styles styles
Definition: Display.h:264
uiLayoutFlags_t AddUiLayoutFlags(uiLayoutFlags_t flags) noexcept
Combine the current UI layout flags with new flags.
Definition: Display.h:219
displayConfigChangedSignal_t & GetDisplayConfigChangedSignal()
Definition: Display.h:154
Vec2 AddUiOrigin(const Vec2 &vec) noexcept
Shift the current UI origin coordinates by an offset.
Definition: Display.h:198
Definition: Announcement.h:24
const Vec2 & GetUiOffset() const noexcept
Definition: Display.h:227
void SetUiOrigin(const Vec2 &vec) noexcept
Explicitly set the UI origin coordinates.
Definition: Display.h:190
Use absolute (screen-space) coordinates.
Definition: UiLayoutFlags.h:49
double uiScale
Definition: Display.h:256
void SetUiLayoutFlags(uiLayoutFlags_t flags) noexcept
Explicitly set the current UI layout flags.
Definition: Display.h:211