diff options
| author | Nolan Check <Nolan.Check@gmail.com> | 2009-06-29 00:52:54 +0000 |
|---|---|---|
| committer | Nolan Check <Nolan.Check@gmail.com> | 2009-06-29 00:52:54 +0000 |
| commit | 5717f1f15b2069230be331a8efc876505b08418b (patch) | |
| tree | b58a5232e9ff00d5a62792d0897e967412069c97 /Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp | |
| parent | 07a767691d411a7c2a31340628adda8c92e1204d (diff) | |
Grok EFB pixel format to determine whether render target has alpha, thus fixing the "Stage Clear" screen in SSBM.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3588 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp')
| -rw-r--r-- | Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp index 49f804b91a..1c531db68d 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp @@ -25,6 +25,17 @@ void FramebufferManager::Init(int targetWidth, int targetHeight, int msaaSamples m_msaaSamples = msaaSamples;
m_msaaCoverageSamples = msaaCoverageSamples;
+ // The EFB can be set to different pixel formats by the game through the
+ // BPMEM_ZCOMPARE register (which should probably have a different name).
+ // They are:
+ // - 24-bit RGB (8-bit components) with 24-bit Z
+ // - 24-bit RGBA (6-bit components) with 24-bit Z
+ // - Multisampled 16-bit RGB (5-6-5 format) with 16-bit Z
+ // We only use one EFB format here: 32-bit ARGB with 24-bit Z.
+ // Multisampling depends on user settings.
+ // The distinction becomes important for certain operations, i.e. the
+ // alpha channel should be ignored if the EFB does not have one.
+
// Create EFB target.
glGenFramebuffersEXT(1, &m_efbFramebuffer);
|
