summaryrefslogtreecommitdiff
path: root/src/video_core/rasterizer.cpp
diff options
context:
space:
mode:
authorGravatar Tony Wasserka2015-01-02 15:26:50 +0100
committerGravatar Tony Wasserka2015-02-18 14:50:28 +0100
commitaaf30ca4ee7cb539722a2928a578a579641987a1 (patch)
tree9f26da24086fd259c62d4c7306d46d6f96df1131 /src/video_core/rasterizer.cpp
parentPica/Rasterizer: Rasterize actual pixel centers instead of pixel corners. (diff)
downloadyuzu-aaf30ca4ee7cb539722a2928a578a579641987a1.tar.gz
yuzu-aaf30ca4ee7cb539722a2928a578a579641987a1.tar.xz
yuzu-aaf30ca4ee7cb539722a2928a578a579641987a1.zip
Pica/OutputMerger: Implement color format checking.
Diffstat (limited to 'src/video_core/rasterizer.cpp')
-rw-r--r--src/video_core/rasterizer.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp
index 168a2ada0..27eeb531d 100644
--- a/src/video_core/rasterizer.cpp
+++ b/src/video_core/rasterizer.cpp
@@ -20,10 +20,19 @@ namespace Rasterizer {
20static void DrawPixel(int x, int y, const Math::Vec4<u8>& color) { 20static void DrawPixel(int x, int y, const Math::Vec4<u8>& color) {
21 const PAddr addr = registers.framebuffer.GetColorBufferPhysicalAddress(); 21 const PAddr addr = registers.framebuffer.GetColorBufferPhysicalAddress();
22 u32* color_buffer = reinterpret_cast<u32*>(Memory::GetPointer(PAddrToVAddr(addr))); 22 u32* color_buffer = reinterpret_cast<u32*>(Memory::GetPointer(PAddrToVAddr(addr)));
23 u32 value = (color.a() << 24) | (color.r() << 16) | (color.g() << 8) | color.b();
24 23
25 // Assuming RGBA8 format until actual framebuffer format handling is implemented 24 switch (registers.framebuffer.color_format) {
26 *(color_buffer + x + y * registers.framebuffer.GetWidth()) = value; 25 case registers.framebuffer.RGBA8:
26 {
27 u32 value = (color.a() << 24) | (color.r() << 16) | (color.g() << 8) | color.b();
28 *(color_buffer + x + y * registers.framebuffer.GetWidth()) = value;
29 break;
30 }
31
32 default:
33 LOG_CRITICAL(Render_Software, "Unknown framebuffer color format %x", registers.framebuffer.color_format);
34 exit(1);
35 }
27} 36}
28 37
29static const Math::Vec4<u8> GetPixel(int x, int y) { 38static const Math::Vec4<u8> GetPixel(int x, int y) {