handmade/glsl/header.f.glsl
Bubblegumdrop 2403f060eb Add SHADER_PROGRAM_REFRESH, and a bunch of debug crap because of events.
So when PACKET_SDL_EVENT was SDL_USEREVENT, things worked fine in the
main loop it would see SDL_USEREVENT and send it off to my_SDL_UserEvent.

But when I started adding more events, the SDL_UserEvent paradigm given
in the SDL Wiki stopped working.

The example here is broken: https://wiki.libsdl.org/SDL_AddTimer
The example here is working and "correct": https://wiki.libsdl.org/SDL_UserEvent

All SDL_RegisterEvents is increase a static counter. SDL doesn't
actually use these events anyway. It's purely symbolic, as far as I can tell.

So anyway. Now events work after a bunch of debugging.

SHADER_PROGRAM_REFRESH is the second user event I've done.

The ShaderProgram runs an SDL_TimerID that looks at mVertexPath,
mGeometryPath if present, and mFragmentPath. mVertexPath and
mFragmentPath are required by Compile3ShaderBuffers.
In the future I'd like to change the way this class behaves.
2022-01-09 23:37:48 -05:00

47 lines
853 B
GLSL

/* vim: set ft=c: */
#version 440 core
uniform float iChannelTime[4];
uniform float iFrameRate;
uniform float iSampleRate;
uniform float iTime;
uniform float iTimeDelta;
uniform int iFrame;
uniform vec3 iChannelResolution[4];
uniform vec3 iResolution;
uniform vec4 iDate;
uniform vec4 iMouse;
uniform sampler2D iChannel0;
uniform sampler2D iChannel1;
uniform sampler2D iChannel2;
uniform sampler2D iChannel3;
/*
TODO: Generate this section
uniform sampler2D iChannel0;
uniform samplerCube iChannel0;
uniform sampler3D iChannel0;
uniform sampler2D iChannel0;
uniform struct {
sampler2D sampler;
samplerCube sampler;
sampler3D sampler;
vec3 size;
float time;
int loaded;
} iCh0;
*/
out vec4 fragColor;
in vec2 TexCoords;
void mainImage (out vec4, in vec2);
void main (void) {
mainImage (fragColor, gl_FragCoord.xy);
}