feat: forge_project.cfg

This commit is contained in:
2025-11-07 19:23:27 +01:00
parent 28987bbb54
commit 63284d34ef
18 changed files with 37 additions and 25 deletions
+11 -11
View File
@@ -20,8 +20,8 @@ static void print_help(int status_code) {
"[-s=SCREEN] "
"[-m=SCREEN] "
"[-mo] "
"[-f=DIR_PATH] "
"[-c=CFG_PATH] "
"[-p=PROJECT_PATH] "
"[-c=CFG_FILE] "
"[-sf=STATE_PATH] "
"[-ls / -nls] "
"[-ss / -nss] "
@@ -40,10 +40,10 @@ static void print_help(int status_code) {
" -s, --screen output screen number (default: primary)\n"
" -m, --monitor monitor screen number (default: none)\n"
" -mo, --monitor-only no output screen\n"
" -f, --frag fragment shaders directory "
"(default: " DATADIR "/shaders)\n"
" -c, --config fragment shaders config file "
"(default: " DATADIR "/default.cfg)\n"
" -p, --project forge project directory "
"(default: " DATADIR "/default)\n"
" -c, --config config file name "
"(default: forge_project.cfg)\n"
" -sf, --state-file saved state file (default: "
"forge_saved_state.txt)\n"
" -ls, --load-state load saved state (default)\n"
@@ -105,8 +105,8 @@ Parameters args_parse(int argc, char **argv) {
params.output_screen = 0;
params.monitor = false;
params.monitor_screen = 0;
strncpy(params.frag_path, DATADIR "/shaders", STR_LEN);
strncpy(params.config_path, DATADIR "/default.cfg", STR_LEN);
strncpy(params.project_path, DATADIR "/default", STR_LEN);
strncpy(params.config_file, "forge_project.cfg", STR_LEN);
strncpy(params.state_file, "forge_saved_state.txt", STR_LEN);
params.load_state = true;
params.save_state = true;
@@ -131,10 +131,10 @@ Parameters args_parse(int argc, char **argv) {
params.hot_reload = true;
} else if (is_arg(arg, "-s") || is_arg(arg, "--screen")) {
params.output_screen = parse_uint(arg, value);
} else if (is_arg(arg, "-f") || is_arg(arg, "--frag")) {
strncpy(params.frag_path, value, STR_LEN);
} else if (is_arg(arg, "-p") || is_arg(arg, "--project")) {
strncpy(params.project_path, value, STR_LEN);
} else if (is_arg(arg, "-c") || is_arg(arg, "--config")) {
strncpy(params.config_path, value, STR_LEN);
strncpy(params.config_file, value, STR_LEN);
} else if (is_arg(arg, "-sf") || is_arg(arg, "--state-file")) {
strncpy(params.state_file, value, STR_LEN);
} else if (is_arg(arg, "-ls") || is_arg(arg, "--load-state")) {
+7 -2
View File
@@ -233,19 +233,24 @@ static void loop(bool hr, bool trace_fps) {
void forge_run(Parameters params) {
unsigned int frag_count, in_count;
char config_path[STR_LEN];
context = shared_init_context("/" PACKAGE "_context");
context->stop = false;
config = config_file_read(params.config_path);
strncpy(config_path, params.project_path, STR_LEN);
strcat(config_path, "/");
strcat(config_path, params.config_file);
config = config_file_read(config_path);
frag_count = config_file_get_int(config, "FRAG_COUNT", 1);
in_count = config_file_get_int(config, "IN_COUNT", 0);
state_config = state_parse_config(config);
init_files(params.frag_path, frag_count);
init_files(params.project_path, frag_count);
init_inputs(params.video_in, params.video_size);
+2 -2
View File
@@ -35,8 +35,8 @@ typedef struct Parameters {
unsigned int output_screen;
bool monitor;
unsigned int monitor_screen;
char frag_path[STR_LEN];
char config_path[STR_LEN];
char project_path[STR_LEN];
char config_file[STR_LEN];
char state_file[STR_LEN];
bool load_state;
bool save_state;