bool ZCompare(u16 x, u16 y, u32 z) { u32 offset = GetDepthOffset(x, y); u32 depth = GetPixelDepth(offset); bool pass; switch (bpmem.zmode.func) { case ZMode::NEVER: pass = false; break; case ZMode::LESS: pass = z < depth; break; case ZMode::EQUAL: pass = z == depth; break; case ZMode::LEQUAL: pass = z <= depth; break; case ZMode::GREATER: pass = z > depth; break; case ZMode::NEQUAL: pass = z != depth; break; case ZMode::GEQUAL: pass = z >= depth; break; case ZMode::ALWAYS: pass = true; break; default: pass = false; ERROR_LOG(VIDEO, "Bad Z compare mode %i", (int)bpmem.zmode.func); } if (pass && bpmem.zmode.updateenable) { SetPixelDepth(offset, z); } return pass; }
void SetDepth(u16 x, u16 y, u32 depth) { if (bpmem.zmode.updateenable) SetPixelDepth(GetDepthOffset(x, y), depth); }
void SetDepth(u16 x, u16 y, u32 depth) { SetPixelDepth(GetDepthOffset(x, y), depth); }