diff --git a/Userland/Demos/VirGLDemo/VirGLDemo.cpp b/Userland/Demos/VirGLDemo/VirGLDemo.cpp index 2b6cf8f92b..76f8295ecb 100644 --- a/Userland/Demos/VirGLDemo/VirGLDemo.cpp +++ b/Userland/Demos/VirGLDemo/VirGLDemo.cpp @@ -316,7 +316,8 @@ ErrorOr serenity_main(Main::Arguments arguments) window->set_has_alpha_channel(false); window->set_alpha_hit_threshold(1); - auto demo = TRY(window->try_set_main_widget()); + auto demo = TRY(Demo::create()); + window->set_main_widget(demo); auto app_icon = GUI::Icon::default_icon("app-cube"sv); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Demos/VirGLDemo/Widget.cpp b/Userland/Demos/VirGLDemo/Widget.cpp index 41f640961f..5498cd35ba 100644 --- a/Userland/Demos/VirGLDemo/Widget.cpp +++ b/Userland/Demos/VirGLDemo/Widget.cpp @@ -9,11 +9,18 @@ #include "Widget.h" +ErrorOr> Demo::create() +{ + auto demo = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) Demo)); + + demo->m_bitmap = TRY(Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, { DRAWTARGET_WIDTH, DRAWTARGET_HEIGHT })); + demo->m_bitmap->fill(Gfx::Color::Black); + + return demo; +} + Demo::Demo() { - m_bitmap = Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, { DRAWTARGET_WIDTH, DRAWTARGET_HEIGHT }).release_value_but_fixme_should_propagate_errors(); - m_bitmap->fill(Gfx::Color::Black); - m_cycles = 0; stop_timer(); diff --git a/Userland/Demos/VirGLDemo/Widget.h b/Userland/Demos/VirGLDemo/Widget.h index bf51ce7e2c..bd16715625 100644 --- a/Userland/Demos/VirGLDemo/Widget.h +++ b/Userland/Demos/VirGLDemo/Widget.h @@ -16,6 +16,7 @@ constexpr size_t DRAWTARGET_HEIGHT = 500; class Demo final : public GUI::Widget { C_OBJECT(Demo) public: + static ErrorOr> create(); virtual ~Demo() override; bool show_window_frame() const { return m_show_window_frame; }