ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

Commit: 66ad2b2da60bf90fbf833e27040010be19ed5e69
Parent: ec81add91472dbd4a4c5bcbcc448cb88584f8163
Author: Randy Palamar
Date:   Fri, 18 Jul 2025 07:12:26 -0600

build: matlab: generate shader stage enumerants

Diffstat:
Mbuild.c | 23++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/build.c b/build.c @@ -716,7 +716,7 @@ stream_begin_matlab_enumeration(Stream *s, s8 name, s8 type) function void stream_append_matlab_enumeration_field(Stream *s, s8 field) { - stream_append_s8s(s, s8(" "), field, s8(",\n")); + stream_append_s8s(s, s8(" "), field, s8("\n")); } function void @@ -734,19 +734,28 @@ build_matlab_bindings(Arena arena) char *feedback_out = OUTPUT("matlab/LiveFeedbackFlags.m"); /* NOTE(rnp): if one file is outdated all files are outdated */ if (needs_rebuild(feedback_out, "beamformer_parameters.h")) { - Stream sb = arena_stream(arena); + b32 write_result; #define X(name, flag) stream_append_matlab_enumeration_field(&sb, s8(#name " (" str(flag) ")")); - stream_begin_matlab_enumeration(&sb, s8("LiveFeedbackFlags"), s8("int32")); BEAMFORMER_LIVE_IMAGING_DIRTY_FLAG_LIST stream_end_matlab_enumeration(&sb); - result &= os_write_new_file(feedback_out, stream_to_s8(&sb)); - + write_result = os_write_new_file(feedback_out, stream_to_s8(&sb)); #undef X - - if (!result) build_log_failure("%s", feedback_out); + if (!write_result) build_log_failure("%s", feedback_out); + result &= write_result; + + sb.widx = 0; + char *shader_stages_out = OUTPUT("matlab/OGLShaderStage.m"); + #define X(name, n, ...) stream_append_matlab_enumeration_field(&sb, s8(#name " (" str(n) ")")); + stream_begin_matlab_enumeration(&sb, s8("OGLShaderStage"), s8("int32")); + COMPUTE_SHADERS + stream_end_matlab_enumeration(&sb); + write_result = os_write_new_file(shader_stages_out, stream_to_s8(&sb)); + #undef X + if (!write_result) build_log_failure("%s", shader_stages_out); + result &= write_result; } return result;