mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 03:57:43 +00:00
LibWeb+Browser: Decode non-animated images out-of-process :^)
We now use the ImageDecoder service in LibWeb for everything except GIF images (we'll have to deal with them later, ofc.) This has a little bit of overhead but we should be able to optimize it until it becomes negligible.
This commit is contained in:
parent
b273b31c7d
commit
10255bc5c6
10 changed files with 96 additions and 25 deletions
|
@ -36,12 +36,17 @@ class ImageResource final : public Resource {
|
|||
public:
|
||||
virtual ~ImageResource() override;
|
||||
Gfx::ImageDecoder& ensure_decoder();
|
||||
const Gfx::Bitmap* bitmap(size_t frame_index) const;
|
||||
|
||||
bool should_decode_in_process() const;
|
||||
|
||||
void update_volatility();
|
||||
|
||||
private:
|
||||
explicit ImageResource(const LoadRequest&);
|
||||
RefPtr<Gfx::ImageDecoder> m_decoder;
|
||||
mutable RefPtr<Gfx::Bitmap> m_decoded_image;
|
||||
mutable bool m_has_attempted_decode { false };
|
||||
};
|
||||
|
||||
class ImageResourceClient : public ResourceClient {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue