/* * Copyright (c) 2021, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace SoftGPU { class StencilBuffer final { public: static ErrorOr> try_create(Gfx::IntSize const& size); void clear(Gfx::IntRect rect, u8 value); Gfx::IntRect const& rect() const { return m_rect; } u8* scanline(int y); private: StencilBuffer(Gfx::IntRect const& rect, FixedArray data); FixedArray m_data; Gfx::IntRect m_rect; }; }