1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 15:57:36 +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:
Aliaksandr Kalenik 2023-12-16 16:36:58 +01:00 committed by Andreas Kling
parent 161082e282
commit 4a2a37275e
3 changed files with 13 additions and 23 deletions

View file

@ -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();

View file

@ -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;