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;
20 gfx_surface_state state = gfx_surface_state::has_window;
21 gfx_surface_loss loss = gfx_surface_loss::none;
30 virtual void init() {}
41 [[nodiscard]]
gfx_device *device() const noexcept
57 virtual
void update(
extent2 new_size) noexcept = 0;
60 virtual
void render_finish(
draw_context const &context) = 0;
75 virtual
void teardown() noexcept = 0;
Class which represents an axis-aligned rectangle.
Definition axis_aligned_rectangle.hpp:20
Draw context for drawing using the HikoGUI shaders.
Definition draw_context.hpp:52
Definition gfx_device.hpp:22
Definition gfx_surface.hpp:16
virtual void set_device(gfx_device *device) noexcept
virtual extent2 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