citra-qt: Properly specify the framebuffer format.

This commit is contained in:
Tony Wasserka 2015-04-21 21:57:49 +02:00
parent 884b681cca
commit 88df3fbf27
2 changed files with 28 additions and 3 deletions

View file

@ -184,8 +184,32 @@ void GraphicsFramebufferWidget::OnUpdate()
framebuffer_address = framebuffer.GetColorBufferPhysicalAddress();
framebuffer_width = framebuffer.GetWidth();
framebuffer_height = framebuffer.GetHeight();
// TODO: It's unknown how this format is actually specified
switch (framebuffer.color_format) {
case Pica::Regs::ColorFormat::RGBA8:
framebuffer_format = Format::RGBA8;
break;
case Pica::Regs::ColorFormat::RGB8:
framebuffer_format = Format::RGB8;
break;
case Pica::Regs::ColorFormat::RGB5A1:
framebuffer_format = Format::RGB5A1;
break;
case Pica::Regs::ColorFormat::RGB565:
framebuffer_format = Format::RGB565;
break;
case Pica::Regs::ColorFormat::RGBA4:
framebuffer_format = Format::RGBA4;
break;
default:
framebuffer_format = Format::Unknown;
break;
}
break;
}

View file

@ -35,7 +35,8 @@ class GraphicsFramebufferWidget : public BreakPointObserverDock {
RGBA4 = 4,
D16 = 5,
D24 = 6,
D24S8 = 7
D24S8 = 7,
Unknown = 8
};
static u32 BytesPerPixel(Format format);