add debug info

This commit is contained in:
2025-09-20 20:31:51 +02:00
parent 3d5a6fc6ac
commit 3b48880f58
5 changed files with 34 additions and 24 deletions
+7 -2
View File
@@ -1,6 +1,6 @@
TARGET ?= forge TARGET ?= forge
INSTALL_DIR ?= $(HOME)/.local/bin INSTALL_DIR ?= $(HOME)/.local/bin
TEST_ARGS ?= --hot-reload --frag=./shaders --frag-config=./config/shaders.cfg --demo --monitor --internal-size=480 TEST_ARGS ?= --frag=./shaders --frag-config=./config/shaders.cfg --monitor --internal-size=480
SHELL := /bin/bash SHELL := /bin/bash
.PHONY: build .PHONY: build
@@ -18,8 +18,13 @@ build:
-DGLFW_INCLUDE_NONE \ -DGLFW_INCLUDE_NONE \
-o build/$(TARGET) -o build/$(TARGET)
.PHONY: run
run: build run: build
./build/$(TARGET) $(TEST_ARGS) ./build/$(TARGET) $(TEST_ARGS) --hot-reload
.PHONY: demo
demo: build
./build/$(TARGET) $(TEST_ARGS) --demo
.PHONY: install .PHONY: install
install: build install: build
+4 -13
View File
@@ -1129,7 +1129,7 @@ subroutine(src_stage_sub) vec4 src_9(vec2 vUV, int seed)
{ {
// start // start
vec2 uv0 = vUV.st; vec2 uv0 = vUV.st;
float ratio = iResolution.x / iResolution.y; float ratio = iResolution.x / iResolution.y;
vec2 uv1 = (uv0 - .5) * vec2(ratio, 1); vec2 uv1 = (uv0 - .5) * vec2(ratio, 1);
@@ -1137,16 +1137,7 @@ subroutine(src_stage_sub) vec4 src_9(vec2 vUV, int seed)
// logic // logic
const int text[5] = {0x66, 0x70, 0x73, 0x00, 0x00}; return texture(tex0, vUV);
vec2 uv2 = uv1 * 20;
float v = 0;
v += write_int(uv2, vec2(0.5, 0.5), iFPS, 3);
v += write_5(uv2, vec2(4.0, 0.5), text);
return vec4(v);
} }
// TODO SRC 10 // TODO SRC 10
@@ -1285,7 +1276,7 @@ subroutine(src_stage_sub) vec4 src_16(vec2 vUV, int seed)
rect(uv2, vec2(0.55, 2), vec2(1.5, 0.1)) + rect(uv2, vec2(0.55, 2), vec2(1.5, 0.1)) +
rect(uv2, vec2(2, 1.55), vec2(0.1, 0.55)) + rect(uv2, vec2(2, 1.55), vec2(0.1, 0.55)) +
rect(uv2, vec2(7.5, 0), vec2(1.5, 0.1)) + rect(uv2, vec2(7.5, 0), vec2(1.5, 0.1)) +
h_rect(uv2, vec2(-9, 5.1), vec2(1), 0.1); h_rect(uv2, vec2(-9, -3.9), vec2(1), 0.1);
// show selected src/fx // show selected src/fx
f += char_at(uv2, vec2(-5.4, 1.45), hex_chars[selected_srca]); f += char_at(uv2, vec2(-5.4, 1.45), hex_chars[selected_srca]);
@@ -1315,7 +1306,7 @@ subroutine(src_stage_sub) vec4 src_16(vec2 vUV, int seed)
f += (selected_srcb == 0 || selected_srcb % 5 != 0 && selected_srcb >= 8) ? rect(uv2, vec2(-6.5, -2), vec2(0.5, 0.1)) + rect(uv2, vec2(0, -4), vec2(7, 0.1)) + rect(uv2, vec2(-7, -3), vec2(0.1, 1.1)) + rect(uv2, vec2(7, -2), vec2(0.1, 2.1)) : 0; f += (selected_srcb == 0 || selected_srcb % 5 != 0 && selected_srcb >= 8) ? rect(uv2, vec2(-6.5, -2), vec2(0.5, 0.1)) + rect(uv2, vec2(0, -4), vec2(7, 0.1)) + rect(uv2, vec2(-7, -3), vec2(0.1, 1.1)) + rect(uv2, vec2(7, -2), vec2(0.1, 2.1)) : 0;
// show page // show page
f += char_at(uv2, vec2(-9.2, 4.3), hex_chars[page]); f += char_at(uv2, vec2(-9.2, -4.3), hex_chars[page]);
// show fx values // show fx values
f = mix(f, 1 - f, rect(uv2, vec2(-2, 1.1 + 0.9 * fxa_value), vec2(0.9, 0.9 * fxa_value))); f = mix(f, 1 - f, rect(uv2, vec2(-2, 1.1 + 0.9 * fxa_value), vec2(0.9, 0.9 * fxa_value)));
+13 -1
View File
@@ -9,7 +9,7 @@ float s(vec2 uv, float x0, float y0) {
step(-y0 - 1, -uv.y); step(-y0 - 1, -uv.y);
} }
const int texts[8][5] = { const int texts[11][5] = {
{0x49, 0x4E, 0x20, 0x41, 0x00}, // IN A {0x49, 0x4E, 0x20, 0x41, 0x00}, // IN A
{0x49, 0x4E, 0x20, 0x42, 0x00}, // IN B {0x49, 0x4E, 0x20, 0x42, 0x00}, // IN B
{0x53, 0x52, 0x43, 0x20, 0x41}, // SRC A {0x53, 0x52, 0x43, 0x20, 0x41}, // SRC A
@@ -18,6 +18,9 @@ const int texts[8][5] = {
{0x46, 0x58, 0x20, 0x42, 0x00}, // FX B {0x46, 0x58, 0x20, 0x42, 0x00}, // FX B
{0x41, 0x2B, 0x42, 0x00, 0x00}, // A+B {0x41, 0x2B, 0x42, 0x00, 0x00}, // A+B
{0x4D, 0x46, 0x58, 0x00, 0x00}, // MFX {0x4D, 0x46, 0x58, 0x00, 0x00}, // MFX
{0x46, 0x50, 0x53, 0x00, 0x00}, // FPS
{0x54, 0x45, 0x4D, 0x50, 0x4F}, // TEMPO
{0x54, 0x49, 0x4D, 0x45, 0x00}, // TIME
}; };
void main() { void main() {
@@ -51,5 +54,14 @@ void main() {
t += write_5(uv3, vec2(-17,8), texts[6]); t += write_5(uv3, vec2(-17,8), texts[6]);
t += write_5(uv3, vec2(19,8), texts[7]); t += write_5(uv3, vec2(19,8), texts[7]);
t += write_5(uv3, vec2(-23,8), texts[8]);
t += write_int(uv3, vec2(-27,8), iFPS, 3);
t += write_5(uv3, vec2(-23,6), texts[9]);
t += write_int(uv3, vec2(-27,6), int(iTempo), 3);
t += write_5(uv3, vec2(-23,4), texts[10]);
t += write_int(uv3, vec2(-29,4), int(iTime), 5);
fragColor = mix(c, 1 - c, t); fragColor = mix(c, 1 - c, t);
} }
+3 -5
View File
@@ -54,12 +54,10 @@ static void init_context(ShaderProgram program, Context *context,
size = program.frag_count * program.sub_type_count; size = program.frag_count * program.sub_type_count;
context->sub_state = malloc(size * sizeof(unsigned int)); context->sub_state = malloc(size * sizeof(unsigned int));
memset(context->sub_state, 0, sizeof(&context->sub_state));
if (params.demo) { for (i = 0; i < size; i++) {
for (i = 0; i < size; i++) { context->sub_state[i] =
context->sub_state[i] = rand_uint(program.sub_variant_count); params.demo ? rand_uint(program.sub_variant_count) : 0;
}
} }
context->seeds = malloc(program.frag_count * sizeof(unsigned int)); context->seeds = malloc(program.frag_count * sizeof(unsigned int));
+7 -3
View File
@@ -299,9 +299,6 @@ static void update_viewport(ShaderProgram program, Context context) {
// viewport changed // viewport changed
if (context.width != program.last_width || if (context.width != program.last_width ||
context.height != program.last_height) { context.height != program.last_height) {
// update viewport
glViewport(0, 0, context.width, context.height);
// clean and resize all textures // clean and resize all textures
for (i = 0; i < program.tex_count; i++) { for (i = 0; i < program.tex_count; i++) {
glActiveTexture(GL_TEXTURE0 + i); glActiveTexture(GL_TEXTURE0 + i);
@@ -327,12 +324,19 @@ static void use_program(ShaderProgram program, int i, bool output,
glUseProgram(program.programs[i]); glUseProgram(program.programs[i]);
if (output) { if (output) {
glViewport(0, 0, context.width, context.height);
// use default framebuffer (output) // use default framebuffer (output)
glBindFramebuffer(GL_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
// clear buffer // clear buffer
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
} else { } else {
glViewport(
0, 0,
(int)(context.internal_size * (float)context.width / context.height),
context.internal_size);
// use memory framebuffer // use memory framebuffer
glBindFramebuffer(GL_FRAMEBUFFER, program.frame_buffers[i]); glBindFramebuffer(GL_FRAMEBUFFER, program.frame_buffers[i]);
glDrawBuffer(GL_COLOR_ATTACHMENT0); glDrawBuffer(GL_COLOR_ATTACHMENT0);