Savedata: Skip and defer texture exist check.
We can skip if there's no UI.
This commit is contained in:
parent
8c1acc30e4
commit
5bed35b293
5 changed files with 78 additions and 24 deletions
|
@ -56,6 +56,29 @@ const static int SAVEDATA_DIALOG_SIZE_V1 = 1480;
|
|||
const static int SAVEDATA_DIALOG_SIZE_V2 = 1500;
|
||||
const static int SAVEDATA_DIALOG_SIZE_V3 = 1536;
|
||||
|
||||
static bool IsNotVisibleAction(SceUtilitySavedataType type) {
|
||||
switch (type) {
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOLOAD:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOSAVE:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_SIZES:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_LIST:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_FILES:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_GETSIZE:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATASECURE:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATA:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATASECURE:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATA:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_READDATA:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_DELETEDATA:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTODELETE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
PSPSaveDialog::PSPSaveDialog(UtilityDialogType type) : PSPDialog(type) {
|
||||
param.SetPspParam(0);
|
||||
|
@ -87,6 +110,7 @@ int PSPSaveDialog::Init(int paramAddr)
|
|||
Memory::Memcpy(&request, requestAddr, size);
|
||||
Memory::Memcpy(&originalRequest, requestAddr, size);
|
||||
|
||||
param.SetIgnoreTextures(IsNotVisibleAction((SceUtilitySavedataType)(u32)request.mode));
|
||||
int retval = param.SetPspParam(&request);
|
||||
|
||||
const u32 mode = (u32)param.GetPspParam()->mode;
|
||||
|
@ -345,7 +369,7 @@ void PSPSaveDialog::DisplaySaveList(bool canMove) {
|
|||
PPGeImageStyle imageStyle = FadedImageStyle();
|
||||
auto fileInfo = param.GetFileInfo(displayCount);
|
||||
|
||||
if (fileInfo.size == 0 && fileInfo.texture != NULL)
|
||||
if (fileInfo.size == 0 && fileInfo.texture && fileInfo.texture->IsValid())
|
||||
imageStyle.color = CalcFadedColor(0xFF777777);
|
||||
|
||||
// Calc save image position on screen
|
||||
|
@ -370,7 +394,7 @@ void PSPSaveDialog::DisplaySaveList(bool canMove) {
|
|||
continue;
|
||||
|
||||
int pad = 0;
|
||||
if (fileInfo.texture != nullptr) {
|
||||
if (fileInfo.texture != nullptr && fileInfo.texture->IsValid()) {
|
||||
fileInfo.texture->SetTexture();
|
||||
int tw = fileInfo.texture->Width();
|
||||
int th = fileInfo.texture->Height();
|
||||
|
@ -420,7 +444,7 @@ void PSPSaveDialog::DisplaySaveIcon(bool checkExists)
|
|||
|
||||
int tw = 256;
|
||||
int th = 256;
|
||||
if (curSave.texture != NULL) {
|
||||
if (curSave.texture != nullptr && curSave.texture->IsValid()) {
|
||||
curSave.texture->SetTexture();
|
||||
tw = curSave.texture->Width();
|
||||
th = curSave.texture->Height();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue