7#include "draw_context.hpp"
8#include "gfx_surface_state.hpp"
9#include "gfx_system_globals.hpp"
11namespace hi::inline
v1 {
14class gfx_surface_delegate;
30 virtual void init() {}
41 [[nodiscard]]
gfx_device *device() const noexcept
49 [[nodiscard]]
virtual extent2i
size() const noexcept = 0;
57 virtual
void update(extent2i new_size) noexcept = 0;
59 [[nodiscard]] virtual
draw_context render_start(aarectanglei redraw_rectangle) = 0;
60 virtual
void render_finish(
draw_context const &context) = 0;
75 virtual
void teardown() noexcept = 0;
#define hi_axiom(expression,...)
Specify an axiom; an expression that is true.
Definition assert.hpp:133
DOXYGEN BUG.
Definition algorithm.hpp:15
unfair_recursive_mutex gfx_system_mutex
Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets.
Definition gfx_system_globals.hpp:15
gfx_surface_state
Definition gfx_surface_state.hpp:9
gfx_surface_loss
Definition gfx_surface_state.hpp:16
Draw context for drawing using the HikoGUI shaders.
Definition draw_context.hpp:165
Definition gfx_device.hpp:22
Definition gfx_surface.hpp:16
virtual void set_device(gfx_device *device) noexcept
virtual extent2i size() const noexcept=0
Get the size of the surface.
Definition gfx_surface_delegate.hpp:9
Graphics system.
Definition gfx_system.hpp:21
int recurse_lock_count() const noexcept
This function should be used in hi_axiom() to check if the lock is held by current thread.
Definition unfair_recursive_mutex.hpp:60