A few kissable changes

This commit is contained in:
offtkp 2024-07-21 18:25:51 +03:00
parent 82df95cf88
commit b8712b37c3
4 changed files with 11 additions and 8 deletions

View file

@ -92,8 +92,8 @@ class GPU {
// Set to false by the renderer when the lighting_lut is uploaded ot the GPU // Set to false by the renderer when the lighting_lut is uploaded ot the GPU
bool lightingLUTDirty = false; bool lightingLUTDirty = false;
std::array<uint32_t, 128> fogLUT;
bool fogLUTDirty = false; bool fogLUTDirty = false;
std::array<uint32_t, 128> fogLUT;
GPU(Memory& mem, EmulatorConfig& config); GPU(Memory& mem, EmulatorConfig& config);
void display() { renderer->display(); } void display() { renderer->display(); }

View file

@ -235,11 +235,14 @@ namespace PICA {
#undef setupTevStage #undef setupTevStage
fogConfig.mode = (FogMode)Helpers::getBits<0, 3>(regs[InternalRegs::TexEnvUpdateBuffer]); fogConfig.mode = (FogMode)Helpers::getBits<0, 3>(regs[InternalRegs::TexEnvUpdateBuffer]);
if (fogConfig.mode == FogMode::Fog) {
fogConfig.flipDepth = Helpers::getBit<16>(regs[InternalRegs::TexEnvUpdateBuffer]); fogConfig.flipDepth = Helpers::getBit<16>(regs[InternalRegs::TexEnvUpdateBuffer]);
fogConfig.fogColorR = Helpers::getBits<0, 8>(regs[InternalRegs::FogColor]); fogConfig.fogColorR = Helpers::getBits<0, 8>(regs[InternalRegs::FogColor]);
fogConfig.fogColorG = Helpers::getBits<8, 8>(regs[InternalRegs::FogColor]); fogConfig.fogColorG = Helpers::getBits<8, 8>(regs[InternalRegs::FogColor]);
fogConfig.fogColorB = Helpers::getBits<16, 8>(regs[InternalRegs::FogColor]); fogConfig.fogColorB = Helpers::getBits<16, 8>(regs[InternalRegs::FogColor]);
} }
}
}; };
static_assert( static_assert(

View file

@ -143,10 +143,10 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) {
case FogLUTData5: case FogLUTData5:
case FogLUTData6: case FogLUTData6:
case FogLUTData7: { case FogLUTData7: {
const uint32_t index = regs[FogLUTIndex] & 127; const uint32_t index = regs[FogLUTIndex] & 0x7F;
fogLUT[index] = value; fogLUT[index] = value;
fogLUTDirty = true; fogLUTDirty = true;
regs[FogLUTIndex] = (index + 1) & 127; regs[FogLUTIndex] = (index + 1) & 0x7F;
break; break;
} }

View file

@ -1026,7 +1026,7 @@ void RendererGL::initUbershader(OpenGL::Program& program) {
ubershaderData.depthmapEnableLoc = OpenGL::uniformLocation(program, "u_depthmapEnable"); ubershaderData.depthmapEnableLoc = OpenGL::uniformLocation(program, "u_depthmapEnable");
ubershaderData.picaRegLoc = OpenGL::uniformLocation(program, "u_picaRegs"); ubershaderData.picaRegLoc = OpenGL::uniformLocation(program, "u_picaRegs");
// Init sampler objects. Texture 0 goes in texture unit 0, texture 1 in TU 1, texture 2 in TU 2, light maps go in TU 3, and the fog map goes in TU 4 // Init sampler objects. Texture 0 goes in texture unit 0, texture 1 in TU 1, texture 2 in TU 2 and the LUTs go in TU 3
glUniform1i(OpenGL::uniformLocation(program, "u_tex0"), 0); glUniform1i(OpenGL::uniformLocation(program, "u_tex0"), 0);
glUniform1i(OpenGL::uniformLocation(program, "u_tex1"), 1); glUniform1i(OpenGL::uniformLocation(program, "u_tex1"), 1);
glUniform1i(OpenGL::uniformLocation(program, "u_tex2"), 2); glUniform1i(OpenGL::uniformLocation(program, "u_tex2"), 2);