Get rid of extra_load(), rename parameters

This commit is contained in:
Matthias Schiffer 2016-02-03 14:19:09 +01:00
parent 22e600bde8
commit d5375d5308
5 changed files with 33 additions and 36 deletions

View file

@ -36,9 +36,18 @@
char *filename; char *filename;
float current_time = 0; float current_time = 0;
GLint param0 = 0;
GLint param1 = 0;
GLint param2 = 0;
static GLint time_loc; static GLint time_loc;
static GLint res_loc; static GLint res_loc;
static GLint param0_loc;
static GLint param1_loc;
static GLint param2_loc;
static char * readfile(const char *name) { static char * readfile(const char *name) {
FILE *f = fopen(name, "r"); FILE *f = fopen(name, "r");
@ -114,7 +123,9 @@ void load(void) {
time_loc = glGetUniformLocation(program, "time"); time_loc = glGetUniformLocation(program, "time");
res_loc = glGetUniformLocation(program, "res"); res_loc = glGetUniformLocation(program, "res");
extra_load(program); param0_loc = glGetUniformLocation(program, "param0");
param1_loc = glGetUniformLocation(program, "param1");
param2_loc = glGetUniformLocation(program, "param2");
glUseProgram(program); glUseProgram(program);
@ -135,6 +146,10 @@ void render(int width, int height) {
glUniform1f(time_loc, current_time); glUniform1f(time_loc, current_time);
glUniform2f(res_loc, width, height); glUniform2f(res_loc, width, height);
glUniform1i(param0_loc, param0);
glUniform1i(param1_loc, param1);
glUniform1i(param2_loc, param2);
glBegin(GL_QUADS); glBegin(GL_QUADS);
glVertex2f(-1, -1); glVertex2f(-1, -1);
glVertex2f(1, -1); glVertex2f(1, -1);

View file

@ -34,9 +34,11 @@
extern char *filename; extern char *filename;
extern float current_time; extern float current_time;
extern GLint param0;
extern GLint param1;
extern GLint param2;
void load(void); void load(void);
void init(void); void init(void);
void render(int width, int height); void render(int width, int height);
void extra_load(GLuint program);

View file

@ -5,9 +5,9 @@ out vec4 fragColor;
uniform vec2 res; uniform vec2 res;
uniform float time; uniform float time;
uniform int param_k; uniform int param0;
uniform int param_l; uniform int param1;
uniform int param_m; uniform int param2;
const float sharpness = 300; const float sharpness = 300;
@ -35,10 +35,10 @@ void main(void) {
float scene = 0; float scene = 0;
int n = param_k + 32; int n = param0 + 32;
float k = param_l; float k = param1;
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
float c = square(vec2(0.5, 0) * rot(PI/2*(4.0*i/n)) * vec2(1, 1), 0.3 + 0.02 * param_m, -PI/2*(k*i/n + time/1500), p * (1 + 0.03*param_m)); float c = square(vec2(0.5, 0) * rot(PI/2*(4.0*i/n)) * vec2(1, 1), 0.3 + 0.02 * param2, -PI/2*(k*i/n + time/1500), p * (1 + 0.03*param2));
scene = abs(scene - c); scene = abs(scene - c);
} }

View file

@ -43,14 +43,6 @@
static float speed = 1.0; static float speed = 1.0;
static unsigned previous_ticks = 0; static unsigned previous_ticks = 0;
static GLint param_k = 0;
static GLint param_l = 0;
static GLint param_m = 0;
static GLint param_k_loc;
static GLint param_l_loc;
static GLint param_m_loc;
#ifdef USE_INOTIFY #ifdef USE_INOTIFY
@ -100,20 +92,11 @@ static void check_reload(void) {}
#endif #endif
void extra_load(GLuint program) {
param_k_loc = glGetUniformLocation(program, "param_k");
param_l_loc = glGetUniformLocation(program, "param_l");
param_m_loc = glGetUniformLocation(program, "param_m");
}
static void update(void) { static void update(void) {
unsigned ticks = SDL_GetTicks(); unsigned ticks = SDL_GetTicks();
current_time += speed * (ticks - previous_ticks); current_time += speed * (ticks - previous_ticks);
previous_ticks = ticks; previous_ticks = ticks;
glUniform1i(param_k_loc, param_k);
glUniform1i(param_l_loc, param_l);
glUniform1i(param_m_loc, param_m);
} }
static void handle_input(const char *input) { static void handle_input(const char *input) {
@ -129,7 +112,7 @@ static void handle_input(const char *input) {
break; break;
case 'R': case 'R':
param_k = param_l = param_m = 0; param0 = param1 = param2 = 0;
break; break;
case '+': case '+':
@ -191,27 +174,27 @@ int main(int argc, char *argv[]) {
case SDL_KEYDOWN: case SDL_KEYDOWN:
switch (e.key.keysym.sym) { switch (e.key.keysym.sym) {
case SDLK_PAGEDOWN: case SDLK_PAGEDOWN:
param_k++; param0++;
break; break;
case SDLK_PAGEUP: case SDLK_PAGEUP:
param_k--; param0--;
break; break;
case SDLK_RIGHT: case SDLK_RIGHT:
param_l++; param1++;
break; break;
case SDLK_LEFT: case SDLK_LEFT:
param_l--; param1--;
break; break;
case SDLK_DOWN: case SDLK_DOWN:
param_m++; param2++;
break; break;
case SDLK_UP: case SDLK_UP:
param_m--; param2--;
break; break;
case SDLK_ESCAPE: case SDLK_ESCAPE:

View file

@ -36,9 +36,6 @@
#include <SDL2/SDL_opengl.h> #include <SDL2/SDL_opengl.h>
void extra_load(GLuint program) {
}
static void savePNG(int width, int height, const char *output_dir) { static void savePNG(int width, int height, const char *output_dir) {
uint8_t pixels[width*height*4]; uint8_t pixels[width*height*4];
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, pixels); glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, pixels);