diff options
Diffstat (limited to 'Source/Core/VideoCommon/Src/TextureCacheBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index fffde7b7b2..bd7023b01e 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -545,6 +545,10 @@ void TextureCache::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, else// alpha { colmat[15] = 1; + if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) + { + fConstAdd[3] = 1; + } cbufid = 1; } @@ -571,10 +575,18 @@ void TextureCache::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, case 3: // RA8 colmat[0] = colmat[4] = colmat[8] = colmat[15] = 1; cbufid = 3; + if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) + { + fConstAdd[3] = 1; + } break; case 7: // A8 colmat[3] = colmat[7] = colmat[11] = colmat[15] = 1; + if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) + { + fConstAdd[0] = fConstAdd[1] = fConstAdd[2] = fConstAdd[3] = 1; + } cbufid = 4; break; @@ -608,6 +620,10 @@ void TextureCache::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, case 6: // RGBA8 colmat[0] = colmat[5] = colmat[10] = colmat[15] = 1; cbufid = 10; + if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) + { + fConstAdd[3] = 1; + } break; default: @@ -617,6 +633,8 @@ void TextureCache::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, break; } } + + const unsigned int tex_w = (abs(source_rect.GetWidth()) >> (int)bScaleByHalf); const unsigned int tex_h = (abs(source_rect.GetHeight()) >> (int)bScaleByHalf); |
