progress towards win32 fonts
This commit is contained in:
parent
91386e62d0
commit
c706bb9250
|
@ -305,6 +305,9 @@ launch_rendering(Render_Target *target){
|
||||||
|
|
||||||
#undef ExtractStruct
|
#undef ExtractStruct
|
||||||
|
|
||||||
|
// TODO(allen): Put the burden of translation outside
|
||||||
|
// of this function (and other functions implementing
|
||||||
|
// the same interface).
|
||||||
internal i32
|
internal i32
|
||||||
draw_font_load(Partition *part,
|
draw_font_load(Partition *part,
|
||||||
Render_Font *font_out,
|
Render_Font *font_out,
|
||||||
|
|
|
@ -1166,6 +1166,18 @@ Font_Load_Sig(system_draw_font_load){
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (b32 success = 0; success == 0;){
|
for (b32 success = 0; success == 0;){
|
||||||
|
#if USE_WIN32_FONTS
|
||||||
|
|
||||||
|
success = win32_draw_font_load(&win32vars.font_part,
|
||||||
|
font_out,
|
||||||
|
filename,
|
||||||
|
pt_size,
|
||||||
|
tab_width,
|
||||||
|
oversample,
|
||||||
|
store_texture);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
success = draw_font_load(&win32vars.font_part,
|
success = draw_font_load(&win32vars.font_part,
|
||||||
font_out,
|
font_out,
|
||||||
filename,
|
filename,
|
||||||
|
@ -1174,6 +1186,8 @@ Font_Load_Sig(system_draw_font_load){
|
||||||
oversample,
|
oversample,
|
||||||
store_texture);
|
store_texture);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// TODO(allen): Make the growable partition something
|
// TODO(allen): Make the growable partition something
|
||||||
// that can just be passed directly to font load and
|
// that can just be passed directly to font load and
|
||||||
// let it be grown there.
|
// let it be grown there.
|
||||||
|
|
|
@ -15,8 +15,55 @@ win32_draw_font_load(Partition *part,
|
||||||
char *filename_untranslated,
|
char *filename_untranslated,
|
||||||
i32 pt_size,
|
i32 pt_size,
|
||||||
i32 tab_width,
|
i32 tab_width,
|
||||||
i32 oversample){
|
i32 oversample,
|
||||||
i32 result = 1;
|
b32 store_texture){
|
||||||
|
|
||||||
|
char space_[1024];
|
||||||
|
String filename = make_fixed_width_string(space_);
|
||||||
|
b32 translate_success = sysshared_to_binary_path(&filename, filename_untranslated);
|
||||||
|
if (!translate_success) return 0;
|
||||||
|
|
||||||
|
i32 result = 0;
|
||||||
|
|
||||||
|
AddFontResourceEx(filename.str, FR_PRIVATE, 0);
|
||||||
|
|
||||||
|
HFONT font_handle =
|
||||||
|
CreateFontA(pt_size, 0, 0, 0,
|
||||||
|
FW_NORMAL, // WEIGHT
|
||||||
|
FALSE, // ITALICS
|
||||||
|
FALSE, // UNDERLINE
|
||||||
|
FALSE, // STRIKE-OUT
|
||||||
|
ANSI_CHARSET,
|
||||||
|
OUT_DEFAULT_PRECIS,
|
||||||
|
CLIP_DEFAULT_PRECIS,
|
||||||
|
ANTIALIASED_QUALITY,
|
||||||
|
DEFAULT_PITCH|FF_DONTCARE,
|
||||||
|
filename.str);
|
||||||
|
|
||||||
|
if (font_handle){
|
||||||
|
HDC dc = CreateCompatibleDC(0);
|
||||||
|
|
||||||
|
if (dc){
|
||||||
|
// TODO(allen): Have to get metrics
|
||||||
|
|
||||||
|
result = 1;
|
||||||
|
|
||||||
|
if (store_texture){
|
||||||
|
i32 tex_width = pt_size*16*oversample;
|
||||||
|
i32 tex_height = pt_size*16*oversample;
|
||||||
|
|
||||||
|
HBITAMP bitmap = CreateCompatibleBitmap(dc, tex_width, tex_height);
|
||||||
|
|
||||||
|
// TODO(allen): pack each glyph into a texture
|
||||||
|
// and generate the equivalent data output by stb
|
||||||
|
// in the stbtt_packedchar array.
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DeleteObject(font_handle);
|
||||||
|
}
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue