mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 10:48:41 +00:00
LibWeb: Share decoded images at the Resource level :^)
This patch adds ImageResource as a subclass of Resource. This new class also keeps a Gfx::ImageDecoder so that we can share decoded bitmaps between all clients of an image resource inside LibWeb. With this, we now share both encoded and decoded data for images. :^) I had to change how the purgeable-volatile flag is updated to keep the volatile-images-outside-the-visible-viewport optimization working. HTMLImageElement now inherits from ImageResourceClient (a subclass of ResourceClient with additional image-specific stuff) and informs its ImageResource about whether it's inside the viewport or outside. This is pretty awesome! :^)
This commit is contained in:
@@ -30,13 +30,16 @@
|
||||
|
||||
namespace Web {
|
||||
|
||||
NonnullRefPtr<Resource> Resource::create(Badge<ResourceLoader>, const LoadRequest& request)
|
||||
NonnullRefPtr<Resource> Resource::create(Badge<ResourceLoader>, Type type, const LoadRequest& request)
|
||||
{
|
||||
return adopt(*new Resource(request));
|
||||
if (type == Type::Image)
|
||||
return adopt(*new ImageResource(request));
|
||||
return adopt(*new Resource(type, request));
|
||||
}
|
||||
|
||||
Resource::Resource(const LoadRequest& request)
|
||||
Resource::Resource(Type type, const LoadRequest& request)
|
||||
: m_request(request)
|
||||
, m_type(type)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user