Improve lighting register definitions

This commit is contained in:
wheremyfoodat 2024-07-18 00:55:57 +03:00
parent 0fc95ae8ef
commit ed00ddc805
5 changed files with 175 additions and 6 deletions

View file

@ -92,7 +92,7 @@ std::string FragmentGenerator::getVertexShader(const PICARegs& regs) {
return ret;
}
std::string FragmentGenerator::generate(const PICARegs& regs) {
std::string FragmentGenerator::generate(const PICARegs& regs, const FragmentConfig& config) {
std::string ret = "";
switch (api) {

View file

@ -780,7 +780,7 @@ std::optional<ColourBuffer> RendererGL::getColourBuffer(u32 addr, PICA::ColorFmt
OpenGL::Program& RendererGL::getSpecializedShader() {
constexpr uint uboBlockBinding = 2;
PICA::FragmentConfig fsConfig;
PICA::FragmentConfig fsConfig(regs);
auto& outConfig = fsConfig.outConfig;
auto& texConfig = fsConfig.texConfig;
@ -812,7 +812,7 @@ OpenGL::Program& RendererGL::getSpecializedShader() {
if (!program.exists()) {
std::string vs = fragShaderGen.getVertexShader(regs);
std::string fs = fragShaderGen.generate(regs);
std::string fs = fragShaderGen.generate(regs, fsConfig);
OpenGL::Shader vertShader({vs.c_str(), vs.size()}, OpenGL::Vertex);
OpenGL::Shader fragShader({fs.c_str(), fs.size()}, OpenGL::Fragment);