way better controller handling
[vg.git] / vg_loader.h
index f62763d5ca63445115a206cb3fc5d296efefbac0..f6f3a26f8b1758a6d8ab1d0b25d71b0b45f51632 100644 (file)
@@ -20,44 +20,7 @@ static struct vg_shader _shader_loader =
    .name = "[vg] loader",
    .link = NULL,
 
-   /* This is the old background shader */
-#if 0
-   .vs = 
-   {
-      .orig_file = NULL,
-      .static_src = ""
-      "layout (location=0) in vec2 a_co;"
-      "out vec2 aUv;"
-      "void main()"
-      "{"
-         "gl_Position = vec4(a_co*2.0-1.0,0.0,1.0);"
-         "aUv = a_co;"
-      "}"
-   },
-   .fs = 
-   {
-      .orig_file = NULL,
-      .static_src = 
-      
-      "out vec4 FragColor;"
-      "uniform float uTime;"
-      "in vec2 aUv;"
-      
-      "void main()"
-      "{"
-         "float dither=fract(dot(vec2(171.0,231.0),gl_FragCoord.xy)/71.0)-0.5;"
-         "float grad = 1.0-(aUv.y*0.5+0.5)*0.5;"
-         "float fmt1 = step( 0.5, grad+dither );"
-
-         "vec3 col = 0.5+0.5*sin( uTime + aUv.xyx + vec3(0.0,2.0,4.0) );"
-
-         "FragColor = vec4(vec3(0.5,0.5,0.5)*grad*fmt1,1.0);"
-      "}"
-   }
-#else
-
    /* This is the new foreground shader */
-
    .vs = 
    {
       .orig_file = NULL,
@@ -78,6 +41,7 @@ static struct vg_shader _shader_loader =
       "out vec4 FragColor;"
       "uniform float uTime;"
       "uniform float uRatio;"
+      "uniform float uOpacity;"
       "in vec2 aUv;"
 
       "float eval_zero( vec2 uv )"
@@ -107,11 +71,9 @@ static struct vg_shader _shader_loader =
          "float dither=fract(dot(vec2(171.0,231.0),gl_FragCoord.xy)/71.0)-0.5;"
          "float fmt1 = step( 0.5, zero*zero + dither )*0.8+0.2;"
 
-         "FragColor = vec4(vec3(fmt1),0.8);"
+         "FragColor = vec4(vec3(fmt1),uOpacity);"
       "}"
    }
-
-#endif
 };
 
 static struct vg_loader
@@ -162,8 +124,6 @@ VG_STATIC void _vg_loader_free(void)
       vg_info( " -> %p\n", step->fn_free );
       step->fn_free();
    }
-
-   vg_info( "done\n" );
 }
 
 VG_STATIC void _vg_render_log(void)
@@ -199,23 +159,8 @@ VG_STATIC void _vg_render_log(void)
    ui_draw( NULL );
 }
 
-VG_STATIC void _vg_loader_render(void)
+VG_STATIC void _vg_loader_render_ring( float opacity )
 {
-   glViewport( 0,0, vg.window_x, vg.window_y );
-   glBindFramebuffer( GL_FRAMEBUFFER, 0 );
-   glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );
-   glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
-
-#if 0
-   glUseProgram( _shader_loader.id );
-       glUniform1f( glGetUniformLocation( _shader_loader.id, "uTime" ), vg.time );
-   glBindVertexArray( vg_loader.vao );
-   glDrawArrays( GL_TRIANGLES, 0, 6 );
-#endif
-
-   _vg_render_log();
-
-#if 1
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glBlendEquation(GL_FUNC_ADD);
@@ -224,9 +169,20 @@ VG_STATIC void _vg_loader_render(void)
        glUniform1f( glGetUniformLocation( _shader_loader.id, "uTime" ), vg.time );
    float ratio = (float)vg.window_x / (float)vg.window_y;
    glUniform1f( glGetUniformLocation( _shader_loader.id, "uRatio"), ratio );
+   glUniform1f( glGetUniformLocation( _shader_loader.id, "uOpacity"), opacity );
    glBindVertexArray( vg_loader.vao );
    glDrawArrays( GL_TRIANGLES, 0, 6 );
-#endif
+}
+
+VG_STATIC void _vg_loader_render(void)
+{
+   glViewport( 0,0, vg.window_x, vg.window_y );
+   glBindFramebuffer( GL_FRAMEBUFFER, 0 );
+   glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );
+   glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
+
+   _vg_render_log();
+   vg.loader_ring = 0.8f;
 }