mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-27 01:17:09 +00:00
Small optimizations to stencil scanning.
This commit is contained in:
parent
a33589b3e9
commit
e57ed7d2f4
@ -51,10 +51,10 @@ static const char *stencil_vs =
|
||||
"}\n";
|
||||
|
||||
static u8 StencilBits5551(const u8 *ptr8, u32 numPixels) {
|
||||
const u16 *ptr = (const u16 *)ptr8;
|
||||
const u32 *ptr = (const u32 *)ptr8;
|
||||
|
||||
for (u32 i = 0; i < numPixels; ++i) {
|
||||
if (ptr[i] & 0x8000) {
|
||||
for (u32 i = 0; i < numPixels / 2; ++i) {
|
||||
if (ptr[i] & 0x80008000) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -63,25 +63,25 @@ static u8 StencilBits5551(const u8 *ptr8, u32 numPixels) {
|
||||
}
|
||||
|
||||
static u8 StencilBits4444(const u8 *ptr8, u32 numPixels) {
|
||||
const u16 *ptr = (const u16 *)ptr8;
|
||||
u8 bits = 0;
|
||||
const u32 *ptr = (const u32 *)ptr8;
|
||||
u32 bits = 0;
|
||||
|
||||
for (u32 i = 0; i < numPixels; ++i) {
|
||||
bits |= ptr[i] >> 12;
|
||||
for (u32 i = 0; i < numPixels / 2; ++i) {
|
||||
bits |= ptr[i];
|
||||
}
|
||||
|
||||
return bits;
|
||||
return ((bits >> 12) & 0xF) | (bits >> 28);
|
||||
}
|
||||
|
||||
static u8 StencilBits8888(const u8 *ptr8, u32 numPixels) {
|
||||
const u32 *ptr = (const u32 *)ptr8;
|
||||
u8 bits = 0;
|
||||
u32 bits = 0;
|
||||
|
||||
for (u32 i = 0; i < numPixels; ++i) {
|
||||
bits |= ptr[i] >> 24;
|
||||
bits |= ptr[i];
|
||||
}
|
||||
|
||||
return bits;
|
||||
return bits >> 24;
|
||||
}
|
||||
|
||||
bool FramebufferManager::NotifyStencilUpload(u32 addr, int size, bool skipZero) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user