wip shader config
This commit is contained in:
+7
-1
@@ -4,6 +4,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "config_file.h"
|
||||
#include "file.h"
|
||||
#include "forge.h"
|
||||
#include "logs.h"
|
||||
@@ -126,15 +127,18 @@ void forge_run(Parameters params) {
|
||||
Window *window;
|
||||
Timer timer;
|
||||
Context context;
|
||||
ConfigFile shader_config;
|
||||
|
||||
init_files(params.frag_path, &common_shader_code, fragment_shaders);
|
||||
|
||||
shader_config = config_file_read(params.frag_config_path, false);
|
||||
|
||||
window = window_init(PACKAGE " " VERSION, params.screen, error_callback,
|
||||
key_callback);
|
||||
|
||||
context = window_get_context(window);
|
||||
|
||||
program = shaders_init(fragment_shaders, context);
|
||||
program = shaders_init(fragment_shaders, shader_config, context);
|
||||
|
||||
if (program.error) {
|
||||
window_close(window, true);
|
||||
@@ -151,4 +155,6 @@ void forge_run(Parameters params) {
|
||||
window_close(window, true);
|
||||
|
||||
free_files(&common_shader_code, fragment_shaders);
|
||||
|
||||
config_file_free(shader_config);
|
||||
}
|
||||
+5
-4
@@ -160,14 +160,14 @@ static void init_single_program(ShaderProgram *program, unsigned int i,
|
||||
glGetUniformLocation(program->programs[i], "iResolution");
|
||||
|
||||
for (j = 0; j < SUB_COUNT; j++) {
|
||||
sprintf(name, "src_%d", j);
|
||||
sprintf(name, "src_%d", j + 1);
|
||||
program->sub_src_indexes[i][j] =
|
||||
glGetSubroutineIndex(program->programs[i], GL_FRAGMENT_SHADER, name);
|
||||
sprintf(name, "fx_%d", j);
|
||||
sprintf(name, "fx_%d", j + 1);
|
||||
program->sub_fx_indexes[i][j] =
|
||||
glGetSubroutineIndex(program->programs[i], GL_FRAGMENT_SHADER, name);
|
||||
if (j < 2) {
|
||||
sprintf(name, "mix_%d", j);
|
||||
sprintf(name, "mix_%d", j + 1);
|
||||
program->sub_mix_indexes[i][j] = glGetSubroutineIndex(
|
||||
program->programs[i], GL_FRAGMENT_SHADER, name);
|
||||
}
|
||||
@@ -194,7 +194,8 @@ static void init_single_program(ShaderProgram *program, unsigned int i,
|
||||
log_success("Program %d initialized", i + 1);
|
||||
}
|
||||
|
||||
ShaderProgram shaders_init(File *fragment_shaders, Context context) {
|
||||
ShaderProgram shaders_init(File *fragment_shaders, ConfigFile shader_config,
|
||||
Context context) {
|
||||
unsigned int i;
|
||||
ShaderProgram program;
|
||||
|
||||
|
||||
+2
-1
@@ -3,7 +3,8 @@
|
||||
#ifndef SHADERS_H
|
||||
#define SHADERS_H
|
||||
|
||||
ShaderProgram shaders_init(File *fragment_shader, Context context);
|
||||
ShaderProgram shaders_init(File *fragment_shaders, ConfigFile shader_config,
|
||||
Context context);
|
||||
|
||||
void shaders_update(ShaderProgram program, File *fragment_shaders,
|
||||
unsigned int i);
|
||||
|
||||
Reference in New Issue
Block a user