add color to sprite ssbo
This commit is contained in:
parent
0d5ce8f62c
commit
e3029994f9
|
@ -35,6 +35,7 @@ var sprite = {
|
|||
rect: fullrect,
|
||||
anim:{},
|
||||
playing: 0,
|
||||
anim_speed: 1,
|
||||
play(str = 0, fn, loop = true, reverse = false) {
|
||||
this.del_anim?.();
|
||||
var self = this;
|
||||
|
@ -76,7 +77,7 @@ var sprite = {
|
|||
// if (!self.loop) { self.stop(); return; }
|
||||
}
|
||||
if (self)
|
||||
stop = self.gameobject.delay(advance, playing.frames[f].time);
|
||||
stop = self.gameobject.delay(advance, playing.frames[f].time/self.anim_speed);
|
||||
}
|
||||
|
||||
advance();
|
||||
|
|
|
@ -7,12 +7,14 @@
|
|||
in vec3 a_pos;
|
||||
in vec2 a_uv;
|
||||
out vec2 uv;
|
||||
out vec4 shade;
|
||||
|
||||
vec3 pos;
|
||||
|
||||
struct sprite {
|
||||
mat4 model;
|
||||
vec4 rect;
|
||||
vec4 shade;
|
||||
};
|
||||
|
||||
readonly buffer ssbo {
|
||||
|
@ -32,19 +34,20 @@ void main()
|
|||
pos *= vec3(diffuse_size * s.rect.zw,1);
|
||||
uv = (uv*s.rect.zw)+s.rect.xy;
|
||||
gl_Position = vp * s.model * vec4(pos, 1.0);
|
||||
shade = s.shade;
|
||||
}
|
||||
@end
|
||||
|
||||
@fs fs
|
||||
|
||||
in vec2 uv;
|
||||
in vec4 shade;
|
||||
|
||||
out vec4 color;
|
||||
|
||||
texture2D diffuse;
|
||||
sampler smp;
|
||||
|
||||
uniform vec4 shade;
|
||||
void frag()
|
||||
{
|
||||
color = texture(sampler2D(diffuse,smp), uv);
|
||||
|
|
|
@ -1075,6 +1075,7 @@ JSC_CCALL(render_make_particle_ssbo,
|
|||
typedef struct sprite_ss {
|
||||
HMM_Mat4 model;
|
||||
HMM_Vec4 rect;
|
||||
HMM_Vec4 shade;
|
||||
} sprite_ss;
|
||||
|
||||
JSC_CCALL(render_make_sprite_ssbo,
|
||||
|
@ -1099,6 +1100,7 @@ JSC_CCALL(render_make_sprite_ssbo,
|
|||
JSValue sub = js_getpropidx(array,i);
|
||||
ms[i].model = transform2mat(js2transform(js_getpropstr(sub, "transform")));
|
||||
ms[i].rect = js2vec4(js_getpropstr(sub,"rect"));
|
||||
ms[i].shade = js2vec4(js_getpropstr(sub,"shade"));
|
||||
}
|
||||
|
||||
sg_append_buffer(*b, (&(sg_range){
|
||||
|
|
Loading…
Reference in a new issue