-#include "shaders/scene_scoretext.h"
-#include "shaders/scene_vertex_blend.h"
-
-GLuint tex_scoretex;
-float sfd_encode_glyph( char c )
-{
- int value = 0;
- if( c >= 'a' && c <= 'z' )
- value = c-'a'+11;
- else if( c >= '0' && c <= '9' )
- value = c-'0'+1;
- else if( c >= 'A' && c <= 'Z' )
- value = c-'A'+11;
- else if( c >= '\x01' && c <= '\x01'+10 )
- value = 63-c;
- else{
- int base = 11+26;
-
- switch( c ){
- case '!': value=base+0; break;
- case '?': value=base+1; break;
- case ',': value=base+2; break;
- case '.': value=base+3; break;
- case '#': value=base+4; break;
- case '$': value=base+5; break;
- case '%': value=base+6; break;
- case '*': value=base+7; break;
- case '+': value=base+8; break;
- case '-': value=base+9; break;
- case '/': value=base+10; break;
- case ':': value=base+11; break;
- default: value=0; break;
- }
- }
-
- return (float)value;
-}
-
-VG_STATIC void sfd_encode( u32 row, const char *str )
-{
- int end=0;
- u32 row_h = world_global.sfd.h -1 -row;
-
- for( int i=0; i<world_global.sfd.w; i++ ){
- u32 idx = (world_global.sfd.w*row_h + i) * 2;
-
- if( end ){
- world_global.sfd.buffer[idx] = 0.0f;
- }
- else{
- if( !str[i] )
- end = 1;
-
- world_global.sfd.buffer[idx] = sfd_encode_glyph( str[i] );
- }
- }
-}
-
-VG_STATIC void sfd_update(void)
-{
- for( int i=0; i<world_global.sfd.w*world_global.sfd.h; i++ ){
- float *target = &world_global.sfd.buffer[i*2+0],
- *cur = &world_global.sfd.buffer[i*2+1];
-
- float const rate = vg.time_delta * 15.2313131414f;
- float d1 = *target-*cur;
-
- if( fabsf(d1) > rate ){
- *cur += rate;
- if( *cur > 60.0f )
- *cur -= 60.0f;
- }
- else
- *cur = *target;
- }
-}
-
-VG_STATIC void bind_terrain_noise(void);
-VG_STATIC void sfd_render( world_instance *world, camera *cam, m4x3f transform )
-{
- mesh_bind( &world_global.sfd.mesh_display );
- shader_scene_scoretext_use();
- shader_scene_scoretext_uTexMain(1);
-
- world_link_lighting_ub( world, _shader_scene_scoretext.id );
- world_bind_position_texture( world, _shader_scene_scoretext.id,
- _uniform_scene_scoretext_g_world_depth, 2 );
- world_bind_light_array( world, _shader_scene_scoretext.id,
- _uniform_scene_scoretext_uLightsArray, 3 );
- world_bind_light_index( world, _shader_scene_scoretext.id,
- _uniform_scene_scoretext_uLightsIndex, 4 );