From 236d463c52afb4dbd3d36e3a34ff7fac5b4046d4 Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 10 Jan 2018 22:26:00 -0500 Subject: [PATCH] render_base: Add a struct describing framebuffer metadata. --- src/video_core/renderer_base.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h index 589aca857..f18917da3 100644 --- a/src/video_core/renderer_base.h +++ b/src/video_core/renderer_base.h @@ -15,6 +15,32 @@ public: /// Used to reference a framebuffer enum kFramebuffer { kFramebuffer_VirtualXFB = 0, kFramebuffer_EFB, kFramebuffer_Texture }; + /// Struct describing framebuffer metadata + struct FramebufferInfo { + enum class PixelFormat : u32 { + ABGR8 = 1, + }; + + /** + * Returns the number of bytes per pixel. + */ + static u32 BytesPerPixel(PixelFormat format) { + switch (format) { + case PixelFormat::ABGR8: + return 4; + } + + UNREACHABLE(); + } + + VAddr address; + u32 offset; + u32 width; + u32 height; + u32 stride; + PixelFormat pixel_format; + }; + virtual ~RendererBase() {} /// Swap buffers (render frame)