fix syntax
This commit is contained in:
135
geometry.c
135
geometry.c
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user