wip shader config

This commit is contained in:
2025-09-18 20:43:56 +02:00
parent 876bebd2c8
commit c05a193b4d
6 changed files with 51 additions and 27 deletions
+7 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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);