81 Surface(std::shared_ptr<Core::Window> window,
82 std::shared_ptr<Layer> layer,
83 std::shared_ptr<Context> ctx)
84 : m_window(
std::move(window))
85 , m_layer(
std::move(layer))
86 , m_ctx(
std::move(ctx))
107 [[nodiscard]]
Layer& layer() noexcept {
return *m_layer; }
110 [[nodiscard]]
const Layer&
layer() const noexcept {
return *m_layer; }
121 [[nodiscard]]
const Context&
ctx() const noexcept {
return *m_ctx; }
126 [[nodiscard]]
const std::shared_ptr<Core::Window>&
window() const noexcept
136 [[nodiscard]]
const std::shared_ptr<Layer>&
layer_ptr() const noexcept {
return m_layer; }
139 [[nodiscard]]
const std::shared_ptr<Context>&
ctx_ptr() const noexcept {
return m_ctx; }
172 return { .
min = { -1.F + margin, 1.F - margin -
h },
173 .max = { -1.F + margin + w, 1.F - margin } };
179 return { .
min = { 1.F - margin - w, 1.F - margin -
h },
180 .max = { 1.F - margin, 1.F - margin } };
186 return { .
min = { -1.F + margin, -1.F + margin },
187 .max = { -1.F + margin + w, -1.F + margin +
h } };
193 return { .
min = { 1.F - margin - w, -1.F + margin },
194 .max = { 1.F - margin, -1.F + margin +
h } };
204 return { .
min = { -1.F + margin, 1.F - margin -
h },
205 .max = { 1.F - margin, 1.F - margin } };
211 return { .
min = { -1.F + margin, -1.F + margin },
212 .max = { 1.F - margin, -1.F + margin +
h } };
222 return { .
min = { -1.F + margin, -1.F + margin },
223 .max = { -1.F + margin + w, 1.F - margin } };
229 return { .
min = { 1.F - margin - w, -1.F + margin },
230 .max = { 1.F - margin, 1.F - margin } };
236 return { .
min = { -w * 0.5F, -
h * 0.5F }, .max = { w * 0.5F,
h * 0.5F } };
242 return { .
min = glm::vec2(-1.F), .max = glm::vec2(1.F) };
Event wiring between a Layer and a window surface.
Axis-aligned bounding rectangle in a 2D coordinate space.