- procedure tjetemitter3d.render;
- var particle:pparticle3d;matrix:array[0..15]of single;
- begin
- if count>0 then
- begin
- particle:=firstparticle;
- glgetfloatv(gl_modelview_matrix,@matrix);
- glbindtexture(gl_texture_2d,texture);
- glbegin(gl_quads);
- while particle<>nil do
- begin
- glcolor4fv(@particle^.color);
- gltexcoord2f(0.0,0.0);
- glvertex3f(particle^.pos.x+(-matrix[0]-matrix[1])*size,particle^.pos.y+(-matrix[4]-matrix[5])*size,particle^.pos.z+(-matrix[8]-matrix[9])*size);
- gltexcoord2f(1.0,0.0);
- glvertex3f(particle^.pos.x+(matrix[0]-matrix[1])*size,particle^.pos.y+(matrix[4]-matrix[5])*size,particle^.pos.z+(matrix[8]-matrix[9])*size);
- gltexcoord2f(1.0,1.0);
- glvertex3f(particle^.pos.x+(matrix[0]+matrix[1])*size,particle^.pos.y+(matrix[4]+matrix[5])*size,particle^.pos.z+(matrix[8]+matrix[9])*size);
- gltexcoord2f(0.0,1.0);
- glvertex3f(particle^.pos.x+(-matrix[0]+matrix[1])*size,particle^.pos.y+(-matrix[4]+matrix[5])*size,particle^.pos.z+(-matrix[8]+matrix[9])*size);
- particle:=particle^.next;
- end;
- glend;
- end;
- end;