mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-09 15:45:40 +12:00
[GPU] Cleanup TEV shader code to be less redundant
This commit is contained in:
parent
c3acf2b393
commit
aef808cdfc
1 changed files with 13 additions and 22 deletions
|
@ -167,35 +167,26 @@ const char* fragmentShader = R"(
|
|||
void main() {
|
||||
if ((u_textureConfig & 1u) != 0u) tev_texture_sources[0] = texture(u_tex0, tex0_UVs);
|
||||
|
||||
// TODO: make TEV logic less redundant
|
||||
|
||||
tev_previous_buffer[0] = vec4(0.0);
|
||||
tev_previous_buffer[1] = u_textureEnvBufferColor;
|
||||
|
||||
tev_previous = tev_combine(0);
|
||||
tev_previous_buffer[0] = tev_previous_buffer[1];
|
||||
if ((u_textureEnvUpdateBuffer & 0x100u) != 0u) tev_previous_buffer[1].rgb = tev_previous.rgb;
|
||||
if ((u_textureEnvUpdateBuffer & 0x1000u) != 0u) tev_previous_buffer[1].a = tev_previous.a;
|
||||
for (int i = 0; i < 6; i++) {
|
||||
tev_previous = tev_combine(i);
|
||||
|
||||
tev_previous = tev_combine(1);
|
||||
tev_previous_buffer[0] = tev_previous_buffer[1];
|
||||
if ((u_textureEnvUpdateBuffer & 0x200u) != 0u) tev_previous_buffer[1].rgb = tev_previous.rgb;
|
||||
if ((u_textureEnvUpdateBuffer & 0x2000u) != 0u) tev_previous_buffer[1].a = tev_previous.a;
|
||||
tev_previous_buffer[0] = tev_previous_buffer[1];
|
||||
|
||||
tev_previous = tev_combine(2);
|
||||
tev_previous_buffer[0] = tev_previous_buffer[1];
|
||||
if ((u_textureEnvUpdateBuffer & 0x400u) != 0u) tev_previous_buffer[1].rgb = tev_previous.rgb;
|
||||
if ((u_textureEnvUpdateBuffer & 0x4000u) != 0u) tev_previous_buffer[1].a = tev_previous.a;
|
||||
if (i < 4) {
|
||||
if ((u_textureEnvUpdateBuffer & (0x100u << i)) != 0u) {
|
||||
tev_previous_buffer[1].rgb = tev_previous.rgb;
|
||||
}
|
||||
|
||||
tev_previous = tev_combine(3);
|
||||
tev_previous_buffer[0] = tev_previous_buffer[1];
|
||||
if ((u_textureEnvUpdateBuffer & 0x800u) != 0u) tev_previous_buffer[1].rgb = tev_previous.rgb;
|
||||
if ((u_textureEnvUpdateBuffer & 0x8000u) != 0u) tev_previous_buffer[1].a = tev_previous.a;
|
||||
if ((u_textureEnvUpdateBuffer & (0x1000u << i)) != 0u) {
|
||||
tev_previous_buffer[1].a = tev_previous.a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tev_previous = tev_combine(4);
|
||||
tev_previous_buffer[0] = tev_previous_buffer[1];
|
||||
|
||||
fragColour = tev_combine(5);
|
||||
fragColour = tev_previous;
|
||||
|
||||
if (tev_unimplemented_source) {
|
||||
// fragColour = vec4(1.0, 0.0, 1.0, 1.0);
|
||||
|
|
Loading…
Add table
Reference in a new issue