test
This commit is contained in:
@@ -28,6 +28,10 @@ var sprite = {
|
||||
image: undefined,
|
||||
get diffuse() { return this.image; },
|
||||
set diffuse(x) {},
|
||||
set color(x) {
|
||||
this._sprite.color = x;
|
||||
},
|
||||
get color() { return this._sprite.color; },
|
||||
anim_speed: 1,
|
||||
play(str, loop = true, reverse = false, fn) {
|
||||
if (!this.animset) {
|
||||
|
||||
@@ -772,7 +772,7 @@ function sprites_to_queue(ysort = false)
|
||||
//var culled = spritetree.find(prosperon.camera.pos, prosperon.camera.size);
|
||||
//var culled = spritetree.find(prosperon.camera.transform.pos,prosperon.camera.size)
|
||||
// var culled = os.cull_sprites(allsprites,prosperon.camera);
|
||||
var cmd = render._main.make_sprite_queue(culled, prosperon.camera, sprite_pipeline);
|
||||
var cmd = render._main.make_sprite_queue(culled, prosperon.camera, sprite_pipeline, 1);
|
||||
return cmd;
|
||||
var sprites = allsprites;
|
||||
// for (var i = 0; i < sprites.length; i++)
|
||||
@@ -911,6 +911,8 @@ render.rectangle = function render_rectangle(rect, color = Color.white, pipeline
|
||||
|
||||
render.particles = function render_particles(emitter, pipeline = sprite_pipeline)
|
||||
{
|
||||
if (!emitter.diffuse) throw new Error("emitter does not have a proper diffuse");
|
||||
|
||||
var mesh = render._main.make_sprite_mesh(emitter.particles);
|
||||
if (mesh.num_indices === 0) return;
|
||||
current_queue.push({
|
||||
@@ -1069,9 +1071,13 @@ render.image = function image(image, rect = [0,0], rotation = 0, color, pipeline
|
||||
if (pipeline) cmd.pipeline = pipeline;
|
||||
if (color) cmd.color = color;
|
||||
current_queue.push(cmd)
|
||||
|
||||
var sprite = os.make_sprite();
|
||||
sprite.set_image(image);
|
||||
sprite.set_rect(rect);
|
||||
return sprite;
|
||||
};
|
||||
|
||||
var sprite_buf = [];
|
||||
render.images = function images(image, rects, config)
|
||||
{
|
||||
if (!image) throw Error ('Need an image to render.');
|
||||
@@ -1085,10 +1091,8 @@ render.images = function images(image, rects, config)
|
||||
for (var rect of rects) {
|
||||
// get sprite from sprite_buf, or make a new one
|
||||
rect.__proto__ = bb;
|
||||
var sprite;
|
||||
if (sprite_buf.length) sprite = sprite_buf.pop();
|
||||
else sprite = os.make_sprite();
|
||||
sprite.set_affine(rect);
|
||||
var sprite = os.make_sprite();
|
||||
sprite.set_rect(rect);
|
||||
sprite.set_image(image);
|
||||
sprites.push(sprite)
|
||||
}
|
||||
@@ -1098,7 +1102,14 @@ render.images = function images(image, rects, config)
|
||||
for (var i = 0; i < cmds.length; i++)
|
||||
current_queue.push(cmds[i])
|
||||
|
||||
sprite_buf = sprite_buf.concat(sprites)
|
||||
return sprites;
|
||||
}
|
||||
|
||||
render.sprites = function(sprites, sort = 0, pipeline = sprite_pipeline)
|
||||
{
|
||||
var cmds = render._main.make_sprite_queue(sprites, prosperon.camera, pipeline, sort);
|
||||
for (var i = 0; i < cmds.length; i++)
|
||||
current_queue.push(cmds[i]);
|
||||
}
|
||||
|
||||
var tile_def = {repeat_x:true, repeat_y:true};
|
||||
|
||||
@@ -2164,8 +2164,6 @@ int fibonacci(int n) {
|
||||
JSC_CCALL(vector_fib,
|
||||
int n = js2number(js,argv[0]);
|
||||
int fib = fibonacci(n);
|
||||
|
||||
printf("ANSWER IS %d\n", fib);
|
||||
)
|
||||
|
||||
JSC_CCALL(vector_from_to,
|
||||
@@ -4105,6 +4103,7 @@ JSC_CCALL(gpu_make_sprite_queue,
|
||||
sprite *sprites = NULL;
|
||||
size_t quads = 0;
|
||||
int needfree = 1;
|
||||
int sort = js2number(js,argv[3]);
|
||||
|
||||
// test for fastest
|
||||
size_t size;
|
||||
@@ -4138,7 +4137,8 @@ JSC_CCALL(gpu_make_sprite_queue,
|
||||
}
|
||||
}
|
||||
|
||||
qsort(sprites, quads, sizeof(sprite), sort_sprite);
|
||||
if (sort) qsort(sprites, quads, sizeof(sprite), sort_sprite);
|
||||
else qsort(sprites, quads, sizeof(sprite), sort_sprite_texture);
|
||||
|
||||
struct quad_buffers buffers = quad_buffers_new(quads*4);
|
||||
|
||||
@@ -4487,7 +4487,6 @@ JSC_CCALL(gpu_upload,
|
||||
// ensure it's large enough
|
||||
size_t transfer_size = js_getnum_str(js,js_transfer, "size");
|
||||
if (transfer_size < total_size_needed) {
|
||||
printf("New transfer buffer needed of size %zu, old was %zu\n", total_size_needed, transfer_size);
|
||||
total_size_needed *= 1.5;
|
||||
transfer = SDL_CreateGPUTransferBuffer( gpu, &(SDL_GPUTransferBufferCreateInfo){
|
||||
.usage = SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD,
|
||||
@@ -4935,7 +4934,7 @@ static const JSCFunctionListEntry js_SDL_GPUDevice_funcs[] = {
|
||||
MIST_FUNC_DEF(gpu, load_texture, 2),
|
||||
MIST_FUNC_DEF(gpu, texture, 1),
|
||||
MIST_FUNC_DEF(gpu, make_sprite_mesh, 2),
|
||||
MIST_FUNC_DEF(gpu, make_sprite_queue, 3),
|
||||
MIST_FUNC_DEF(gpu, make_sprite_queue, 4),
|
||||
MIST_FUNC_DEF(gpu, make_quad, 0),
|
||||
MIST_FUNC_DEF(gpu, driver, 0),
|
||||
MIST_FUNC_DEF(gpu, make_shader, 1),
|
||||
@@ -5751,7 +5750,6 @@ JSC_SCALL(io_writepath,
|
||||
|
||||
JSC_SSCALL(io_gamemode,
|
||||
const char *prefdir = PHYSFS_getPrefDir(str, str2);
|
||||
printf("%s\n", prefdir);
|
||||
PHYSFS_setWriteDir(prefdir);
|
||||
)
|
||||
|
||||
@@ -7193,9 +7191,6 @@ int js_qtree_cmp(struct qtree_sprite *v, aabb *range)
|
||||
.w = range->dims.w*2.0,
|
||||
.h = range->dims.h*2.0
|
||||
};
|
||||
// printf("INTERSECT? %d\n", SDL_HasRectIntersectionFloat(&vrect,&ab));
|
||||
// printf("ab: %g,%g,%g,%g\n", ab.x,ab.y,ab.w,ab.h);
|
||||
// printf("vrect:%g,%g,%g,%g\n", vrect.x,vrect.y,vrect.w,vrect.h);
|
||||
return SDL_HasRectIntersectionFloat(&v->rect, &ab);
|
||||
}
|
||||
|
||||
@@ -7462,12 +7457,15 @@ JSC_GETSET(sprite, color, color)
|
||||
JSC_CCALL(sprite_set_affine,
|
||||
sprite *sp = js2sprite(js,self);
|
||||
transform *t = js2transform(js,argv[0]);
|
||||
if (!t)
|
||||
sp->affine = js2rect(js,argv[0]);
|
||||
else
|
||||
if (t)
|
||||
sp->affine = transform2rect(t);
|
||||
)
|
||||
|
||||
JSC_CCALL(sprite_set_rect,
|
||||
sprite *sp = js2sprite(js,self);
|
||||
sp->affine = js2rect(js,argv[0]);
|
||||
)
|
||||
|
||||
JSC_CCALL(sprite_set_image,
|
||||
sprite *sp = js2sprite(js,self);
|
||||
if (!JS_IsUndefined(sp->image))
|
||||
@@ -7481,6 +7479,7 @@ JSC_CCALL(sprite_set_image,
|
||||
|
||||
static const JSCFunctionListEntry js_sprite_funcs[] = {
|
||||
MIST_FUNC_DEF(sprite, set_affine, 1),
|
||||
MIST_FUNC_DEF(sprite, set_rect, 1),
|
||||
MIST_FUNC_DEF(sprite, set_image, 1),
|
||||
CGETSET_ADD(sprite, layer),
|
||||
CGETSET_ADD(sprite, color),
|
||||
|
||||
Reference in New Issue
Block a user