mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 17:37:47 +00:00
LibAccelGfx: Remove ability to change target canvas in painter
It is easier to build painter assuming target canvas won't change and we don't use this api anyway :)
This commit is contained in:
parent
161082e282
commit
4a2a37275e
3 changed files with 13 additions and 23 deletions
|
@ -170,13 +170,14 @@ void main() {
|
|||
|
||||
HashMap<u32, GL::Texture> s_immutable_bitmap_texture_cache;
|
||||
|
||||
NonnullOwnPtr<Painter> Painter::create(Context& context)
|
||||
NonnullOwnPtr<Painter> Painter::create(Context& context, NonnullRefPtr<Canvas> canvas)
|
||||
{
|
||||
return make<Painter>(context);
|
||||
return make<Painter>(context, canvas);
|
||||
}
|
||||
|
||||
Painter::Painter(Context& context)
|
||||
Painter::Painter(Context& context, NonnullRefPtr<Canvas> canvas)
|
||||
: m_context(context)
|
||||
, m_target_canvas(canvas)
|
||||
, m_rectangle_program(Program::create(Program::Name::RectangleProgram, vertex_shader_source, solid_color_fragment_shader_source))
|
||||
, m_rounded_rectangle_program(Program::create(Program::Name::RoundedRectangleProgram, vertex_shader_source, rect_with_rounded_corners_fragment_shader_source))
|
||||
, m_blit_program(Program::create(Program::Name::BlitProgram, blit_vertex_shader_source, blit_fragment_shader_source))
|
||||
|
@ -184,6 +185,8 @@ Painter::Painter(Context& context)
|
|||
, m_blur_program(Program::create(Program::Name::BlurProgram, blit_vertex_shader_source, blur_fragment_shader_source))
|
||||
{
|
||||
m_state_stack.empend(State());
|
||||
state().clip_rect = { { 0, 0 }, m_target_canvas->size() };
|
||||
bind_target_canvas();
|
||||
}
|
||||
|
||||
Painter::~Painter()
|
||||
|
@ -607,14 +610,6 @@ void Painter::bind_target_canvas()
|
|||
GL::enable_scissor_test(state().clip_rect);
|
||||
}
|
||||
|
||||
void Painter::set_target_canvas(NonnullRefPtr<Canvas> canvas)
|
||||
{
|
||||
m_target_canvas = canvas;
|
||||
canvas->bind();
|
||||
GL::set_viewport({ 0, 0, canvas->size().width(), canvas->size().height() });
|
||||
state().clip_rect = { { 0, 0 }, m_target_canvas->size() };
|
||||
}
|
||||
|
||||
void Painter::flush(Gfx::Bitmap& bitmap)
|
||||
{
|
||||
m_target_canvas->bind();
|
||||
|
|
|
@ -29,9 +29,9 @@ class Painter {
|
|||
AK_MAKE_NONMOVABLE(Painter);
|
||||
|
||||
public:
|
||||
static NonnullOwnPtr<Painter> create(Context&);
|
||||
static NonnullOwnPtr<Painter> create(Context&, NonnullRefPtr<Canvas>);
|
||||
|
||||
Painter(Context&);
|
||||
Painter(Context&, NonnullRefPtr<Canvas>);
|
||||
~Painter();
|
||||
|
||||
void clear(Gfx::Color);
|
||||
|
@ -67,7 +67,6 @@ public:
|
|||
void set_clip_rect(Gfx::IntRect);
|
||||
void clear_clip_rect();
|
||||
|
||||
void set_target_canvas(NonnullRefPtr<Canvas>);
|
||||
void flush(Gfx::Bitmap&);
|
||||
|
||||
void fill_rect_with_linear_gradient(Gfx::IntRect const&, ReadonlySpan<Gfx::ColorStop>, float angle, Optional<float> repeat_length = {});
|
||||
|
@ -110,7 +109,7 @@ private:
|
|||
|
||||
Vector<State, 1> m_state_stack;
|
||||
|
||||
RefPtr<Canvas> m_target_canvas;
|
||||
NonnullRefPtr<Canvas> m_target_canvas;
|
||||
|
||||
Program m_rectangle_program;
|
||||
Program m_rounded_rectangle_program;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue