glyphs;
};
-VG_STATIC void font3d_load( font3d *font, const char *mdl_path, void *alloc )
+static void font3d_load( font3d *font, const char *mdl_path, void *alloc )
{
mdl_open( &font->mdl, mdl_path, alloc );
mdl_load_metadata_block( &font->mdl, alloc );
mdl_close( &font->mdl );
}
-VG_STATIC void font3d_init(void)
+static void font3d_init(void)
{
shader_model_font_register();
shader_scene_font_register();
}
-VG_STATIC u32 font3d_find_variant( font3d *font, const char *name )
+static u32 font3d_find_variant( font3d *font, const char *name )
{
for( u32 i=0; i<mdl_arrcount( &font->font_variants ); i ++ ){
ent_font_variant *variant = mdl_arritm( &font->font_variants, i );
return 0;
}
-VG_STATIC void font3d_bind( font3d *font, camera *cam )
+static void font3d_bind( font3d *font, camera *cam )
{
shader_model_font_use();
shader_model_font_uColour( (v4f){1.0f,1.0f,1.0f,1.0f} );
mesh_bind( &font->mesh );
}
-VG_STATIC ent_glyph *font3d_glyph( font3d *font, u32 variant_id, u32 utf32 )
+static ent_glyph *font3d_glyph( font3d *font, u32 variant_id, u32 utf32 )
{
if( utf32 < font->info.glyph_utf32_base ) return NULL;
if( utf32 >= font->info.glyph_utf32_base+font->info.glyph_count) return NULL;
shader;
};
-VG_STATIC
+static
void font3d_begin( const char *text,
camera *cam, m4x3f transform, struct font3d_render *render )
{
shader_model_font_uMdl( transform );
}
else if( render->shader == k_font_shader_world ){
-
-
- vg_info( "-----\n" );
- for( int i=0; i<4; i++ ){
- vg_info( PRINTF_v4f( prev_mtx[i] ) );
- }
-
shader_scene_font_uPvmPrev( prev_mtx );
shader_scene_font_uMdl( transform );
}
render->u8pch = (u8*)text;
}
-VG_STATIC void font3d_setoffset( struct font3d_render *render, v4f offset ){
+static void font3d_setoffset( struct font3d_render *render, v4f offset ){
if( render->shader == k_font_shader_default )
shader_model_font_uOffset( offset );
else if( render->shader == k_font_shader_world )
shader_scene_font_uOffset( offset );
}
-VG_STATIC void font3d_draw( struct font3d_render *render )
+static void font3d_draw( struct font3d_render *render )
{
u32 max_chars = 512;
while( render->u8pch && max_chars ){
render->u8pch = NULL;
}
-VG_STATIC
+static
float font3d_simple_draw( font3d *font, u32 variant_id, enum font_shader shader,
const char *text,
camera *cam, m4x3f transform )
return render.offset[0];
}
-VG_STATIC
+static
float font3d_string_width( font3d *font, u32 variant_id, const char *text )
{
if( !text ) return 0.0f;
float width = 0.0f;
+
+ const u8 *buf = (const u8 *)text;
for( int i=0;; i++ ){
- u32 c = text[i];
+ u32 c = buf[i];
if(!c) break;
ent_glyph *glyph = font3d_glyph( font, variant_id, c );