This commit is contained in:
2026-01-20 12:04:30 -06:00
parent 187879a7c6
commit 313a2e7eeb
8 changed files with 79 additions and 78 deletions

View File

@@ -1,5 +1,5 @@
function tohex(n) { function tohex(n) {
var s = floor(n).toString(16); var s = text(floor(n), 16)
if (length(s) == 1) s = "0" + s; if (length(s) == 1) s = "0" + s;
return upper(s); return upper(s);
}; };

View File

@@ -30,6 +30,7 @@ var MovementSystem_prototype = {
this.turn = (this.turn == 'white') ? 'black' : 'white'; this.turn = (this.turn == 'white') ? 'black' : 'white';
return true; return true;
}
} }
return MovementSystem return MovementSystem

View File

@@ -141,5 +141,5 @@ CELL_USE_INIT(
JS_SetClassProto(js, js_mersenne_class_id, proto); JS_SetClassProto(js, js_mersenne_class_id, proto);
// Return the factory function // Return the factory function
return JS_NewCFunction2(js, js_mersenne_use_call, "mersenne", 1, JS_CFUNC_constructor, 0); return JS_NewCFunction2(js, js_mersenne_use_call, "mersenne", 1, JS_CFUNC_generic, 0);
) )

View File

@@ -64,14 +64,14 @@ sdl_gpu.init = function(opts) {
_window_width = opts.width || 1280 _window_width = opts.width || 1280
_window_height = opts.height || 720 _window_height = opts.height || 720
_window = new video.window({ _window = video.window({
title: opts.title || "Prosperon", title: opts.title || "Prosperon",
width: _window_width, width: _window_width,
height: _window_height, height: _window_height,
resizable: true resizable: true
}) })
_gpu = new gpu_mod.gpu({debug: true, shaders_msl: true, lowpower: true}) _gpu =gpu_mod.gpu({debug: true, shaders_msl: true, lowpower: true})
_gpu.claim_window(_window) _gpu.claim_window(_window)
_swapchain_format = _gpu.swapchain_format(_window) _swapchain_format = _gpu.swapchain_format(_window)
@@ -83,14 +83,14 @@ sdl_gpu.init = function(opts) {
} }
// Create samplers // Create samplers
_sampler_nearest = new gpu_mod.sampler(_gpu, { _sampler_nearest =gpu_mod.sampler(_gpu, {
min_filter: "nearest", min_filter: "nearest",
mag_filter: "nearest", mag_filter: "nearest",
u: "clamp_to_edge", u: "clamp_to_edge",
v: "clamp_to_edge" v: "clamp_to_edge"
}) })
_sampler_linear = new gpu_mod.sampler(_gpu, { _sampler_linear =gpu_mod.sampler(_gpu, {
min_filter: "linear", min_filter: "linear",
mag_filter: "linear", mag_filter: "linear",
u: "clamp_to_edge", u: "clamp_to_edge",
@@ -144,7 +144,7 @@ function _load_shaders() {
return false return false
} }
_sprite_vert = new gpu_mod.shader(_gpu, { _sprite_vert =gpu_mod.shader(_gpu, {
code: sprite_vert_code, code: sprite_vert_code,
stage: "vertex", stage: "vertex",
format: "msl", format: "msl",
@@ -152,7 +152,7 @@ function _load_shaders() {
num_uniform_buffers: 1 num_uniform_buffers: 1
}) })
_sprite_frag = new gpu_mod.shader(_gpu, { _sprite_frag =gpu_mod.shader(_gpu, {
code: sprite_frag_code, code: sprite_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -162,7 +162,7 @@ function _load_shaders() {
}) })
if (blit_vert_code && blit_frag_code) { if (blit_vert_code && blit_frag_code) {
_blit_vert = new gpu_mod.shader(_gpu, { _blit_vert =gpu_mod.shader(_gpu, {
code: blit_vert_code, code: blit_vert_code,
stage: "vertex", stage: "vertex",
format: "msl", format: "msl",
@@ -170,7 +170,7 @@ function _load_shaders() {
num_uniform_buffers: 0 num_uniform_buffers: 0
}) })
_blit_frag = new gpu_mod.shader(_gpu, { _blit_frag =gpu_mod.shader(_gpu, {
code: blit_frag_code, code: blit_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -181,7 +181,7 @@ function _load_shaders() {
} }
if (threshold_frag_code) { if (threshold_frag_code) {
_threshold_frag = new gpu_mod.shader(_gpu, { _threshold_frag =gpu_mod.shader(_gpu, {
code: threshold_frag_code, code: threshold_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -192,7 +192,7 @@ function _load_shaders() {
} }
if (blur_frag_code) { if (blur_frag_code) {
_blur_frag = new gpu_mod.shader(_gpu, { _blur_frag =gpu_mod.shader(_gpu, {
code: blur_frag_code, code: blur_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -203,7 +203,7 @@ function _load_shaders() {
} }
if (mask_frag_code) { if (mask_frag_code) {
_mask_frag = new gpu_mod.shader(_gpu, { _mask_frag =gpu_mod.shader(_gpu, {
code: mask_frag_code, code: mask_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -214,7 +214,7 @@ function _load_shaders() {
} }
if (text_sdf_frag_code) { if (text_sdf_frag_code) {
_text_sdf_frag = new gpu_mod.shader(_gpu, { _text_sdf_frag =gpu_mod.shader(_gpu, {
code: text_sdf_frag_code, code: text_sdf_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -226,7 +226,7 @@ function _load_shaders() {
var text_msdf_frag_code = io.slurp("shaders/msl/text_msdf.frag.msl") var text_msdf_frag_code = io.slurp("shaders/msl/text_msdf.frag.msl")
if (text_msdf_frag_code) { if (text_msdf_frag_code) {
_text_msdf_frag = new gpu_mod.shader(_gpu, { _text_msdf_frag =gpu_mod.shader(_gpu, {
code: text_msdf_frag_code, code: text_msdf_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -238,7 +238,7 @@ function _load_shaders() {
var crt_frag_code = io.slurp("shaders/msl/crt.frag.msl") var crt_frag_code = io.slurp("shaders/msl/crt.frag.msl")
if (crt_frag_code) { if (crt_frag_code) {
_crt_frag = new gpu_mod.shader(_gpu, { _crt_frag =gpu_mod.shader(_gpu, {
code: crt_frag_code, code: crt_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -250,7 +250,7 @@ function _load_shaders() {
var accumulator_frag_code = io.slurp("shaders/msl/accumulator.frag.msl") var accumulator_frag_code = io.slurp("shaders/msl/accumulator.frag.msl")
if (accumulator_frag_code) { if (accumulator_frag_code) {
_accumulator_frag = new gpu_mod.shader(_gpu, { _accumulator_frag =gpu_mod.shader(_gpu, {
code: accumulator_frag_code, code: accumulator_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -262,7 +262,7 @@ function _load_shaders() {
var shape2d_frag_code = io.slurp("shaders/msl/shape2d.frag.msl") var shape2d_frag_code = io.slurp("shaders/msl/shape2d.frag.msl")
if (shape2d_frag_code) { if (shape2d_frag_code) {
_shape2d_frag = new gpu_mod.shader(_gpu, { _shape2d_frag =gpu_mod.shader(_gpu, {
code: shape2d_frag_code, code: shape2d_frag_code,
stage: "fragment", stage: "fragment",
format: "msl", format: "msl",
@@ -281,7 +281,7 @@ function _load_shaders() {
function _create_pipelines() { function _create_pipelines() {
// Sprite pipeline (alpha blend) // Sprite pipeline (alpha blend)
_pipelines.sprite_alpha = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.sprite_alpha =gpu_mod.graphics_pipeline(_gpu, {
vertex: _sprite_vert, vertex: _sprite_vert,
fragment: _sprite_frag, fragment: _sprite_frag,
primitive: "triangle", primitive: "triangle",
@@ -315,7 +315,7 @@ function _create_pipelines() {
}) })
// Sprite pipeline (additive blend for bloom) // Sprite pipeline (additive blend for bloom)
_pipelines.sprite_add = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.sprite_add =gpu_mod.graphics_pipeline(_gpu, {
vertex: _sprite_vert, vertex: _sprite_vert,
fragment: _sprite_frag, fragment: _sprite_frag,
primitive: "triangle", primitive: "triangle",
@@ -350,7 +350,7 @@ function _create_pipelines() {
// Blit pipeline (for fullscreen passes) // Blit pipeline (for fullscreen passes)
if (_blit_vert && _blit_frag) { if (_blit_vert && _blit_frag) {
_pipelines.blit = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.blit =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _blit_frag, fragment: _blit_frag,
primitive: "triangle", primitive: "triangle",
@@ -385,7 +385,7 @@ function _create_pipelines() {
// Threshold pipeline (for bloom extraction) // Threshold pipeline (for bloom extraction)
if (_blit_vert && _threshold_frag) { if (_blit_vert && _threshold_frag) {
_pipelines.threshold = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.threshold =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _threshold_frag, fragment: _threshold_frag,
primitive: "triangle", primitive: "triangle",
@@ -409,7 +409,7 @@ function _create_pipelines() {
// Blur pipeline // Blur pipeline
if (_blit_vert && _blur_frag) { if (_blit_vert && _blur_frag) {
_pipelines.blur = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.blur =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _blur_frag, fragment: _blur_frag,
primitive: "triangle", primitive: "triangle",
@@ -433,7 +433,7 @@ function _create_pipelines() {
// Mask pipeline // Mask pipeline
if (_blit_vert && _mask_frag) { if (_blit_vert && _mask_frag) {
_pipelines.mask = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.mask =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _mask_frag, fragment: _mask_frag,
primitive: "triangle", primitive: "triangle",
@@ -468,7 +468,7 @@ function _create_pipelines() {
// CRT pipeline // CRT pipeline
if (_blit_vert && _crt_frag) { if (_blit_vert && _crt_frag) {
_pipelines.crt = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.crt =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _crt_frag, fragment: _crt_frag,
primitive: "triangle", primitive: "triangle",
@@ -492,7 +492,7 @@ function _create_pipelines() {
// Blit additive pipeline (for bloom compositing) // Blit additive pipeline (for bloom compositing)
if (_blit_vert && _blit_frag) { if (_blit_vert && _blit_frag) {
_pipelines.blit_add = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.blit_add =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _blit_frag, fragment: _blit_frag,
primitive: "triangle", primitive: "triangle",
@@ -527,7 +527,7 @@ function _create_pipelines() {
// SDF text pipeline // SDF text pipeline
if (_sprite_vert && _text_sdf_frag) { if (_sprite_vert && _text_sdf_frag) {
_pipelines.text_sdf = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.text_sdf =gpu_mod.graphics_pipeline(_gpu, {
vertex: _sprite_vert, vertex: _sprite_vert,
fragment: _text_sdf_frag, fragment: _text_sdf_frag,
primitive: "triangle", primitive: "triangle",
@@ -563,7 +563,7 @@ function _create_pipelines() {
// MSDF text pipeline // MSDF text pipeline
if (_sprite_vert && _text_msdf_frag) { if (_sprite_vert && _text_msdf_frag) {
_pipelines.text_msdf = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.text_msdf =gpu_mod.graphics_pipeline(_gpu, {
vertex: _sprite_vert, vertex: _sprite_vert,
fragment: _text_msdf_frag, fragment: _text_msdf_frag,
primitive: "triangle", primitive: "triangle",
@@ -598,7 +598,7 @@ function _create_pipelines() {
} }
// Accumulator pipeline // Accumulator pipeline
if (_blit_vert && _accumulator_frag) { if (_blit_vert && _accumulator_frag) {
_pipelines.accumulator = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.accumulator =gpu_mod.graphics_pipeline(_gpu, {
vertex: _blit_vert, vertex: _blit_vert,
fragment: _accumulator_frag, fragment: _accumulator_frag,
primitive: "triangle", primitive: "triangle",
@@ -622,7 +622,7 @@ function _create_pipelines() {
// Shape2D pipeline // Shape2D pipeline
if (_sprite_vert && _shape2d_frag) { if (_sprite_vert && _shape2d_frag) {
_pipelines.shape2d = new gpu_mod.graphics_pipeline(_gpu, { _pipelines.shape2d =gpu_mod.graphics_pipeline(_gpu, {
vertex: _sprite_vert, vertex: _sprite_vert,
fragment: _shape2d_frag, fragment: _shape2d_frag,
primitive: "triangle", primitive: "triangle",
@@ -662,7 +662,7 @@ function _create_pipelines() {
// ======================================================================== // ========================================================================
function _create_gpu_texture(w, h, pixels) { function _create_gpu_texture(w, h, pixels) {
var tex = new gpu_mod.texture(_gpu, { var tex =gpu_mod.texture(_gpu, {
width: w, width: w,
height: h, height: h,
format: "rgba8", format: "rgba8",
@@ -673,7 +673,7 @@ function _create_gpu_texture(w, h, pixels) {
}) })
var size = w * h * 4 var size = w * h * 4
var transfer = new gpu_mod.transfer_buffer(_gpu, { var transfer =gpu_mod.transfer_buffer(_gpu, {
size: size, size: size,
usage: "upload" usage: "upload"
}) })
@@ -800,7 +800,7 @@ sdl_gpu.get_or_create_target = function(width, height, key) {
} }
// Create new render target texture // Create new render target texture
var tex = new gpu_mod.texture(_gpu, { var tex =gpu_mod.texture(_gpu, {
width: width, width: width,
height: height, height: height,
format: _swapchain_format, format: _swapchain_format,
@@ -1450,11 +1450,11 @@ function _render_batch(cmd_buffer, pass, batch, camera, target) {
var vb_size = length(geom.vertices) / 8 var vb_size = length(geom.vertices) / 8
var ib_size = length(geom.indices) / 8 var ib_size = length(geom.indices) / 8
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, geom.vertices) vb_transfer.copy_blob(_gpu, geom.vertices)
ib_transfer.copy_blob(_gpu, geom.indices) ib_transfer.copy_blob(_gpu, geom.indices)
@@ -1512,11 +1512,11 @@ function _render_texture_ref(cmd_buffer, pass, drawable, camera, target) {
var vb_size = length(geom.vertices) / 8 var vb_size = length(geom.vertices) / 8
var ib_size = length(geom.indices) / 8 var ib_size = length(geom.indices) / 8
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, geom.vertices) vb_transfer.copy_blob(_gpu, geom.vertices)
ib_transfer.copy_blob(_gpu, geom.indices) ib_transfer.copy_blob(_gpu, geom.indices)
@@ -1626,11 +1626,11 @@ function _render_shape(cmd_buffer, pass, drawable, camera, target) {
var vb_size = 4 * 32 var vb_size = 4 * 32
var ib_size = 6 * 2 var ib_size = 6 * 2
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, stone(vertex_data)) vb_transfer.copy_blob(_gpu, stone(vertex_data))
ib_transfer.copy_blob(_gpu, stone(index_data)) ib_transfer.copy_blob(_gpu, stone(index_data))
@@ -1747,11 +1747,11 @@ function _render_mesh2d(cmd_buffer, pass, draw, camera, target) {
var vb_size = total_verts * 32 var vb_size = total_verts * 32
var ib_size = total_indices * 2 var ib_size = total_indices * 2
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, stone(vertex_data)) vb_transfer.copy_blob(_gpu, stone(vertex_data))
ib_transfer.copy_blob(_gpu, stone(index_data)) ib_transfer.copy_blob(_gpu, stone(index_data))
@@ -1820,11 +1820,11 @@ function _render_text(cmd_buffer, pass, drawable, camera, target) {
var vb_size = num_verts * 32 var vb_size = num_verts * 32
var ib_size = num_indices * 2 var ib_size = num_indices * 2
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, interleaved) vb_transfer.copy_blob(_gpu, interleaved)
ib_transfer.copy_blob(_gpu, indices) ib_transfer.copy_blob(_gpu, indices)
@@ -1927,13 +1927,13 @@ function _get_font_cache(path, size, mode) {
var font var font
if (mode == 'msdf') { if (mode == 'msdf') {
// MSDF: em_px=size, range_px=4, padding_px=6, sharpness=1.0 // MSDF: em_px=size, range_px=4, padding_px=6, sharpness=1.0
font = new staef.msdf_font(data, size, 4.0, 6, 1.0) font =staef.msdf_font(data, size, 4.0, 6, 1.0)
} else if (mode == 'sdf') { } else if (mode == 'sdf') {
// SDF: em_px=size, range_px=12, padding_px=14, sharpness=1.0 // SDF: em_px=size, range_px=12, padding_px=14, sharpness=1.0
font = new staef.sdf_font(data, size, 12.0, 14, 1.0) font =staef.sdf_font(data, size, 12.0, 14, 1.0)
} else { } else {
// Bitmap // Bitmap
font = new staef.font(data, size, false) font =staef.font(data, size, false)
} }
_font_cache[key] = font _font_cache[key] = font
return font return font
@@ -2010,11 +2010,11 @@ function _draw_textured_quad(pass, geom, texture, pipeline, filter) {
var vb_size = length(geom.vertices) / 8 var vb_size = length(geom.vertices) / 8
var ib_size = length(geom.indices) / 8 var ib_size = length(geom.indices) / 8
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, geom.vertices) vb_transfer.copy_blob(_gpu, geom.vertices)
ib_transfer.copy_blob(_gpu, geom.indices) ib_transfer.copy_blob(_gpu, geom.indices)
@@ -2065,11 +2065,11 @@ function _do_mask(cmd_buffer, cmd) {
var vb_size = length(geom.vertices) / 8 var vb_size = length(geom.vertices) / 8
var ib_size = length(geom.indices) / 8 var ib_size = length(geom.indices) / 8
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, geom.vertices) vb_transfer.copy_blob(_gpu, geom.vertices)
ib_transfer.copy_blob(_gpu, geom.indices) ib_transfer.copy_blob(_gpu, geom.indices)
@@ -2157,11 +2157,11 @@ function _do_shader_pass(cmd_buffer, cmd, get_swapchain_tex) {
var vb_size = length(geom.vertices) / 8 var vb_size = length(geom.vertices) / 8
var ib_size = length(geom.indices) / 8 var ib_size = length(geom.indices) / 8
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, geom.vertices) vb_transfer.copy_blob(_gpu, geom.vertices)
ib_transfer.copy_blob(_gpu, geom.indices) ib_transfer.copy_blob(_gpu, geom.indices)
@@ -2296,11 +2296,11 @@ function _do_composite(cmd_buffer, cmd) {
var vb_size = length(geom.vertices) / 8 var vb_size = length(geom.vertices) / 8
var ib_size = length(geom.indices) / 8 var ib_size = length(geom.indices) / 8
var vb = new gpu_mod.buffer(_gpu, {size: vb_size, vertex: true}) var vb =gpu_mod.buffer(_gpu, {size: vb_size, vertex: true})
var ib = new gpu_mod.buffer(_gpu, {size: ib_size, index: true}) var ib =gpu_mod.buffer(_gpu, {size: ib_size, index: true})
var vb_transfer = new gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"}) var vb_transfer =gpu_mod.transfer_buffer(_gpu, {size: vb_size, usage: "upload"})
var ib_transfer = new gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"}) var ib_transfer =gpu_mod.transfer_buffer(_gpu, {size: ib_size, usage: "upload"})
vb_transfer.copy_blob(_gpu, geom.vertices) vb_transfer.copy_blob(_gpu, geom.vertices)
ib_transfer.copy_blob(_gpu, geom.indices) ib_transfer.copy_blob(_gpu, geom.indices)

View File

@@ -491,7 +491,7 @@ static JSValue js_simplex_constructor(JSContext *js, JSValueConst new_target, in
CELL_USE_INIT( CELL_USE_INIT(
QJSCLASSPREP_FUNCS(simplex); QJSCLASSPREP_FUNCS(simplex);
JSValue ctor = JS_NewCFunction2(js, js_simplex_constructor, "simplex", 1, JS_CFUNC_constructor, 0); JSValue ctor = JS_NewCFunction2(js, js_simplex_constructor, "simplex", 1, JS_CFUNC_generic, 0);
JSValue proto = JS_GetClassProto(js, js_simplex_id); JSValue proto = JS_GetClassProto(js, js_simplex_id);
JS_SetConstructor(js, ctor, proto); JS_SetConstructor(js, ctor, proto);
JS_FreeValue(js, proto); JS_FreeValue(js, proto);

View File

@@ -135,7 +135,7 @@ CELL_USE_INIT(
QJSCLASSPREP_FUNCS(sprite); QJSCLASSPREP_FUNCS(sprite);
// Create the constructor function // Create the constructor function
JSValue ctor = JS_NewCFunction2(js, js_sprite_constructor, "sprite", 1, JS_CFUNC_constructor, 0); JSValue ctor = JS_NewCFunction2(js, js_sprite_constructor, "sprite", 1, JS_CFUNC_generic, 0);
// Set the prototype on the constructor // Set the prototype on the constructor
JSValue proto = JS_GetClassProto(js, js_sprite_id); JSValue proto = JS_GetClassProto(js, js_sprite_id);

View File

@@ -850,17 +850,17 @@ CELL_USE_INIT(
JS_SetClassProto(js, js_font_id, proto); JS_SetClassProto(js, js_font_id, proto);
// Create font constructor (legacy) // Create font constructor (legacy)
JSValue font_ctor = JS_NewCFunction2(js, js_font_constructor, "font", 2, JS_CFUNC_constructor, 0); JSValue font_ctor = JS_NewCFunction2(js, js_font_constructor, "font", 2, JS_CFUNC_generic, 0);
JS_SetConstructor(js, font_ctor, proto); JS_SetConstructor(js, font_ctor, proto);
JS_SetPropertyStr(js, mod, "font", font_ctor); JS_SetPropertyStr(js, mod, "font", font_ctor);
// Create SDF font constructor: sdf_font(data, em_px, range_px, padding_px, sharpness) // Create SDF font constructor: sdf_font(data, em_px, range_px, padding_px, sharpness)
JSValue sdf_font_ctor = JS_NewCFunction2(js, js_sdf_font_constructor, "sdf_font", 5, JS_CFUNC_constructor, 0); JSValue sdf_font_ctor = JS_NewCFunction2(js, js_sdf_font_constructor, "sdf_font", 5, JS_CFUNC_generic, 0);
JS_SetConstructor(js, sdf_font_ctor, proto); JS_SetConstructor(js, sdf_font_ctor, proto);
JS_SetPropertyStr(js, mod, "sdf_font", sdf_font_ctor); JS_SetPropertyStr(js, mod, "sdf_font", sdf_font_ctor);
// Create MSDF font constructor: msdf_font(data, em_px, range_px, padding_px, sharpness) // Create MSDF font constructor: msdf_font(data, em_px, range_px, padding_px, sharpness)
JSValue msdf_font_ctor = JS_NewCFunction2(js, js_msdf_font_constructor, "msdf_font", 5, JS_CFUNC_constructor, 0); JSValue msdf_font_ctor = JS_NewCFunction2(js, js_msdf_font_constructor, "msdf_font", 5, JS_CFUNC_generic, 0);
JS_SetConstructor(js, msdf_font_ctor, proto); JS_SetConstructor(js, msdf_font_ctor, proto);
JS_SetPropertyStr(js, mod, "msdf_font", msdf_font_ctor); JS_SetPropertyStr(js, mod, "msdf_font", msdf_font_ctor);

View File

@@ -405,7 +405,7 @@ CELL_USE_INIT(
QJSCLASSPREP_FUNCS(transform); QJSCLASSPREP_FUNCS(transform);
// Create the constructor function // Create the constructor function
JSValue ctor = JS_NewCFunction2(js, js_transform_constructor, "transform", 0, JS_CFUNC_constructor, 0); JSValue ctor = JS_NewCFunction2(js, js_transform_constructor, "transform", 0, JS_CFUNC_generic, 0);
// Set the prototype on the constructor // Set the prototype on the constructor
JSValue proto = JS_GetClassProto(js, js_transform_id); JSValue proto = JS_GetClassProto(js, js_transform_id);