fix syntax

This commit is contained in:
2026-02-17 16:03:43 -06:00
parent 4e1b63fd0e
commit e78faccab8
8 changed files with 234 additions and 220 deletions

View File

@@ -241,13 +241,11 @@ JSValue quads_to_mesh(JSContext *js, text_vert *buffer)
{
size_t verts = arrlen(buffer);
JSValue ret = JS_NewObject(js);
// Allocate flat arrays for xy, uv, and color data
size_t xy_size = verts * 2 * sizeof(float);
size_t uv_size = verts * 2 * sizeof(float);
size_t color_size = verts * sizeof(SDL_FColor);
float *xy_data = malloc(xy_size);
float *uv_data = malloc(uv_size);
SDL_FColor *color_data = malloc(color_size);
@@ -256,10 +254,10 @@ JSValue quads_to_mesh(JSContext *js, text_vert *buffer)
for (int i = 0; i < verts; i++) {
xy_data[i*2] = buffer[i].pos.x;
xy_data[i*2+1] = buffer[i].pos.y;
uv_data[i*2] = buffer[i].uv.x;
uv_data[i*2+1] = buffer[i].uv.y;
color_data[i].r = buffer[i].color.x;
color_data[i].g = buffer[i].color.y;
color_data[i].b = buffer[i].color.z;
@@ -268,7 +266,7 @@ JSValue quads_to_mesh(JSContext *js, text_vert *buffer)
size_t quads = verts/4;
size_t count = quads*6;
// Create indices
uint16_t *indices = malloc(sizeof(uint16_t)*count);
for (int i = 0, v = 0; i < count; i += 6, v += 4) {
@@ -280,24 +278,25 @@ JSValue quads_to_mesh(JSContext *js, text_vert *buffer)
indices[i+5] = v+1;
}
// Create blobs for geometry data
JS_SetPropertyStr(js, ret, "xy", js_new_blob_stoned_copy(js, xy_data, xy_size));
JS_SetPropertyStr(js, ret, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "uv", js_new_blob_stoned_copy(js, uv_data, uv_size));
JS_SetPropertyStr(js, ret, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "color", js_new_blob_stoned_copy(js, color_data, color_size));
JS_SetPropertyStr(js, ret, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, ret, "indices", js_new_blob_stoned_copy(js, indices, sizeof(uint16_t)*count));
JS_SetPropertyStr(js, ret, "num_vertices", JS_NewInt32(js, verts));
JS_SetPropertyStr(js, ret, "num_indices", JS_NewInt32(js, count));
JS_SetPropertyStr(js, ret, "size_indices", JS_NewInt32(js, 2)); // uint16_t size
JS_FRAME(js);
JS_ROOT(ret, JS_NewObject(js));
JS_SetPropertyStr(js, ret.val, "xy", js_new_blob_stoned_copy(js, xy_data, xy_size));
JS_SetPropertyStr(js, ret.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret.val, "uv", js_new_blob_stoned_copy(js, uv_data, uv_size));
JS_SetPropertyStr(js, ret.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret.val, "color", js_new_blob_stoned_copy(js, color_data, color_size));
JS_SetPropertyStr(js, ret.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, ret.val, "indices", js_new_blob_stoned_copy(js, indices, sizeof(uint16_t)*count));
JS_SetPropertyStr(js, ret.val, "num_vertices", JS_NewInt32(js, verts));
JS_SetPropertyStr(js, ret.val, "num_indices", JS_NewInt32(js, count));
JS_SetPropertyStr(js, ret.val, "size_indices", JS_NewInt32(js, 2)); // uint16_t size
free(xy_data);
free(uv_data);
free(color_data);
free(indices);
return ret;
JS_RETURN(ret.val);
}
JSC_CCALL(gpu_slice9,
@@ -724,31 +723,28 @@ JSC_CCALL(geometry_tilemap_to_data,
}
JS_FreeValue(js, tiles_array);
// Create result object with blob data
ret = JS_NewObject(js);
// Create blobs for each data type
JSValue xy_blob = js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float));
JSValue uv_blob = js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float));
JSValue color_blob = js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor));
JSValue index_blob = js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t));
JS_SetPropertyStr(js, ret, "xy", xy_blob);
JS_SetPropertyStr(js, ret, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "uv", uv_blob);
JS_SetPropertyStr(js, ret, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "color", color_blob);
JS_SetPropertyStr(js, ret, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, ret, "indices", index_blob);
JS_SetPropertyStr(js, ret, "num_vertices", JS_NewInt32(js, vertex_count));
JS_SetPropertyStr(js, ret, "num_indices", JS_NewInt32(js, index_count));
JS_SetPropertyStr(js, ret, "size_indices", JS_NewInt32(js, 2)); // using uint16_t
JS_FRAME(js);
JS_ROOT(result, JS_NewObject(js));
JS_SetPropertyStr(js, result.val, "xy", js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "uv", js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "color", js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor)));
JS_SetPropertyStr(js, result.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, result.val, "indices", js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t)));
JS_SetPropertyStr(js, result.val, "num_vertices", JS_NewInt32(js, vertex_count));
JS_SetPropertyStr(js, result.val, "num_indices", JS_NewInt32(js, index_count));
JS_SetPropertyStr(js, result.val, "size_indices", JS_NewInt32(js, 2)); // using uint16_t
free(xy_data);
free(uv_data);
free(color_data);
free(index_data);
JS_RestoreFrame(_js_ctx, _js_gc_frame, _js_local_frame);
ret = result.val;
)
static void print_buffers(float *xy_data, float *uv_data, SDL_FColor *color_data, uint16_t *index_data, int vertex_count, int index_count)
@@ -954,29 +950,26 @@ JSC_CCALL(geometry_sprites_to_data,
}
// Create result object with blob data
ret = JS_NewObject(js);
// Create blobs for each data type
JSValue xy_blob = js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float));
JSValue uv_blob = js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float));
JSValue color_blob = js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor));
JSValue index_blob = js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t));
JS_SetPropertyStr(js, ret, "xy", xy_blob);
JS_SetPropertyStr(js, ret, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "uv", uv_blob);
JS_SetPropertyStr(js, ret, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "color", color_blob);
JS_SetPropertyStr(js, ret, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, ret, "indices", index_blob);
JS_SetPropertyStr(js, ret, "num_vertices", JS_NewInt32(js, vertex_count));
JS_SetPropertyStr(js, ret, "num_indices", JS_NewInt32(js, index_count));
JS_SetPropertyStr(js, ret, "size_indices", JS_NewInt32(js, 2)); // using uint16_t
JS_FRAME(js);
JS_ROOT(result, JS_NewObject(js));
JS_SetPropertyStr(js, result.val, "xy", js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "uv", js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "color", js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor)));
JS_SetPropertyStr(js, result.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, result.val, "indices", js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t)));
JS_SetPropertyStr(js, result.val, "num_vertices", JS_NewInt32(js, vertex_count));
JS_SetPropertyStr(js, result.val, "num_indices", JS_NewInt32(js, index_count));
JS_SetPropertyStr(js, result.val, "size_indices", JS_NewInt32(js, 2)); // using uint16_t
free(xy_data);
free(uv_data);
free(color_data);
free(index_data);
JS_RestoreFrame(_js_ctx, _js_gc_frame, _js_local_frame);
ret = result.val;
)
JSC_CCALL(geometry_transform_xy_blob,
@@ -1139,19 +1132,17 @@ JSC_CCALL(geometry_make_rect_quad,
color_data[i] = color;
// Create result object
ret = JS_NewObject(js);
JSValue xy_blob = js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float));
JSValue uv_blob = js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float));
JSValue color_blob = js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor));
JS_SetPropertyStr(js, ret, "xy", xy_blob);
JS_SetPropertyStr(js, ret, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "uv", uv_blob);
JS_SetPropertyStr(js, ret, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, ret, "color", color_blob);
JS_SetPropertyStr(js, ret, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, ret, "num_vertices", JS_NewInt32(js, vertex_count));
JS_FRAME(js);
JS_ROOT(result, JS_NewObject(js));
JS_SetPropertyStr(js, result.val, "xy", js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "uv", js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float)));
JS_SetPropertyStr(js, result.val, "color", js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor)));
JS_SetPropertyStr(js, result.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor)));
JS_SetPropertyStr(js, result.val, "num_vertices", JS_NewInt32(js, vertex_count));
JS_RestoreFrame(_js_ctx, _js_gc_frame, _js_local_frame);
ret = result.val;
)
JSC_CCALL(geometry_weave,