projects
/
vg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
settings menu & texsheet
[vg.git]
/
vg_lines.h
diff --git
a/vg_lines.h
b/vg_lines.h
index c44f0713cd9eab045fd92736b5bf96b742f693eb..d7f277ad70347703de64f1804b1597ebb74ae61d 100644
(file)
--- a/
vg_lines.h
+++ b/
vg_lines.h
@@
-6,6
+6,10
@@
#define VG_GAME
#include "vg/vg.h"
#define VG_GAME
#include "vg/vg.h"
+/*
+ * FIXME: The line buffer sometimes overflows. Low priority
+ */
+
typedef v3f line_co;
#define VG__RED 0xff0000ff
typedef v3f line_co;
#define VG__RED 0xff0000ff
@@
-68,7
+72,7
@@
struct{
}
static vg_lines;
}
static vg_lines;
-
VG_STATIC
void async_vg_lines_init( void *payload, u32 payload_size ){
+
static
void async_vg_lines_init( void *payload, u32 payload_size ){
glGenVertexArrays( 1, &vg_lines.vao );
glGenBuffers( 1, &vg_lines.vbo );
glBindVertexArray( vg_lines.vao );
glGenVertexArrays( 1, &vg_lines.vao );
glGenBuffers( 1, &vg_lines.vbo );
glBindVertexArray( vg_lines.vao );
@@
-108,7
+112,7
@@
VG_STATIC void async_vg_lines_init( void *payload, u32 payload_size ){
vg_lines.allow_input = 1;
}
vg_lines.allow_input = 1;
}
-
VG_STATIC
void vg_lines_init(void){
+
static
void vg_lines_init(void){
vg_async_call( async_vg_lines_init, NULL, 0 );
vg_console_reg_var( "vg_lines", &vg_lines.draw, k_var_dtype_i32,
vg_async_call( async_vg_lines_init, NULL, 0 );
vg_console_reg_var( "vg_lines", &vg_lines.draw, k_var_dtype_i32,
@@
-117,7
+121,7
@@
VG_STATIC void vg_lines_init(void){
}
}
-
VG_STATIC
void vg_lines_drawall( void ){
+
static
void vg_lines_drawall( void ){
glUseProgram( _shader_lines.id );
glUniformMatrix4fv( glGetUniformLocation( _shader_lines.id, "uPv" ),
glUseProgram( _shader_lines.id );
glUniformMatrix4fv( glGetUniformLocation( _shader_lines.id, "uPv" ),
@@
-141,7
+145,7
@@
VG_STATIC void vg_lines_drawall( void ){
vg_linear_clear( vg_lines.vertex_buffer );
}
vg_linear_clear( vg_lines.vertex_buffer );
}
-
VG_STATIC
void vg_line2( line_co from, line_co to, u32 fc, u32 tc ){
+
static
void vg_line2( line_co from, line_co to, u32 fc, u32 tc ){
if( !vg_lines.allow_input ) return;
if( !vg_lines.draw ) return;
if( !vg_lines.allow_input ) return;
if( !vg_lines.draw ) return;
@@
-155,11
+159,11
@@
VG_STATIC void vg_line2( line_co from, line_co to, u32 fc, u32 tc ){
v[1].colour = tc;
}
v[1].colour = tc;
}
-
VG_STATIC
void vg_line( line_co from, line_co to, u32 colour ){
+
static
void vg_line( line_co from, line_co to, u32 colour ){
vg_line2( from, to, colour, colour );
}
vg_line2( from, to, colour, colour );
}
-
VG_STATIC
void vg_line_arrow( line_co co, line_co dir, float size, u32 colour ){
+
static
void vg_line_arrow( line_co co, line_co dir, float size, u32 colour ){
v3f p1, tx, ty, p2, p3;
v3_muladds( co, dir, size, p1 );
v3_tangent_basis( dir, tx, ty );
v3f p1, tx, ty, p2, p3;
v3_muladds( co, dir, size, p1 );
v3_tangent_basis( dir, tx, ty );
@@
-173,7
+177,7
@@
VG_STATIC void vg_line_arrow( line_co co, line_co dir, float size, u32 colour ){
vg_line( p1, p3, colour );
}
vg_line( p1, p3, colour );
}
-
VG_STATIC
void vg_line_box_verts( boxf box, v3f verts[8] ){
+
static
void vg_line_box_verts( boxf box, v3f verts[8] ){
for( u32 i=0; i<8; i++ ){
for( u32 j=0; j<3; j++ ){
verts[i][j] = i&(0x1<<j)? box[1][j]: box[0][j];
for( u32 i=0; i<8; i++ ){
for( u32 j=0; j<3; j++ ){
verts[i][j] = i&(0x1<<j)? box[1][j]: box[0][j];
@@
-181,14
+185,14
@@
VG_STATIC void vg_line_box_verts( boxf box, v3f verts[8] ){
}
}
}
}
-
VG_STATIC
void vg_line_mesh( v3f verts[], u32 indices[][2], u32 indice_count,
+
static
void vg_line_mesh( v3f verts[], u32 indices[][2], u32 indice_count,
u32 colour ){
for( u32 i=0; i<indice_count; i++ ){
vg_line( verts[indices[i][0]], verts[indices[i][1]], colour );
}
}
u32 colour ){
for( u32 i=0; i<indice_count; i++ ){
vg_line( verts[indices[i][0]], verts[indices[i][1]], colour );
}
}
-
VG_STATIC
void vg_line_boxf( boxf box, u32 colour ){
+
static
void vg_line_boxf( boxf box, u32 colour ){
v3f verts[8];
vg_line_box_verts( box, verts );
u32 indices[][2] = {{0,1},{1,3},{3,2},{2,0},
v3f verts[8];
vg_line_box_verts( box, verts );
u32 indices[][2] = {{0,1},{1,3},{3,2},{2,0},
@@
-198,7
+202,7
@@
VG_STATIC void vg_line_boxf( boxf box, u32 colour ){
vg_line_mesh( verts, indices, vg_list_size(indices), colour );
}
vg_line_mesh( verts, indices, vg_list_size(indices), colour );
}
-
VG_STATIC
void vg_line_boxf_transformed( m4x3f m, boxf box, u32 colour ){
+
static
void vg_line_boxf_transformed( m4x3f m, boxf box, u32 colour ){
v3f verts[8];
vg_line_box_verts( box, verts );
v3f verts[8];
vg_line_box_verts( box, verts );
@@
-213,7
+217,7
@@
VG_STATIC void vg_line_boxf_transformed( m4x3f m, boxf box, u32 colour ){
vg_line_mesh( verts, indices, vg_list_size(indices), colour );
}
vg_line_mesh( verts, indices, vg_list_size(indices), colour );
}
-
VG_STATIC
void vg_line_cross(v3f pos,u32 colour, float scale){
+
static
void vg_line_cross(v3f pos,u32 colour, float scale){
v3f p0, p1;
v3_add( (v3f){ scale,0.0f,0.0f}, pos, p0 );
v3_add( (v3f){-scale,0.0f,0.0f}, pos, p1 );
v3f p0, p1;
v3_add( (v3f){ scale,0.0f,0.0f}, pos, p0 );
v3_add( (v3f){-scale,0.0f,0.0f}, pos, p1 );
@@
-226,7
+230,7
@@
VG_STATIC void vg_line_cross(v3f pos,u32 colour, float scale){
vg_line( p0, p1, colour );
}
vg_line( p0, p1, colour );
}
-
VG_STATIC
void vg_line_point( v3f pt, float size, u32 colour ){
+
static
void vg_line_point( v3f pt, float size, u32 colour ){
boxf box =
{
{ pt[0]-size, pt[1]-size, pt[2]-size },
boxf box =
{
{ pt[0]-size, pt[1]-size, pt[2]-size },
@@
-237,7
+241,7
@@
VG_STATIC void vg_line_point( v3f pt, float size, u32 colour ){
}
}
-
VG_STATIC
void vg_line_sphere( m4x3f m, float radius, u32 colour ){
+
static
void vg_line_sphere( m4x3f m, float radius, u32 colour ){
v3f ly = { 0.0f, 0.0f, radius },
lx = { 0.0f, radius, 0.0f },
lz = { 0.0f, 0.0f, radius };
v3f ly = { 0.0f, 0.0f, radius },
lx = { 0.0f, radius, 0.0f },
lz = { 0.0f, 0.0f, radius };
@@
-269,7
+273,7
@@
VG_STATIC void vg_line_sphere( m4x3f m, float radius, u32 colour ){
}
}
}
}
-
VG_STATIC
void vg_line_capsule( m4x3f m, float radius, float h, u32 colour ){
+
static
void vg_line_capsule( m4x3f m, float radius, float h, u32 colour ){
v3f ly = { 0.0f, 0.0f, radius },
lx = { 0.0f, radius, 0.0f },
lz = { 0.0f, 0.0f, radius };
v3f ly = { 0.0f, 0.0f, radius },
lx = { 0.0f, radius, 0.0f },
lz = { 0.0f, 0.0f, radius };