mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:07:44 +00:00
LibWeb: Make sure painter's context is active before executing commands
In the upcoming changes, the AccelGfx context will be used for WebGL, so we can no longer assume that the WebContent process has a single global context.
This commit is contained in:
parent
aac439edb1
commit
c6289fad49
4 changed files with 13 additions and 0 deletions
|
@ -14,6 +14,7 @@ PaintingCommandExecutorGPU::PaintingCommandExecutorGPU(AccelGfx::Context& contex
|
|||
: m_target_bitmap(bitmap)
|
||||
, m_context(context)
|
||||
{
|
||||
m_context.activate();
|
||||
auto canvas = AccelGfx::Canvas::create(bitmap.size());
|
||||
auto painter = AccelGfx::Painter::create(m_context, canvas);
|
||||
m_stacking_contexts.append({ .canvas = canvas,
|
||||
|
@ -25,6 +26,7 @@ PaintingCommandExecutorGPU::PaintingCommandExecutorGPU(AccelGfx::Context& contex
|
|||
|
||||
PaintingCommandExecutorGPU::~PaintingCommandExecutorGPU()
|
||||
{
|
||||
m_context.activate();
|
||||
VERIFY(m_stacking_contexts.size() == 1);
|
||||
painter().flush(m_target_bitmap);
|
||||
}
|
||||
|
@ -418,6 +420,11 @@ void PaintingCommandExecutorGPU::prepare_glyph_texture(HashMap<Gfx::Font const*,
|
|||
AccelGfx::GlyphAtlas::the().update(unique_glyphs);
|
||||
}
|
||||
|
||||
void PaintingCommandExecutorGPU::prepare_to_execute()
|
||||
{
|
||||
m_context.activate();
|
||||
}
|
||||
|
||||
void PaintingCommandExecutorGPU::update_immutable_bitmap_texture_cache(HashMap<u32, Gfx::ImmutableBitmap const*>& immutable_bitmaps)
|
||||
{
|
||||
painter().update_immutable_bitmap_texture_cache(immutable_bitmaps);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue