Serenity Operating System
at master 47 lines 1.2 kB view raw
1/* 2 * Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include "ScreenBackend.h" 10#include "ScreenLayout.h" 11#include <AK/DeprecatedString.h> 12#include <AK/Error.h> 13#include <AK/Span.h> 14 15namespace WindowServer { 16 17class VirtualScreenBackend : public ScreenBackend { 18public: 19 virtual ~VirtualScreenBackend(); 20 21 VirtualScreenBackend() = default; 22 23private: 24 friend class Screen; 25 26 virtual ErrorOr<void> open() override; 27 28 virtual void set_head_buffer(int index) override; 29 30 virtual ErrorOr<void> flush_framebuffer_rects(int, ReadonlySpan<FBRect>) override { return {}; } 31 32 virtual ErrorOr<void> flush_framebuffer() override { return {}; } 33 34 virtual ErrorOr<void> unmap_framebuffer() override; 35 virtual ErrorOr<void> map_framebuffer() override; 36 37 virtual ErrorOr<void> set_safe_head_mode_setting() override; 38 39 virtual ErrorOr<void> set_head_mode_setting(GraphicsHeadModeSetting) override; 40 virtual ErrorOr<GraphicsHeadModeSetting> get_head_mode_setting() override; 41 42 int m_height { 0 }; 43 int m_width { 0 }; 44 bool m_first_buffer_active { true }; 45}; 46 47}