Fixed DPI awareness mode, fixed crash caused by patch that fixed drawing null skyboxes
This commit is contained in:
parent
b88c729d93
commit
e97242af2e
|
@ -4,11 +4,6 @@
|
||||||
extern Mtx* sSkyboxDrawMatrix;
|
extern Mtx* sSkyboxDrawMatrix;
|
||||||
|
|
||||||
void Skybox_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z) {
|
void Skybox_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z) {
|
||||||
// @recomp skip drawing skyboxes with null textures as they hurt performance due to the accidental framebuffer effects they incur.
|
|
||||||
if (skyboxCtx->staticSegments[0] == NULL || skyboxCtx->staticSegments[1] == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
OPEN_DISPS(gfxCtx);
|
OPEN_DISPS(gfxCtx);
|
||||||
|
|
||||||
Gfx_SetupDL40_Opa(gfxCtx);
|
Gfx_SetupDL40_Opa(gfxCtx);
|
||||||
|
@ -18,6 +13,12 @@ void Skybox_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId
|
||||||
|
|
||||||
sSkyboxDrawMatrix = GRAPH_ALLOC(gfxCtx, sizeof(Mtx));
|
sSkyboxDrawMatrix = GRAPH_ALLOC(gfxCtx, sizeof(Mtx));
|
||||||
|
|
||||||
|
// @recomp skip drawing skyboxes with null textures as they hurt performance due to the accidental framebuffer effects they incur.
|
||||||
|
// This needs to happen after sSkyboxDrawMatrix is allocated, otherwise the game will write to an invalid pointer later on which will cause a crash.
|
||||||
|
if (skyboxCtx->staticSegments[0] == NULL || skyboxCtx->staticSegments[1] == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Matrix_Translate(x, y, z, MTXMODE_NEW);
|
Matrix_Translate(x, y, z, MTXMODE_NEW);
|
||||||
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
|
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
|
||||||
Matrix_RotateXFApply(skyboxCtx->rot.x);
|
Matrix_RotateXFApply(skyboxCtx->rot.x);
|
||||||
|
|
|
@ -39,7 +39,7 @@ void exit_error(const char* str, Ts ...args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ultramodern::gfx_callbacks_t::gfx_data_t create_gfx() {
|
ultramodern::gfx_callbacks_t::gfx_data_t create_gfx() {
|
||||||
SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "system");
|
SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "permonitorv2");
|
||||||
SDL_SetHint(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, "0");
|
SDL_SetHint(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, "0");
|
||||||
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMECONTROLLER) > 0) {
|
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMECONTROLLER) > 0) {
|
||||||
exit_error("Failed to initialize SDL2: %s\n", SDL_GetError());
|
exit_error("Failed to initialize SDL2: %s\n", SDL_GetError());
|
||||||
|
|
Loading…
Reference in New Issue