From 6717529df75f19ae2288656265c832a41382d432 Mon Sep 17 00:00:00 2001 From: sakya_tg Date: Tue, 22 Apr 2008 07:11:38 +0000 Subject: [PATCH] --- CHANGELOG.TXT | 3 ++- README.TXT | 2 +- dialog.c | 8 ++++---- libosl.a | Bin 738222 -> 738446 bytes osk.c | 13 +++++------- release.sh | 3 ++- samples/intraFont/main.c | 2 +- samples/saveAndLoad/main.c | 7 ++++--- saveload.c | 21 ++++++++++--------- text.h | 40 +++++++++++++++++++------------------ 10 files changed, 52 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT index 8f829fa..af67b2d 100644 --- a/CHANGELOG.TXT +++ b/CHANGELOG.TXT @@ -1,9 +1,10 @@ Version MOD 1.0.1 ----------------- -Added: Support for UTF-8 with intraFont (many thanks to nextos!!!) + Use INTRAFONT_STRING_UTF8 to init intraFont -Fixed: corrupted graphic using intraFont -Fixed: MP3/ATRAC3+ playback under kernel 3.xx (sorry, I didn't test it before) --Fixed: crash in MP3 playback after some seconds +-Fixed: crash in MP3 playback after some seconds (many thanks to Drakon for reporting and testing) -Fixed: message boxes work now. diff --git a/README.TXT b/README.TXT index a8325a1..feae6fd 100644 --- a/README.TXT +++ b/README.TXT @@ -37,4 +37,4 @@ THANKS ------ InsertWittyName for all the sdk's dialog samples Brunni for OSLib -Ben Hur for intraFont +BenHur for intraFont diff --git a/dialog.c b/dialog.c index 4bd810d..66456bc 100644 --- a/dialog.c +++ b/dialog.c @@ -91,6 +91,7 @@ void oslDrawDialog() { if (dialogType == OSL_DIALOG_MESSAGE || dialogType == OSL_DIALOG_ERROR){ switch(sceUtilityMsgDialogGetStatus()) { + case PSP_UTILITY_DIALOG_INIT: case PSP_UTILITY_DIALOG_VISIBLE: sceGuFinish(); sceGuSync(0,0); @@ -107,8 +108,7 @@ void oslDrawDialog() } }else if (dialogType == OSL_DIALOG_NETCONF){ switch(sceUtilityNetconfGetStatus()){ - case PSP_UTILITY_DIALOG_NONE: - break; + case PSP_UTILITY_DIALOG_INIT: case PSP_UTILITY_DIALOG_VISIBLE: sceGuFinish(); sceGuSync(0,0); @@ -118,11 +118,11 @@ void oslDrawDialog() break; case PSP_UTILITY_DIALOG_QUIT: sceUtilityNetconfShutdownStart(); - //dialogType = OSL_DIALOG_NONE; break; + case PSP_UTILITY_DIALOG_NONE: case PSP_UTILITY_DIALOG_FINISHED: break; - } + } } } diff --git a/libosl.a b/libosl.a index a310c97966258d6c721a287f82f718f6362561f4..d2be1088ee16bd9606401f504ed843208a0b9272 100644 GIT binary patch delta 5254 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 diff --git a/osk.c b/osk.c index e4202b2..b1c81a4 100644 --- a/osk.c +++ b/osk.c @@ -63,8 +63,7 @@ void oslInitOsk(char *descStr, char *initialStr, int textLimit, int linesNumber) void oslDrawOsk() { switch(sceUtilityOskGetStatus()){ - case PSP_UTILITY_DIALOG_INIT : - break; + case PSP_UTILITY_DIALOG_INIT: case PSP_UTILITY_DIALOG_VISIBLE : sceDisplayWaitVblankStart(); sceDisplayWaitVblankStart(); @@ -74,14 +73,12 @@ void oslDrawOsk() sceGuStart(GU_DIRECT, osl_list); oslSetAlpha(OSL_FX_RGBA, 0xff); break; - case PSP_UTILITY_DIALOG_QUIT : + case PSP_UTILITY_DIALOG_QUIT: sceUtilityOskShutdownStart(); break; - case PSP_UTILITY_DIALOG_FINISHED : - break; - case PSP_UTILITY_DIALOG_NONE : - default : - break; + case PSP_UTILITY_DIALOG_FINISHED: + case PSP_UTILITY_DIALOG_NONE: + break; } } diff --git a/release.sh b/release.sh index 8ddaf3d..3ae1a50 100644 --- a/release.sh +++ b/release.sh @@ -5,9 +5,10 @@ echo echo "-------------------" echo "OSLib release maker" echo "-------------------" +echo "Deleting target directory...." rm -rf $TARGET -echo "Creating directories...." +echo "Creating target directories...." mkdir -p $TARGET mkdir -p $TARGET/Install mkdir -p $TARGET/Install/oslib diff --git a/samples/intraFont/main.c b/samples/intraFont/main.c index fea7e7e..4b10139 100644 --- a/samples/intraFont/main.c +++ b/samples/intraFont/main.c @@ -178,7 +178,7 @@ int main(){ oslDrawString(470, y, "right"); oslIntraFontSetStyle(ltn[8], 1.0f,WHITE,BLACK,0); - y += 50; + y += 40; oslIntraFontSetStyle(ltn[4], 1.0f,BLACK,WHITE,INTRAFONT_ALIGN_CENTER); oslSetFont(ltn[4]); oslDrawString(240, y, "Press X to quit"); diff --git a/samples/saveAndLoad/main.c b/samples/saveAndLoad/main.c index d4fa980..082a155 100644 --- a/samples/saveAndLoad/main.c +++ b/samples/saveAndLoad/main.c @@ -100,7 +100,9 @@ int main(){ oslSetFont(font); while(runningFlag && !osl_quit){ - if (!skip){ + type = oslGetSaveLoadType(); + + if (!skip){ oslStartDrawing(); oslDrawImageXY(bkg, 0, 0); @@ -109,10 +111,9 @@ int main(){ oslDrawString(30, 150, "Press /\\ to quit."); oslDrawString(30, 200, message); - type = oslGetSaveLoadType(); if (type != OSL_DIALOG_NONE){ oslDrawSaveLoad(); - if (oslGetLoadSaveStatus() == OSL_DIALOG_NONE){ + if (oslGetLoadSaveStatus() == PSP_UTILITY_DIALOG_NONE){ if (oslSaveLoadGetResult() == OSL_SAVELOAD_CANCEL) sprintf(message, "Cancel"); else if (type == OSL_DIALOG_LOAD) diff --git a/saveload.c b/saveload.c index 7fdae4b..eb3962c 100644 --- a/saveload.c +++ b/saveload.c @@ -15,6 +15,8 @@ int saveLoadType = OSL_DIALOG_NONE; void oslInitSaveDialog(struct oslSaveLoad *saveData){ memset(&savedata, 0, sizeof(SceUtilitySavedataParam)); + memset(&newData, 0, sizeof(PspUtilitySavedataListSaveNewData)); + savedata.base.size = sizeof(SceUtilitySavedataParam); sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &savedata.base.language); @@ -28,8 +30,9 @@ void oslInitSaveDialog(struct oslSaveLoad *saveData){ savedata.overwrite = 1; savedata.focus = PSP_UTILITY_SAVEDATA_FOCUS_LATEST; // Set initial focus to the newest file (for loading) - //strncpy(savedata.key, key, 16); - +#if _PSP_FW_VERSION >= 200 + strncpy(savedata.key, key, 16); +#endif strcpy(savedata.gameName, saveData->gameID); // First part of the save name, game identifier name strcpy(savedata.saveName, saveData->saveName); // Second part of the save name, save identifier name @@ -96,8 +99,9 @@ void oslInitLoadDialog(struct oslSaveLoad *loadData){ savedata.overwrite = 1; savedata.focus = PSP_UTILITY_SAVEDATA_FOCUS_LATEST; // Set initial focus to the newest file (for loading) - //strncpy(savedata.key, key, 16); - +#if _PSP_FW_VERSION >= 200 + strncpy(savedata.key, key, 16); +#endif strcpy(savedata.gameName, loadData->gameID); // First part of the save name, game identifier name strcpy(savedata.saveName, loadData->saveName); // Second part of the save name, save identifier name @@ -107,7 +111,6 @@ void oslInitLoadDialog(struct oslSaveLoad *loadData){ strcpy(savedata.fileName, "DATA.BIN"); // name of the data file savedata.dataBuf = loadData->data; - //savedata.dataBuf = malloc(sizeof(*data)); savedata.dataBufSize = loadData->dataSize; savedata.dataSize = loadData->dataSize; @@ -118,7 +121,8 @@ void oslInitLoadDialog(struct oslSaveLoad *loadData){ void oslDrawSaveLoad(){ switch(sceUtilitySavedataGetStatus()) { - case PSP_UTILITY_DIALOG_VISIBLE: + case PSP_UTILITY_DIALOG_INIT: + case PSP_UTILITY_DIALOG_VISIBLE: sceGuFinish(); sceGuSync(0,0); sceUtilitySavedataUpdate(1); @@ -128,10 +132,9 @@ void oslDrawSaveLoad(){ case PSP_UTILITY_DIALOG_QUIT: sceUtilitySavedataShutdownStart(); break; - case PSP_UTILITY_DIALOG_FINISHED: - break; + case PSP_UTILITY_DIALOG_FINISHED: case PSP_UTILITY_DIALOG_NONE: - return; + break; } } diff --git a/text.h b/text.h index 48eedd8..b547c14 100644 --- a/text.h +++ b/text.h @@ -167,25 +167,27 @@ The same options will be applied to all intraFonts INTRAFONT_XXX flags as defined above including flags related to CACHE (ored together) \code -INTRAFONT_ADVANCE_H default: advance horizontaly from one char to the next -INTRAFONT_ADVANCE_V -INTRAFONT_ALIGN_LEFT default: left-align the text -INTRAFONT_ALIGN_CENTER -INTRAFONT_ALIGN_RIGHT -INTRAFONT_WIDTH_VAR default: variable-width -INTRAFONT_WIDTH_FIX set your custom fixed witdh to 24 pixels: INTRAFONT_WIDTH_FIX | 24 - (max is 255, set to 0 to use default fixed width, this width will be scaled by size) -INTRAFONT_ACTIVE assumes the font-texture resides inside sceGuTex already, prevents unecessary reloading -> very small speed-gain -INTRAFONT_STRING_ASCII default: interpret strings as ascii text -INTRAFONT_STRING_SJIS interpret strings as shifted-jis (japanese) -INTRAFONT_CACHE_MED default: 256x256 texture (enough to cache about 100 chars) -INTRAFONT_CACHE_LARGE 512x512 texture(enough to cache all chars of ltn0.pgf or ... or ltn15.pgf or kr0.pgf) -INTRAFONT_CACHE_ASCII try to cache all ASCII chars during fontload (uses less memory and is faster to draw text, but slower to load font) - if it fails: (because the cache is too small) it will automatically switch to chache on-the-fly with a medium texture - if it succeeds: (all chars and shadows fit into chache) it will free some now unneeded memory -INTRAFONT_CACHE_ALL try to cache all chars during fontload (uses less memory and is faster to draw text, but slower to load font) - if it fails: (because the cache is too small) it will automatically switch to chache on-the-fly with a large texture - if it succeeds: (all chars and shadows fit into chache) it will free some now unneeded memory +#define INTRAFONT_ADVANCE_H 0x00000000 //default: advance horizontaly from one char to the next +#define INTRAFONT_ADVANCE_V 0x00000100 +#define INTRAFONT_ALIGN_LEFT 0x00000000 //default: left-align the text +#define INTRAFONT_ALIGN_CENTER 0x00000200 +#define INTRAFONT_ALIGN_RIGHT 0x00000400 +#define INTRAFONT_WIDTH_VAR 0x00000000 //default: variable-width +#define INTRAFONT_WIDTH_FIX 0x00000800 //set your custom fixed witdh to 24 pixels: INTRAFONT_WIDTH_FIX | 24 + //(max is 255, set to 0 to use default fixed width, this width will be scaled by size) +#define INTRAFONT_ACTIVE 0x00001000 //assumes the font-texture resides inside sceGuTex already, prevents unecessary reloading -> very small speed-gain +#define INTRAFONT_STRING_ASCII 0x00000000 //default: interpret strings as ascii text +#define INTRAFONT_STRING_SJIS 0x00002000 //interpret strings as shifted-jis (japanese) +#define INTRAFONT_STRING_UTF8 0x00010000 //interpret strings as UTF-8 +#define INTRAFONT_CACHE_MED 0x00000000 //default: 256x256 texture (enough to cache about 100 chars) +#define INTRAFONT_CACHE_LARGE 0x00004000 //512x512 texture(enough to cache all chars of ltn0.pgf or ... or ltn15.pgf or kr0.pgf) +#define INTRAFONT_CACHE_ASCII 0x00008000 //try to cache all ASCII chars during fontload (uses less memory and is faster to draw text, but slower to load font) + + //if it fails: (because the cache is too small) it will automatically switch to chache on-the-fly with a medium texture + //if it succeeds: (all chars and shadows fit into chache) it will free some now unneeded memory +#define INTRAFONT_CACHE_ALL 0x0000C000 //try to cache all chars during fontload (uses less memory and is faster to draw text, but slower to load font) + //if it fails: (because the cache is too small) it will automatically switch to chache on-the-fly with a large texture + //if it succeeds: (all chars and shadows fit into chache) it will free some now unneeded memory \endcode */ extern int oslIntraFontInit(unsigned short options);