Skip to content

Commit 444293a

Browse files
committed
Save preferred render mode
1 parent 9128135 commit 444293a

1 file changed

Lines changed: 67 additions & 60 deletions

File tree

libogc/video.c

Lines changed: 67 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3025,79 +3025,86 @@ f32 VIDEO_GetAspectRatio(void)
30253025

30263026
GXRModeObj * VIDEO_GetPreferredMode(GXRModeObj *mode)
30273027
{
3028+
static GXRModeObj *rmode = NULL;
30283029

3029-
GXRModeObj *rmode = NULL;
3030-
3030+
if (rmode == NULL) {
30313031
#if defined(HW_RVL)
3032-
u32 tvmode = CONF_GetVideo();
3033-
if (CONF_GetProgressiveScan() > 0 && VIDEO_HaveComponentCable()) {
3034-
switch (tvmode) {
3035-
case CONF_VIDEO_PAL:
3036-
if (CONF_GetEuRGB60() > 0)
3037-
rmode = &TVEurgb60Hz480Prog;
3038-
else rmode = &TVPal576ProgScale;
3039-
break;
3040-
default:
3041-
rmode = &TVNtsc480Prog;
3042-
break;
3043-
}
3044-
} else {
3045-
switch (tvmode) {
3046-
case CONF_VIDEO_PAL:
3047-
if (CONF_GetEuRGB60() > 0)
3048-
rmode = &TVEurgb60Hz480IntDf;
3049-
else rmode = &TVPal576IntDfScale;
3050-
break;
3051-
case CONF_VIDEO_MPAL:
3052-
if (VIDEO_HaveComponentCable())
3032+
u32 tvmode = CONF_GetVideo();
3033+
if (CONF_GetProgressiveScan() > 0 && VIDEO_HaveComponentCable()) {
3034+
switch (tvmode) {
3035+
case CONF_VIDEO_PAL:
3036+
if (CONF_GetEuRGB60() > 0)
3037+
rmode = &TVEurgb60Hz480Prog;
3038+
else
3039+
rmode = &TVPal576ProgScale;
3040+
break;
3041+
default:
3042+
rmode = &TVNtsc480Prog;
3043+
break;
3044+
}
3045+
} else {
3046+
switch (tvmode) {
3047+
case CONF_VIDEO_PAL:
3048+
if (CONF_GetEuRGB60() > 0)
3049+
rmode = &TVEurgb60Hz480IntDf;
3050+
else
3051+
rmode = &TVPal576IntDfScale;
3052+
break;
3053+
case CONF_VIDEO_MPAL:
3054+
if (VIDEO_HaveComponentCable())
3055+
rmode = &TVNtsc480IntDf;
3056+
else
3057+
rmode = &TVMpal480IntDf;
3058+
break;
3059+
default:
30533060
rmode = &TVNtsc480IntDf;
3054-
else rmode = &TVMpal480IntDf;
3055-
break;
3056-
default:
3057-
rmode = &TVNtsc480IntDf;
3058-
break;
3061+
break;
3062+
}
30593063
}
3060-
}
30613064
#else
3062-
u32 tvmode = SYS_GetVideoMode();
3063-
if (SYS_GetProgressiveScan() && VIDEO_HaveComponentCable()) {
3064-
switch (tvmode) {
3065-
case SYS_VIDEO_PAL:
3066-
if (SYS_GetEuRGB60())
3067-
rmode = &TVEurgb60Hz480Prog;
3068-
else rmode = &TVPal576ProgScale;
3069-
break;
3070-
default:
3071-
rmode = &TVNtsc480Prog;
3072-
break;
3073-
}
3074-
} else {
3075-
switch (tvmode) {
3076-
case SYS_VIDEO_PAL:
3077-
if (SYS_GetEuRGB60())
3078-
rmode = &TVEurgb60Hz480IntDf;
3079-
else rmode = &TVPal576IntDfScale;
3080-
break;
3081-
case SYS_VIDEO_MPAL:
3082-
if (VIDEO_HaveComponentCable())
3065+
u32 tvmode = SYS_GetVideoMode();
3066+
if (SYS_GetProgressiveScan() && VIDEO_HaveComponentCable()) {
3067+
switch (tvmode) {
3068+
case SYS_VIDEO_PAL:
3069+
if (SYS_GetEuRGB60())
3070+
rmode = &TVEurgb60Hz480Prog;
3071+
else
3072+
rmode = &TVPal576ProgScale;
3073+
break;
3074+
default:
3075+
rmode = &TVNtsc480Prog;
3076+
break;
3077+
}
3078+
} else {
3079+
switch (tvmode) {
3080+
case SYS_VIDEO_PAL:
3081+
if (SYS_GetEuRGB60())
3082+
rmode = &TVEurgb60Hz480IntDf;
3083+
else
3084+
rmode = &TVPal576IntDfScale;
3085+
break;
3086+
case SYS_VIDEO_MPAL:
3087+
if (VIDEO_HaveComponentCable())
3088+
rmode = &TVNtsc480IntDf;
3089+
else
3090+
rmode = &TVMpal480IntDf;
3091+
break;
3092+
default:
30833093
rmode = &TVNtsc480IntDf;
3084-
else rmode = &TVMpal480IntDf;
3085-
break;
3086-
default:
3087-
rmode = &TVNtsc480IntDf;
3088-
break;
3094+
break;
3095+
}
30893096
}
3090-
}
30913097
#endif
3098+
}
30923099

30933100
if (mode != NULL) {
3094-
rmode = memcpy(mode, rmode, sizeof(GXRModeObj));
3095-
rmode->viWidth = 704;
3096-
rmode->viXOrigin = 8;
3101+
mode = memcpy(mode, rmode, sizeof(GXRModeObj));
3102+
mode->viWidth = 704;
3103+
mode->viXOrigin = 8;
3104+
return mode;
30973105
}
30983106

30993107
return rmode;
3100-
31013108
}
31023109

31033110
VIRetraceCallback VIDEO_SetPreRetraceCallback(VIRetraceCallback callback)

0 commit comments

Comments
 (0)