add hud font switching code

This commit is contained in:
zeromus 2010-11-19 08:26:07 +00:00
parent 4e181756da
commit ef37c65f92
5 changed files with 107 additions and 49 deletions

View File

@ -62,6 +62,45 @@
typedef std::map<std::string, const agg::int8u*> TAgg_Font_Table;
static TAgg_Font_Table font_table;
font_type fonts_list[] =
{
{ agg::gse4x6, "gse4x6" },
{ agg::gse4x8, "gse4x8" },
{ agg::gse5x7, "gse5x7" },
{ agg::gse5x9, "gse5x9" },
{ agg::gse6x9, "gse6x9" },
{ agg::gse6x12, "gse6x12" },
{ agg::gse7x11, "gse7x11" },
{ agg::gse7x11_bold, "gse7x11_bold" },
{ agg::gse7x15, "gse7x15" },
{ agg::gse7x15_bold, "gse7x15_bold" },
{ agg::gse8x16, "gse8x16" },
{ agg::gse8x16_bold, "gse8x16_bold" },
{ agg::mcs11_prop, "mcs11_prop" },
{ agg::mcs11_prop_condensed, "mcs11_prop_condensed" },
{ agg::mcs12_prop, "mcs12_prop" },
{ agg::mcs13_prop, "mcs13_prop" },
{ agg::mcs5x10_mono, "mcs5x10_mono" },
{ agg::mcs5x11_mono, "mcs5x11_mono" },
{ agg::mcs6x10_mono, "mcs6x10_mono" },
{ agg::mcs6x11_mono, "mcs6x11_mono" },
{ agg::mcs7x12_mono_high, "mcs7x12_mono_high" },
{ agg::mcs7x12_mono_low, "mcs7x12_mono_low" },
{ agg::verdana12, "verdana12" },
{ agg::verdana12_bold, "verdana12_bold" },
{ agg::verdana13, "verdana13" },
{ agg::verdana13_bold, "verdana13_bold" },
{ agg::verdana14, "verdana14" },
{ agg::verdana14_bold, "verdana14_bold" },
{ agg::verdana16, "verdana16" },
{ agg::verdana16_bold, "verdana16_bold" },
{ agg::verdana17, "verdana17" },
{ agg::verdana17_bold, "verdana17_bold" },
{ agg::verdana18, "verdana18" },
{ agg::verdana18_bold, "verdana18_bold" },
};
int font_Nums = ARRAY_SIZE(fonts_list);
const agg::int8u* AggDrawTarget::lookupFont(const std::string& name)
{
TAgg_Font_Table::iterator it(font_table.find(name));
@ -71,51 +110,8 @@ const agg::int8u* AggDrawTarget::lookupFont(const std::string& name)
static void Agg_init_fonts()
{
struct font_type
{
const agg::int8u* font;
const char* name;
}
fonts[] =
{
{ agg::gse4x6, "gse4x6" },
{ agg::gse4x8, "gse4x8" },
{ agg::gse5x7, "gse5x7" },
{ agg::gse5x9, "gse5x9" },
{ agg::gse6x9, "gse6x9" },
{ agg::gse6x12, "gse6x12" },
{ agg::gse7x11, "gse7x11" },
{ agg::gse7x11_bold, "gse7x11_bold" },
{ agg::gse7x15, "gse7x15" },
{ agg::gse7x15_bold, "gse7x15_bold" },
{ agg::gse8x16, "gse8x16" },
{ agg::gse8x16_bold, "gse8x16_bold" },
{ agg::mcs11_prop, "mcs11_prop" },
{ agg::mcs11_prop_condensed, "mcs11_prop_condensed" },
{ agg::mcs12_prop, "mcs12_prop" },
{ agg::mcs13_prop, "mcs13_prop" },
{ agg::mcs5x10_mono, "mcs5x10_mono" },
{ agg::mcs5x11_mono, "mcs5x11_mono" },
{ agg::mcs6x10_mono, "mcs6x10_mono" },
{ agg::mcs6x11_mono, "mcs6x11_mono" },
{ agg::mcs7x12_mono_high, "mcs7x12_mono_high" },
{ agg::mcs7x12_mono_low, "mcs7x12_mono_low" },
{ agg::verdana12, "verdana12" },
{ agg::verdana12_bold, "verdana12_bold" },
{ agg::verdana13, "verdana13" },
{ agg::verdana13_bold, "verdana13_bold" },
{ agg::verdana14, "verdana14" },
{ agg::verdana14_bold, "verdana14_bold" },
{ agg::verdana16, "verdana16" },
{ agg::verdana16_bold, "verdana16_bold" },
{ agg::verdana17, "verdana17" },
{ agg::verdana17_bold, "verdana17_bold" },
{ agg::verdana18, "verdana18" },
{ agg::verdana18_bold, "verdana18_bold" },
};
for(u32 i=0;i<ARRAY_SIZE(fonts);i++)
font_table[fonts[i].name] = fonts[i].font;
for(u32 i=0;i<font_Nums;i++)
font_table[fonts_list[i].name] = fonts_list[i].font;
}
AggDraw_Desmume aggDraw;

View File

@ -662,5 +662,11 @@ extern AggDraw_Desmume aggDraw;
void Agg_init();
struct font_type
{
const agg::int8u* font;
const char* name;
};
extern font_type fonts_list[];
extern int font_Nums;
#endif

View File

@ -234,6 +234,7 @@
using namespace std;
#ifdef EXPERIMENTAL_WIFI_COMM
bool bSocketsAvailable = false;
#include "winpcap.h"
@ -498,6 +499,8 @@ struct NDS_fw_config_data win_fw_config;
Color::Fuchsia
};*/
LRESULT CALLBACK HUDFontSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp);
LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp);
LRESULT CALLBACK SoundSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK EmulationSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
@ -2658,6 +2661,7 @@ int _main()
start_paused = cmdline.start_paused!=0;
Desmume_InitOnce();
aggDraw.hud->setFont(fonts_list[GetPrivateProfileInt("Display","HUD Font", font_Nums-1, IniName)].name);
//in case this isnt actually a singlecore system, but the user requested it
//then restrict ourselves to one core
@ -5235,6 +5239,22 @@ DOKEYDOWN:
if(tpaused) NDS_UnPause();
}
return 0;
case IDD_FONTCONFIG:
{
bool tpaused = false;
if(execute)
{
tpaused = true;
NDS_Pause();
}
DialogBoxW(hAppInst, MAKEINTRESOURCEW(IDD_FONTSETTINGS), hwnd, (DLGPROC)HUDFontSettingsDlgProc);
if(tpaused) NDS_UnPause();
}
return 0;
case IDC_FRAMESKIPAUTO:
{
char text[80];
@ -5537,7 +5557,38 @@ void Change3DCoreWithFallbackAndSave(int newCore, int fallbackCore)
int gpu3dSaveValue = ((cur3DCore != GPU3D_NULL) ? cur3DCore : GPU3D_NULL_SAVED);
WritePrivateProfileInt("3D", "Renderer", gpu3dSaveValue, IniName);
}
LRESULT CALLBACK HUDFontSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
{
switch(msg)
{
case WM_INITDIALOG:
{
for(int i=0;i<font_Nums;i++) ComboBox_AddString(GetDlgItem(hw, IDC_FONTCOMBO), fonts_list[i].name);
ComboBox_SetCurSel(GetDlgItem(hw, IDC_FONTCOMBO),GetPrivateProfileInt("Display","HUD Font", font_Nums-1, IniName));
}
return TRUE;
case WM_COMMAND:
{
switch(LOWORD(wp))
{
case IDOK:
{
int i = ComboBox_GetCurSel(GetDlgItem(hw, IDC_FONTCOMBO));
aggDraw.hud->setFont(fonts_list[i].name);
WritePrivateProfileInt("Display","HUD Font", i, IniName);
}
case IDCANCEL:
{
EndDialog(hw, TRUE);
}
return TRUE;
}
return TRUE;
}
}
return FALSE;
}
LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
{
switch(msg)

View File

@ -43,6 +43,7 @@
#define IDM_MBG2 122
#define IDD_CHEAT_EXPORT 122
#define IDM_MBG3 123
#define IDD_FONTSETTINGS 123
#define IDM_SBG0 124
#define IDM_SBG1 125
#define IDM_SBG2 126
@ -389,6 +390,7 @@
#define IDC_RFOLDER 1039
#define IDC_2012 1039
#define IDC_BBROWSE2 1040
#define IDC_FONTCOMBO 1040
#define IDC_PATHDESMUME 1041
#define IDC_BRESTART 1042
#define IDC_BVIEW 1043
@ -853,6 +855,9 @@
#define ID_SAVETYPE_FORCEASCURRENT 40082
#define IDC_SAVETYPE_FORCE 40083
#define ID_DISPLAYMETHOD_VSYNC 40084
#define ID_TOOLS_SETFONT 40085
#define ID_CONFIG_SETFONT 40086
#define IDD_FONTCONFIG 40087
#define IDC_LABEL_UP 50000
#define IDC_LABEL_RIGHT 50001
#define IDC_LABEL_LEFT 50002
@ -952,9 +957,9 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 123
#define _APS_NEXT_COMMAND_VALUE 40085
#define _APS_NEXT_CONTROL_VALUE 1040
#define _APS_NEXT_RESOURCE_VALUE 125
#define _APS_NEXT_COMMAND_VALUE 40088
#define _APS_NEXT_CONTROL_VALUE 1041
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Binary file not shown.