|
|
|
@ -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)
|
|
|
|
|