refactor & vg_m
[fishladder.git] / vg / vg_lines.h
index 81b009150b4791518087ad5cb130965229d6dc8f..18a0a7c320950e80d0b13f51372b1a408958627a 100644 (file)
@@ -3,15 +3,15 @@
 SHADER_DEFINE( vg_line_shader, 
 
        // VERTEX
-       "layout (location=0) in vec3 a_co;"
+       "layout (location=0) in vec2 a_co;"
        "layout (location=1) in vec4 a_colour;"
-       "uniform mat4 uPv;"
+       "uniform mat3 uPv;"
        ""
        "out vec4 s_colour;"
        ""
        "void main()"
        "{"
-       "       vec4 vert_pos = uPv * vec4( a_co, 1.0 );"
+       "       vec4 vert_pos = vec4( uPv * vec3( a_co, 1.0 ), 1.0 );"
        "  s_colour = a_colour;"
        "       gl_Position = vert_pos;"
        "}",
@@ -33,14 +33,13 @@ struct
 {
        struct vg_lines_vert
        {
-               vec3 co;
+               v2f co;
                u32 colour;
        }
        *buffer;
        
        GLuint vao, vbo;
        u32 draw_idx, cap, buffer_size;
-       
 }
 vg_lines;
 
@@ -93,7 +92,7 @@ static void vg_lines_free(void)
 static void vg_lines_drawall(void)
 {
        SHADER_USE( vg_line_shader );
-       glUniformMatrix4fv( SHADER_UNIFORM( vg_line_shader, "uPv" ), 1, GL_FALSE, (float *)vg_pv );
+       glUniformMatrix3fv( SHADER_UNIFORM( vg_line_shader, "uPv" ), 1, GL_FALSE, (float *)vg_pv );
        
        glBindVertexArray( vg_lines.vao );
        glBindBuffer( GL_ARRAY_BUFFER, vg_lines.vbo );
@@ -109,18 +108,18 @@ static void vg_lines_drawall(void)
        vg_lines.draw_idx = 0;
 }
 
-static void vg_line2( vec3 from, vec3 to, u32 fc, u32 tc )
+static void vg_line2( v2f from, v2f to, u32 fc, u32 tc )
 {
        struct vg_lines_vert *v = vg_lines.buffer + vg_lines.draw_idx;
-       glm_vec3_copy( from, v[0].co );
-       glm_vec3_copy( to, v[1].co );
+       v2_copy( from, v[0].co );
+       v2_copy( to, v[1].co );
        v[0].colour = fc;
        v[1].colour = tc;
        
        vg_lines.draw_idx += 2;
 }
 
-static void vg_line( vec3 from, vec3 to, u32 colour )
+static void vg_line( v2f from, v2f to, u32 colour )
 {
        vg_line2( from, to, colour, colour );
 }