Some more GetPointer cleanup

This commit is contained in:
Henrik Rydgard 2014-10-19 23:19:51 +02:00
parent c62255f1d9
commit d17aa4738a
4 changed files with 19 additions and 10 deletions

View file

@ -114,20 +114,25 @@ bool FramebufferManagerDX9::NotifyStencilUpload(u32 addr, int size, bool skipZer
int values = 0; int values = 0;
u8 usedBits = 0; u8 usedBits = 0;
const u8 *src = Memory::GetPointer(addr);
if (!src) {
return false;
}
switch (dstBuffer->format) { switch (dstBuffer->format) {
case GE_FORMAT_565: case GE_FORMAT_565:
// Well, this doesn't make much sense. // Well, this doesn't make much sense.
return false; return false;
case GE_FORMAT_5551: case GE_FORMAT_5551:
usedBits = StencilBits5551(Memory::GetPointer(addr), dstBuffer->fb_stride * dstBuffer->bufferHeight); usedBits = StencilBits5551(src, dstBuffer->fb_stride * dstBuffer->bufferHeight);
values = 2; values = 2;
break; break;
case GE_FORMAT_4444: case GE_FORMAT_4444:
usedBits = StencilBits4444(Memory::GetPointer(addr), dstBuffer->fb_stride * dstBuffer->bufferHeight); usedBits = StencilBits4444(src, dstBuffer->fb_stride * dstBuffer->bufferHeight);
values = 16; values = 16;
break; break;
case GE_FORMAT_8888: case GE_FORMAT_8888:
usedBits = StencilBits8888(Memory::GetPointer(addr), dstBuffer->fb_stride * dstBuffer->bufferHeight); usedBits = StencilBits8888(src, dstBuffer->fb_stride * dstBuffer->bufferHeight);
values = 256; values = 256;
break; break;
case GE_FORMAT_INVALID: case GE_FORMAT_INVALID:
@ -218,7 +223,7 @@ bool FramebufferManagerDX9::NotifyStencilUpload(u32 addr, int size, bool skipZer
} }
dxstate.viewport.set(0, 0, w, h); dxstate.viewport.set(0, 0, w, h);
MakePixelTexture(Memory::GetPointer(addr), dstBuffer->format, dstBuffer->fb_stride, dstBuffer->bufferWidth, dstBuffer->bufferHeight); MakePixelTexture(src, dstBuffer->format, dstBuffer->fb_stride, dstBuffer->bufferWidth, dstBuffer->bufferHeight);
pD3Ddevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_STENCIL, D3DCOLOR_RGBA(0, 0, 0, 0), 0.0f, 0); pD3Ddevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_STENCIL, D3DCOLOR_RGBA(0, 0, 0, 0), 0.0f, 0);

View file

@ -104,20 +104,24 @@ bool FramebufferManager::NotifyStencilUpload(u32 addr, int size, bool skipZero)
int values = 0; int values = 0;
u8 usedBits = 0; u8 usedBits = 0;
const u8 *src = Memory::GetPointer(addr);
if (!src)
return false;
switch (dstBuffer->format) { switch (dstBuffer->format) {
case GE_FORMAT_565: case GE_FORMAT_565:
// Well, this doesn't make much sense. // Well, this doesn't make much sense.
return false; return false;
case GE_FORMAT_5551: case GE_FORMAT_5551:
usedBits = StencilBits5551(Memory::GetPointer(addr), dstBuffer->fb_stride * dstBuffer->bufferHeight); usedBits = StencilBits5551(src, dstBuffer->fb_stride * dstBuffer->bufferHeight);
values = 2; values = 2;
break; break;
case GE_FORMAT_4444: case GE_FORMAT_4444:
usedBits = StencilBits4444(Memory::GetPointer(addr), dstBuffer->fb_stride * dstBuffer->bufferHeight); usedBits = StencilBits4444(src, dstBuffer->fb_stride * dstBuffer->bufferHeight);
values = 16; values = 16;
break; break;
case GE_FORMAT_8888: case GE_FORMAT_8888:
usedBits = StencilBits8888(Memory::GetPointer(addr), dstBuffer->fb_stride * dstBuffer->bufferHeight); usedBits = StencilBits8888(src, dstBuffer->fb_stride * dstBuffer->bufferHeight);
values = 256; values = 256;
break; break;
case GE_FORMAT_INVALID: case GE_FORMAT_INVALID:
@ -195,7 +199,7 @@ bool FramebufferManager::NotifyStencilUpload(u32 addr, int size, bool skipZero)
} }
glViewport(0, 0, w, h); glViewport(0, 0, w, h);
MakePixelTexture(Memory::GetPointer(addr), dstBuffer->format, dstBuffer->fb_stride, dstBuffer->bufferWidth, dstBuffer->bufferHeight); MakePixelTexture(src, dstBuffer->format, dstBuffer->fb_stride, dstBuffer->bufferWidth, dstBuffer->bufferHeight);
textureCache_->ForgetLastTexture(); textureCache_->ForgetLastTexture();
glClearStencil(0); glClearStencil(0);

View file

@ -1199,7 +1199,7 @@ void TextureCache::SetTexture(bool force) {
int bufw = GetTextureBufw(0, texaddr, format); int bufw = GetTextureBufw(0, texaddr, format);
int maxLevel = gstate.getTextureMaxLevel(); int maxLevel = gstate.getTextureMaxLevel();
u32 texhash = MiniHash((const u32 *)Memory::GetPointer(texaddr)); u32 texhash = MiniHash((const u32 *)Memory::GetPointerUnchecked(texaddr));
u32 fullhash = 0; u32 fullhash = 0;
TexCache::iterator iter = cache.find(cachekey); TexCache::iterator iter = cache.find(cachekey);

View file

@ -1194,7 +1194,7 @@ void DrawTriangleSlice(
u32 texaddr = gstate.getTextureAddress(i); u32 texaddr = gstate.getTextureAddress(i);
texbufwidthbits[i] = GetTextureBufw(i, texaddr, texfmt) * 8; texbufwidthbits[i] = GetTextureBufw(i, texaddr, texfmt) * 8;
if (Memory::IsValidAddress(texaddr)) if (Memory::IsValidAddress(texaddr))
texptr[i] = Memory::GetPointer(texaddr); texptr[i] = Memory::GetPointerUnchecked(texaddr);
else else
texptr[i] = 0; texptr[i] = 0;
} }