X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=font.h;h=34441ca3071f1913169dba9603d3f60d40b4c3f9;hb=HEAD;hp=c00aece3c9f2f46a59ae2e3f76062284bd93e113;hpb=df9f72d2912a5424d37dfdb02f76aba8f1ed4df1;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/font.h b/font.h index c00aece..34441ca 100644 --- a/font.h +++ b/font.h @@ -1,13 +1,12 @@ -#ifndef FONT_H -#define FONT_H - +#pragma once #include "model.h" #include "entity.h" -#include "camera.h" +#include "vg/vg_camera.h" #include "shaders/model_font.h" #include "shaders/scene_font.h" #include "world_render.h" #include "depth_compare.h" +#include enum efont_SRglyph{ k_SRglyph_end = 0x00, /* control characters */ @@ -57,7 +56,15 @@ enum efont_SRglyph{ k_SRglyph_kbm_space = 0xa1, k_SRglyph_kbm_return = 0xa2, k_SRglyph_kbm_escape = 0xa3, - k_SRglyph_kbm_mousemove = 0xa4 + k_SRglyph_kbm_mousemove = 0xa4, + +#if 0 + k_SRglyph_vg_ret = 0xa5, + k_SRglyph_vg_link = 0xa6, + k_SRglyph_vg_square = 0xa7, + k_SRglyph_vg_triangle = 0xa8, + k_SRglyph_vg_circle = 0xa9 +#endif }; typedef struct font3d font3d; @@ -77,11 +84,11 @@ static void font3d_load( font3d *font, const char *mdl_path, void *alloc ){ vg_linear_clear( vg_mem.scratch ); mdl_array_ptr fonts; - mdl_load_array( &font->mdl, &fonts, "ent_font", vg_mem.scratch ); + MDL_LOAD_ARRAY( &font->mdl, &fonts, ent_font, vg_mem.scratch ); font->info = *((ent_font *)mdl_arritm(&fonts,0)); - mdl_load_array( &font->mdl, &font->font_variants, "ent_font_variant", alloc); - mdl_load_array( &font->mdl, &font->glyphs, "ent_glyph", alloc ); + MDL_LOAD_ARRAY( &font->mdl, &font->font_variants, ent_font_variant, alloc); + MDL_LOAD_ARRAY( &font->mdl, &font->glyphs, ent_glyph, alloc ); vg_linear_clear( vg_mem.scratch ); @@ -92,7 +99,7 @@ static void font3d_load( font3d *font, const char *mdl_path, void *alloc ){ void *data = vg_linear_alloc( vg_mem.scratch, tex0->file.pack_size ); mdl_fread_pack_file( &font->mdl, &tex0->file, data ); - mdl_async_load_glmesh( &font->mdl, &font->mesh ); + mdl_async_load_glmesh( &font->mdl, &font->mesh, NULL ); vg_tex2d_load_qoi_async( data, tex0->file.pack_size, VG_TEX2D_LINEAR|VG_TEX2D_CLAMP, &font->texture ); @@ -100,11 +107,6 @@ static void font3d_load( font3d *font, const char *mdl_path, void *alloc ){ mdl_close( &font->mdl ); } -static void font3d_init(void){ - shader_model_font_register(); - shader_scene_font_register(); -} - static u32 font3d_find_variant( font3d *font, const char *name ){ for( u32 i=0; ifont_variants ); i ++ ){ ent_font_variant *variant = mdl_arritm( &font->font_variants, i ); @@ -135,18 +137,19 @@ static gui_font3d; */ static void font3d_bind( font3d *font, enum font_shader shader, int depth_compare, world_instance *world, - camera *cam ){ + vg_camera *cam ){ gui_font3d.shader = shader; gui_font3d.font = font; glActiveTexture( GL_TEXTURE1 ); glBindTexture( GL_TEXTURE_2D, font->texture ); - if( shader == k_font_shader_default ){ + if( shader == k_font_shader_default ) + { shader_model_font_use(); shader_model_font_uColour( (v4f){1.0f,1.0f,1.0f,1.0f} ); shader_model_font_uTexMain( 1 ); + shader_model_font_uDepthMode( depth_compare ); - shader_model_font_uDepthCompare( depth_compare ); if( depth_compare ){ depth_compare_bind( shader_model_font_uTexSceneDepth, @@ -156,8 +159,8 @@ static void font3d_bind( font3d *font, enum font_shader shader, shader_model_font_uPv( cam->mtx.pv ); } - else if( shader == k_font_shader_world ){ - assert( world ); + else if( shader == k_font_shader_world ) + { shader_scene_font_use(); shader_scene_font_uTexGarbage(0); shader_scene_font_uTexMain(1); @@ -184,7 +187,7 @@ static ent_glyph *font3d_glyph( font3d *font, u32 variant_id, u32 utf32 ){ } static void font3d_set_transform( const char *text, - camera *cam, m4x3f transform ){ + vg_camera *cam, m4x3f transform ){ v4_copy( (v4f){0.0f,0.0f,0.0f,1.0f}, gui_font3d.offset ); m4x4f prev_mtx; @@ -292,7 +295,7 @@ static void font3d_draw( const char *text ){ } static f32 font3d_simple_draw( u32 variant_id, const char *text, - camera *cam, m4x3f transform ){ + vg_camera *cam, m4x3f transform ){ if( !text ) return 0.0f; gui_font3d.variant_id = variant_id; @@ -318,5 +321,3 @@ static f32 font3d_string_width( u32 variant_id, const char *text ){ return width; } - -#endif /* FONT_H */