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