mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:47:44 +00:00
Demos: Create demo for VirGL gpu device
This is a simple demo for VirGL, that does the bare minimum required to create and render a spinning cube (with one color per face).
This commit is contained in:
parent
2939f65753
commit
fd5eaf6494
8 changed files with 957 additions and 0 deletions
37
Userland/Demos/VirGLDemo/Widget.cpp
Normal file
37
Userland/Demos/VirGLDemo/Widget.cpp
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Copyright (c) 2022, Sahan Fernando <sahan.h.fernando@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
|
||||
#include "Widget.h"
|
||||
|
||||
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();
|
||||
start_timer(16);
|
||||
}
|
||||
|
||||
Demo::~Demo() { }
|
||||
|
||||
void Demo::paint_event(GUI::PaintEvent& event)
|
||||
{
|
||||
GUI::Painter painter(*this);
|
||||
painter.add_clip_rect(event.rect());
|
||||
painter.draw_scaled_bitmap(rect(), *m_bitmap, m_bitmap->rect());
|
||||
}
|
||||
|
||||
void Demo::timer_event(Core::TimerEvent&)
|
||||
{
|
||||
m_cycles += 1;
|
||||
update_frame(m_bitmap, m_cycles);
|
||||
update();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue