diff options
author | Liam <byteslice@airmail.cc> | 2024-01-26 16:10:21 -0500 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2024-02-09 09:20:53 -0500 |
commit | 0cb413c3d31b93ce347e997b9674c304094dab09 (patch) | |
tree | 959ef73963ea1e7975690d31eaf4ddc2f2ad6e19 /src/video_core/capture.h | |
parent | 962c82540c304f909957776908aabcd261f2a7ba (diff) |
nvnflinger/gpu: implement applet capture
Diffstat (limited to 'src/video_core/capture.h')
-rw-r--r-- | src/video_core/capture.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/video_core/capture.h b/src/video_core/capture.h new file mode 100644 index 000000000..8db14a8ec --- /dev/null +++ b/src/video_core/capture.h @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "common/alignment.h" +#include "common/bit_util.h" +#include "common/common_types.h" +#include "core/frontend/framebuffer_layout.h" +#include "video_core/surface.h" + +namespace VideoCore::Capture { + +constexpr u32 BlockHeight = 4; +constexpr u32 BlockDepth = 0; +constexpr u32 BppLog2 = 2; + +constexpr auto PixelFormat = Surface::PixelFormat::B8G8R8A8_UNORM; + +constexpr auto LinearWidth = Layout::ScreenUndocked::Width; +constexpr auto LinearHeight = Layout::ScreenUndocked::Height; +constexpr auto LinearDepth = 1U; +constexpr auto BytesPerPixel = 4U; + +constexpr auto TiledWidth = LinearWidth; +constexpr auto TiledHeight = Common::AlignUpLog2(LinearHeight, BlockHeight + BlockDepth + BppLog2); +constexpr auto TiledSize = TiledWidth * TiledHeight * (1 << BppLog2); + +constexpr Layout::FramebufferLayout Layout{ + .width = LinearWidth, + .height = LinearHeight, + .screen = {0, 0, LinearWidth, LinearHeight}, + .is_srgb = false, +}; + +} // namespace VideoCore::Capture |