cgv
Loading...
Searching...
No Matches
canvas_overlay.h
1
#pragma once
2
3
#include <cgv/render/managed_frame_buffer.h>
4
#include <cgv_app/overlay.h>
5
#include <cgv_g2d/canvas.h>
6
#include <cgv_g2d/shape2d_styles.h>
7
#include <cgv/gui/theme_info.h>
8
9
#include "lib_begin.h"
10
11
namespace
cgv
{
12
namespace
app {
13
14
class
CGV_API
canvas_overlay
:
public
overlay
{
15
private
:
16
bool
has_damage_ =
true
;
17
bool
recreate_layout_requested_ =
true
;
18
19
cgv::g2d::shape2d_style blit_style_;
20
21
cgv::render::managed_frame_buffer
frame_buffer_;
22
23
protected
:
24
cgv::g2d::canvas overlay_canvas, content_canvas;
25
26
bool
ensure_layout(
cgv::render::context
& ctx);
27
28
void
post_recreate_layout();
29
30
void
clear_damage();
31
32
bool
is_damaged()
const
;
33
34
void
begin_content(
cgv::render::context
& ctx,
bool
clear_frame_buffer =
true
);
35
36
void
end_content(
cgv::render::context
& ctx,
bool
keep_damage =
false
);
37
38
virtual
void
draw_impl(
cgv::render::context
& ctx);
39
40
virtual
void
init_styles() {}
41
42
void
register_shader(
const
std::string& name,
const
std::string& filename);
43
44
public
:
46
canvas_overlay
();
47
48
bool
init(
cgv::render::context
& ctx)
override
;
49
50
void
clear(
cgv::render::context
& ctx)
override
;
51
53
virtual
void
on_set(
void
* member_ptr)
override
;
55
virtual
void
handle_member_change
(
const
cgv::utils::pointer_test
& m)
override
{}
57
void
after_finish(
cgv::render::context
&)
override
;
58
virtual
void
draw_content(
cgv::render::context
& ctx) = 0;
59
60
void
post_damage(
bool
redraw =
true
);
61
63
ivec2
get_local_mouse_pos(
ivec2
mouse_pos)
const override
;
64
70
bool
is_hit(
const
ivec2
& mouse_pos)
const override
;
71
};
72
73
typedef
cgv::data::ref_ptr<canvas_overlay>
canvas_overlay_ptr;
74
75
}
76
}
77
78
#include <cgv/config/lib_end.h>
cgv::app::canvas_overlay
Definition
canvas_overlay.h:14
cgv::app::canvas_overlay::handle_member_change
virtual void handle_member_change(const cgv::utils::pointer_test &m) override
implement to handle member changes
Definition
canvas_overlay.h:55
cgv::app::overlay
Definition
overlay.h:25
cgv::data::ref_ptr
reference counted pointer, which can work together with types that are derived from ref_counted,...
Definition
ref_ptr.h:160
cgv::math::fvec< int32_t, 2 >
cgv::render::context
base class for all drawables, which is independent of the used rendering API.
Definition
context.h:621
cgv::render::managed_frame_buffer
provides a class that manages a frame buffer along with its attachments
Definition
managed_frame_buffer.h:14
cgv::utils::pointer_test
Definition
pointer_test.h:9
cgv
the cgv namespace
Definition
print.h:11
libs
cgv_app
canvas_overlay.h
Generated by
1.9.8