Skip to content

Commit

Permalink
Centralizing more code in the plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
vitor251093 committed Jun 24, 2024
1 parent a008764 commit 18407c0
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 25 deletions.
26 changes: 20 additions & 6 deletions src/KHDays_Plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ bool KHDaysPlugin::_hasVisible3DOnBottomScreen = false;
#define PARSE_BRIGHTNESS_FOR_BLACK_BACKGROUND(b) (b & (1 << 14) ? ((b - 1) & 0xF) : 0)
#define PARSE_BRIGHTNESS_FOR_UNKNOWN_BACKGROUND(b) (b & (1 << 14) ? ((b - 1) & 0xF) : (b & (1 << 15) ? (0xF - ((b - 1) & 0xF)) : 0))

#define renderer3D_OpenGL 1
#define renderer3D_OpenGLCompute 2

enum
{
gameScene_Intro, // 0
Expand Down Expand Up @@ -121,12 +124,12 @@ void KHDaysPlugin::hudRefresh(melonDS::NDS* nds)
{
switch (videoRenderer)
{
case 1:
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetShowMap(ShowMap);
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetShowTarget(ShowTarget);
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetShowMissionGauge(ShowMissionGauge);
break;
case 2:
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetShowMap(ShowMap);
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetShowTarget(ShowTarget);
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetShowMissionGauge(ShowMissionGauge);
Expand Down Expand Up @@ -222,11 +225,11 @@ bool KHDaysPlugin::shouldSkipFrame(melonDS::NDS* nds)

switch (videoRenderer)
{
case 1:
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetIsBottomScreen2DTextureBlack(isBottomBlack);
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetIsTopScreen2DTextureBlack(isTopBlack);
break;
case 2:
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetIsBottomScreen2DTextureBlack(isBottomBlack);
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetIsTopScreen2DTextureBlack(isTopBlack);
break;
Expand Down Expand Up @@ -579,6 +582,17 @@ void KHDaysPlugin::setAspectRatio(melonDS::NDS* nds, float aspectRatio)
if (nds->ARM7Read32(aspectRatioMenuAddress) == 0x00001555) {
nds->ARM7Write32(aspectRatioMenuAddress, aspectRatioKey);
}

switch (videoRenderer)
{
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetAspectRatio(aspectRatio / (4.f / 3.f));
break;
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetAspectRatio(aspectRatio / (4.f / 3.f));
break;
default: break;
}
}

bool KHDaysPlugin::setGameScene(melonDS::NDS* nds, int newGameScene)
Expand All @@ -596,10 +610,10 @@ bool KHDaysPlugin::setGameScene(melonDS::NDS* nds, int newGameScene)
// Updating GameScene inside shader
switch (videoRenderer)
{
case 1:
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetGameScene(newGameScene);
break;
case 2:
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetGameScene(newGameScene);
break;
default: break;
Expand Down
27 changes: 21 additions & 6 deletions src/KHReCoded_Plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "GPU3D_OpenGL.h"
#include "GPU3D_Compute.h"
#include "CartValidator.h"

#include <math.h>

Expand All @@ -28,6 +29,9 @@ bool KHReCodedPlugin::_had3DOnBottomScreen = false;
#define PARSE_BRIGHTNESS_FOR_BLACK_BACKGROUND(b) (b & (1 << 14) ? ((b - 1) & 0xF) : 0)
#define PARSE_BRIGHTNESS_FOR_UNKNOWN_BACKGROUND(b) (b & (1 << 14) ? ((b - 1) & 0xF) : (b & (1 << 15) ? (0xF - ((b - 1) & 0xF)) : 0))

#define renderer3D_OpenGL 1
#define renderer3D_OpenGLCompute 2

enum
{
gameScene_Intro, // 0
Expand Down Expand Up @@ -94,10 +98,10 @@ void KHReCodedPlugin::hudRefresh(melonDS::NDS* nds)
{
switch (videoRenderer)
{
case 1:
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetShowMap(ShowMap);
break;
case 2:
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetShowMap(ShowMap);
break;
default: break;
Expand Down Expand Up @@ -175,11 +179,11 @@ bool KHReCodedPlugin::shouldSkipFrame(melonDS::NDS* nds)

switch (videoRenderer)
{
case 1:
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetIsBottomScreen2DTextureBlack(isBottomBlack);
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetIsTopScreen2DTextureBlack(isTopBlack);
break;
case 2:
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetIsBottomScreen2DTextureBlack(isBottomBlack);
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetIsTopScreen2DTextureBlack(isTopBlack);
break;
Expand Down Expand Up @@ -434,6 +438,17 @@ void KHReCodedPlugin::setAspectRatio(melonDS::NDS* nds, float aspectRatio)
if (nds->ARM7Read32(aspectRatioMenuAddress) == 0x00001555) {
nds->ARM7Write32(aspectRatioMenuAddress, aspectRatioKey);
}

switch (videoRenderer)
{
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetAspectRatio(aspectRatio / (4.f / 3.f));
break;
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetAspectRatio(aspectRatio / (4.f / 3.f));
break;
default: break;
}
}

bool KHReCodedPlugin::setGameScene(melonDS::NDS* nds, int newGameScene)
Expand All @@ -451,10 +466,10 @@ bool KHReCodedPlugin::setGameScene(melonDS::NDS* nds, int newGameScene)
// Updating GameScene inside shader
switch (videoRenderer)
{
case 1:
case renderer3D_OpenGL:
static_cast<GLRenderer&>(nds->GPU.GetRenderer3D()).SetGameScene(newGameScene);
break;
case 2:
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(nds->GPU.GetRenderer3D()).SetGameScene(newGameScene);
break;
default: break;
Expand Down
13 changes: 0 additions & 13 deletions src/frontend/qt_sdl/Screen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,19 +124,6 @@ void ScreenPanel::setupScreenLayout()

Config::WindowHeight = h;
Config::WindowWidth = w;

if (emuThread != nullptr && emuThread->NDS != nullptr) {
switch (videoRenderer)
{
case renderer3D_OpenGL:
static_cast<GLRenderer&>(emuThread->NDS->GPU.GetRenderer3D()).SetAspectRatio(aspectTop);
break;
case renderer3D_OpenGLCompute:
static_cast<ComputeRenderer&>(emuThread->NDS->GPU.GetRenderer3D()).SetAspectRatio(aspectTop);
break;
default: break;
}
}
}

QSize ScreenPanel::screenGetMinSize(int factor = 1)
Expand Down

0 comments on commit 18407c0

Please sign in to comment.