parsing output arguments

This commit is contained in:
Rakarake 2026-02-22 18:08:24 +01:00
parent ace8497478
commit 24de6d4133
3 changed files with 20 additions and 4 deletions

View file

@ -14,15 +14,30 @@
int main(int argc, char *argv[]) {
char *shader_path = NULL;
int output_type = OUTPUT_WINDOW;
bool currently_reading_output = false;
char **output_list = NULL;
int output_count = 0;
// syntax: --window for a normal window or --layer for a wallpaper
for (int i = 1; i < argc; i++) {
if (strcmp("--window", argv[i]) == 0) {
output_type = OUTPUT_WINDOW;
currently_reading_output = false;
}
else if (strcmp("--layer", argv[i]) == 0) {
output_type = OUTPUT_LAYER;
currently_reading_output = false;
}
else {
else if (strcmp("--output", argv[i]) == 0) {
output_list = &argv[i];
currently_reading_output = true;
}
else if (strcmp("--", argv[i]) == 0) {
currently_reading_output = false;
}
else if (currently_reading_output) {
output_count++;
}
else if (!currently_reading_output) {
// path to fragment shader
if (shader_path != NULL) {
fprintf(stderr, "tried supplying '%s' as a shader file while one has already been selected\n", argv[i]);
@ -36,7 +51,7 @@ int main(int argc, char *argv[]) {
return 1;
}
struct client_state *state = wayland_init(output_type);
struct client_state *state = wayland_init(output_type, output_list, output_count);
Renderer renderer = new_renderer();