projects
/
vg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
replace VG_STATIC -> static
[vg.git]
/
vg_loader.h
diff --git
a/vg_loader.h
b/vg_loader.h
index 3c519b57137bc99d19707c80b07c421e1c178079..cdd29ebc302d80266e6041865d706571b296b68f 100644
(file)
--- a/
vg_loader.h
+++ b/
vg_loader.h
@@
-10,10
+10,12
@@
#ifndef VG_LOADER_H
#define VG_LOADER_H
#ifndef VG_LOADER_H
#define VG_LOADER_H
-#include "common.h"
+#define VG_GAME
+#include "vg/vg.h"
+#include "vg/vg_shader.h"
-
VG_STATIC void vg_loader_start( void(*pfn)(void)
);
-
VG_STATIC
void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) );
+
static void vg_loader_start( void(*pfn)(void *data), void *data
);
+
static
void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) );
static struct vg_shader _shader_loader =
{
static struct vg_shader _shader_loader =
{
@@
-59,7
+61,6
@@
static struct vg_shader _shader_loader =
"void main()"
"{"
"void main()"
"{"
-
"vec3 col = 0.5+0.5*sin( uTime + aUv.xyx + vec3(0.0,2.0,4.0) );"
"vec2 uvx = aUv - vec2( 0.5 );"
"vec3 col = 0.5+0.5*sin( uTime + aUv.xyx + vec3(0.0,2.0,4.0) );"
"vec2 uvx = aUv - vec2( 0.5 );"
@@
-79,8
+80,7
@@
static struct vg_shader _shader_loader =
static struct vg_loader
{
/* Shutdown steps */
static struct vg_loader
{
/* Shutdown steps */
- struct loader_free_step
- {
+ struct loader_free_step{
void (*fn_free)(void);
}
step_buffer[16];
void (*fn_free)(void);
}
step_buffer[16];
@@
-90,7
+90,7
@@
static struct vg_loader
}
vg_loader;
}
vg_loader;
-
VG_STATIC
void _vg_loader_init(void)
+
static
void _vg_loader_init(void)
{
float quad[] = { 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f };
{
float quad[] = { 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f };
@@
-110,7
+110,7
@@
VG_STATIC void _vg_loader_init(void)
vg_fatal_error( "failed to compile shader" );
}
vg_fatal_error( "failed to compile shader" );
}
-
VG_STATIC
void _vg_loader_free(void)
+
static
void _vg_loader_free(void)
{
vg_info( "vg_loader_free\n" );
glDeleteVertexArrays( 1, &vg_loader.vao );
{
vg_info( "vg_loader_free\n" );
glDeleteVertexArrays( 1, &vg_loader.vao );
@@
-126,7
+126,7
@@
VG_STATIC void _vg_loader_free(void)
}
}
}
}
-
VG_STATIC
void _vg_render_log(void)
+
static
void _vg_render_log(void)
{
#if 0
ui_begin( vg.window_x, vg.window_y );
{
#if 0
ui_begin( vg.window_x, vg.window_y );
@@
-161,7
+161,7
@@
VG_STATIC void _vg_render_log(void)
#endif
}
#endif
}
-
VG_STATIC
void _vg_loader_render_ring( float opacity )
+
static
void _vg_loader_render_ring( float opacity )
{
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
{
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@
-176,7
+176,7
@@
VG_STATIC void _vg_loader_render_ring( float opacity )
glDrawArrays( GL_TRIANGLES, 0, 6 );
}
glDrawArrays( GL_TRIANGLES, 0, 6 );
}
-
VG_STATIC
void _vg_loader_render(void)
+
static
void _vg_loader_render(void)
{
glViewport( 0,0, vg.window_x, vg.window_y );
glBindFramebuffer( GL_FRAMEBUFFER, 0 );
{
glViewport( 0,0, vg.window_x, vg.window_y );
glBindFramebuffer( GL_FRAMEBUFFER, 0 );
@@
-184,21
+184,20
@@
VG_STATIC void _vg_loader_render(void)
glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
_vg_render_log();
glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
_vg_render_log();
- vg.loader_ring =
0.8
f;
+ vg.loader_ring =
1.0
f;
}
}
-
VG_STATIC
void vg_load_full(void);
+
static
void vg_load_full(void);
-VG_STATIC int _vg_loader_thread(void *pfn)
-{
+static int _vg_loader_thread( void *pfn ){
if( setjmp( vg.env_loader_exit ) )
return 0;
/* Run client loader */
vg_info( "Starting client loader thread @%p\n", pfn );
if( setjmp( vg.env_loader_exit ) )
return 0;
/* Run client loader */
vg_info( "Starting client loader thread @%p\n", pfn );
- void (*call_func)(void) = pfn;
- call_func();
+ void (*call_func)(void
*data
) = pfn;
+ call_func(
vg.thread_data
);
SDL_SemPost( vg.sem_loader );
vg.thread_id_loader = 0;
SDL_SemPost( vg.sem_loader );
vg.thread_id_loader = 0;
@@
-206,16
+205,27
@@
VG_STATIC int _vg_loader_thread(void *pfn)
return 0;
}
return 0;
}
-VG_STATIC void vg_loader_start( void(*pfn)(void) )
+static int vg_loader_availible(void){
+ if( SDL_SemValue( vg.sem_loader ) ){
+ if( !(vg_async.start) )
+ return 1;
+ }
+
+ return 0;
+}
+
+static void vg_loader_start( void(*pfn)(void *data), void *data )
{
SDL_SemWait( vg.sem_loader );
{
SDL_SemWait( vg.sem_loader );
+
+ vg.thread_data = data;
SDL_CreateThread( _vg_loader_thread, "Loader thread", pfn );
}
/*
* Schedule something to be ran now, freed later. Checks in with engine status
*/
SDL_CreateThread( _vg_loader_thread, "Loader thread", pfn );
}
/*
* Schedule something to be ran now, freed later. Checks in with engine status
*/
-
VG_STATIC
void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) )
+
static
void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) )
{
if( fn_load )
fn_load();
{
if( fn_load )
fn_load();