mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	citra-qt: Add depth formats to framebuffer viewing widget.
This commit is contained in:
		
							parent
							
								
									88df3fbf27
								
							
						
					
					
						commit
						302e9a20f3
					
				
					 2 changed files with 33 additions and 6 deletions
				
			
		|  | @ -55,7 +55,9 @@ GraphicsFramebufferWidget::GraphicsFramebufferWidget(std::shared_ptr<Pica::Debug | |||
|     framebuffer_format_control->addItem(tr("RGBA4")); | ||||
|     framebuffer_format_control->addItem(tr("D16")); | ||||
|     framebuffer_format_control->addItem(tr("D24")); | ||||
|     framebuffer_format_control->addItem(tr("D24S8")); | ||||
|     framebuffer_format_control->addItem(tr("D24X8")); | ||||
|     framebuffer_format_control->addItem(tr("X24S8")); | ||||
|     framebuffer_format_control->addItem(tr("(unknown)")); | ||||
| 
 | ||||
|     // TODO: This QLabel should shrink the image to the available space rather than just expanding...
 | ||||
|     framebuffer_picture_label = new QLabel; | ||||
|  | @ -221,7 +223,24 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
|         framebuffer_address = framebuffer.GetDepthBufferPhysicalAddress(); | ||||
|         framebuffer_width = framebuffer.GetWidth(); | ||||
|         framebuffer_height = framebuffer.GetHeight(); | ||||
| 
 | ||||
|         switch (framebuffer.depth_format) { | ||||
|         case Pica::Regs::DepthFormat::D16: | ||||
|             framebuffer_format = Format::D16; | ||||
|             break; | ||||
| 
 | ||||
|         case Pica::Regs::DepthFormat::D24: | ||||
|             framebuffer_format = Format::D24; | ||||
|             break; | ||||
| 
 | ||||
|         case Pica::Regs::DepthFormat::D24S8: | ||||
|             framebuffer_format = Format::D24X8; | ||||
|             break; | ||||
| 
 | ||||
|         default: | ||||
|             framebuffer_format = Format::Unknown; | ||||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         break; | ||||
|     } | ||||
|  | @ -282,7 +301,7 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
|                 color.b() = (data >> 16) & 0xFF; | ||||
|                 break; | ||||
|             } | ||||
|             case Format::D24S8: | ||||
|             case Format::D24X8: | ||||
|             { | ||||
|                 Math::Vec2<u32> data = Color::DecodeD24S8(pixel); | ||||
|                 color.r() = data.x & 0xFF; | ||||
|  | @ -290,6 +309,12 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
|                 color.b() = (data.x >> 16) & 0xFF; | ||||
|                 break; | ||||
|             } | ||||
|             case Format::X24S8: | ||||
|             { | ||||
|                 Math::Vec2<u32> data = Color::DecodeD24S8(pixel); | ||||
|                 color.r() = color.g() = color.b() = data.y; | ||||
|                 break; | ||||
|             } | ||||
|             default: | ||||
|                 qDebug() << "Unknown fb color format " << static_cast<int>(framebuffer_format); | ||||
|                 break; | ||||
|  | @ -310,7 +335,8 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
| u32 GraphicsFramebufferWidget::BytesPerPixel(GraphicsFramebufferWidget::Format format) { | ||||
|     switch (format) { | ||||
|         case Format::RGBA8: | ||||
|         case Format::D24S8: | ||||
|         case Format::D24X8: | ||||
|         case Format::X24S8: | ||||
|             return 4; | ||||
|         case Format::RGB8: | ||||
|         case Format::D24: | ||||
|  |  | |||
|  | @ -35,8 +35,9 @@ class GraphicsFramebufferWidget : public BreakPointObserverDock { | |||
|         RGBA4    = 4, | ||||
|         D16      = 5, | ||||
|         D24      = 6, | ||||
|         D24S8    = 7, | ||||
|         Unknown  = 8 | ||||
|         D24X8    = 7, | ||||
|         X24S8    = 8, | ||||
|         Unknown  = 9 | ||||
|     }; | ||||
| 
 | ||||
|     static u32 BytesPerPixel(Format format); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue