LibWeb: Ensure SkiaSurface is fully defined before it is allocated

LLVM 18 on macOS correctly errs when we try to allocate an incomplete
SkiaSurface object.
This commit is contained in:
Timothy Flynn 2024-06-28 12:44:45 -04:00 committed by Tim Flynn
parent d9470d6a93
commit 6369737676
Notes: sideshowbarker 2024-07-17 04:57:23 +09:00

View File

@ -38,6 +38,19 @@
namespace Web::Painting {
class DisplayListPlayerSkia::SkiaSurface {
public:
SkCanvas& canvas() const { return *surface->getCanvas(); }
SkiaSurface(sk_sp<SkSurface> surface)
: surface(move(surface))
{
}
private:
sk_sp<SkSurface> surface;
};
#ifdef AK_OS_MACOS
class SkiaMetalBackendContext final : public SkiaBackendContext {
AK_MAKE_NONCOPYABLE(SkiaMetalBackendContext);
@ -94,19 +107,6 @@ DisplayListPlayerSkia::DisplayListPlayerSkia(SkiaBackendContext& context, Core::
}
#endif
class DisplayListPlayerSkia::SkiaSurface {
public:
SkCanvas& canvas() const { return *surface->getCanvas(); }
SkiaSurface(sk_sp<SkSurface> surface)
: surface(move(surface))
{
}
private:
sk_sp<SkSurface> surface;
};
DisplayListPlayerSkia::DisplayListPlayerSkia(Gfx::Bitmap& bitmap)
{
VERIFY(bitmap.format() == Gfx::BitmapFormat::BGRA8888);