@@ -39,7 +39,6 @@ void *ConsoleUI::fileTextures[2];
39
39
void *ConsoleUI::folderTextures[2 ];
40
40
void *ConsoleUI::fontTexture;
41
41
42
- int ConsoleUI::screenFilter = 1 ;
43
42
int ConsoleUI::showFpsCounter = 0 ;
44
43
int ConsoleUI::menuTheme = 0 ;
45
44
@@ -183,7 +182,6 @@ void ConsoleUI::initialize(int width, int height, std::string root, std::string
183
182
// Define the platform settings
184
183
std::vector<Setting> platformSettings =
185
184
{
186
- Setting (" screenFilter" , &screenFilter, false ),
187
185
Setting (" showFpsCounter" , &showFpsCounter, false ),
188
186
Setting (" menuTheme" , &menuTheme, false )
189
187
};
@@ -235,7 +233,7 @@ void ConsoleUI::mainLoop(MenuTouch (*specialTouch)(), ScreenLayout *touchLayout)
235
233
236
234
// Update the framebuffer and start rendering
237
235
void *gbaTexture = nullptr , *topTexture = nullptr , *botTexture = nullptr ;
238
- int shift = Settings::highRes3D;
236
+ bool shift = ( Settings::highRes3D || Settings::screenFilter == 1 ) ;
239
237
core->gpu .getFrame (framebuffer, gbaMode);
240
238
startFrame (0 );
241
239
@@ -244,7 +242,7 @@ void ConsoleUI::mainLoop(MenuTouch (*specialTouch)(), ScreenLayout *touchLayout)
244
242
// Draw the GBA screen
245
243
gbaTexture = createTexture (&framebuffer[0 ], 240 << shift, 160 << shift);
246
244
drawTexture (gbaTexture, 0 , 0 , 240 << shift, 160 << shift, layout.topX , layout.topY ,
247
- layout.topWidth , layout.topHeight , screenFilter, ScreenLayout::screenRotation);
245
+ layout.topWidth , layout.topHeight , Settings:: screenFilter, ScreenLayout::screenRotation);
248
246
}
249
247
else // DS mode
250
248
{
@@ -253,15 +251,15 @@ void ConsoleUI::mainLoop(MenuTouch (*specialTouch)(), ScreenLayout *touchLayout)
253
251
{
254
252
topTexture = createTexture (&framebuffer[0 ], 256 << shift, 192 << shift);
255
253
drawTexture (topTexture, 0 , 0 , 256 << shift, 192 << shift, layout.topX , layout.topY ,
256
- layout.topWidth , layout.topHeight , screenFilter, ScreenLayout::screenRotation);
254
+ layout.topWidth , layout.topHeight , Settings:: screenFilter, ScreenLayout::screenRotation);
257
255
}
258
256
259
257
// Draw the DS bottom screen
260
258
if (ScreenLayout::screenArrangement != 3 || ScreenLayout::screenSizing == 2 )
261
259
{
262
260
botTexture = createTexture (&framebuffer[(256 * 192 ) << (shift * 2 )], 256 << shift, 192 << shift);
263
261
drawTexture (botTexture, 0 , 0 , 256 << shift, 192 << shift, layout.botX , layout.botY ,
264
- layout.botWidth , layout.botHeight , screenFilter, ScreenLayout::screenRotation);
262
+ layout.botWidth , layout.botHeight , Settings:: screenFilter, ScreenLayout::screenRotation);
265
263
}
266
264
}
267
265
@@ -759,6 +757,7 @@ void ConsoleUI::settingsMenu()
759
757
{
760
758
// Define possible values for settings
761
759
const std::vector<std::string> toggle = { " Off" , " On" };
760
+ const std::vector<std::string> filter = { " Nearest" , " Upscaled" , " Linear" };
762
761
const std::vector<std::string> position = { " Center" , " Top" , " Bottom" , " Left" , " Right" };
763
762
const std::vector<std::string> rotation = { " None" , " Clockwise" , " Counter-Clockwise" };
764
763
const std::vector<std::string> arrangement = { " Automatic" , " Vertical" , " Horizontal" , " Single Screen" };
@@ -777,14 +776,14 @@ void ConsoleUI::settingsMenu()
777
776
MenuItem (" Threaded 2D" , toggle[Settings::threaded2D]),
778
777
MenuItem (" Threaded 3D" , toggle[(bool )Settings::threaded3D]),
779
778
MenuItem (" High-Resolution 3D" , toggle[Settings::highRes3D]),
779
+ MenuItem (" Screen Filter" , filter[Settings::screenFilter]),
780
780
MenuItem (" Screen Position" , position[ScreenLayout::screenPosition]),
781
781
MenuItem (" Screen Rotation" , rotation[ScreenLayout::screenRotation]),
782
782
MenuItem (" Screen Arrangement" , arrangement[ScreenLayout::screenArrangement]),
783
783
MenuItem (" Screen Sizing" , sizing[ScreenLayout::screenSizing]),
784
784
MenuItem (" Screen Gap" , gap[ScreenLayout::screenGap]),
785
785
MenuItem (" Integer Scale" , toggle[ScreenLayout::integerScale]),
786
786
MenuItem (" GBA Crop" , toggle[ScreenLayout::gbaCrop]),
787
- MenuItem (" Screen Filter" , toggle[screenFilter]),
788
787
MenuItem (" Show FPS Counter" , toggle[showFpsCounter]),
789
788
MenuItem (" Menu Theme" , theme[menuTheme])
790
789
};
@@ -803,14 +802,14 @@ void ConsoleUI::settingsMenu()
803
802
case 2 : Settings::threaded2D = (Settings::threaded2D + 1 ) % 2 ; break ;
804
803
case 3 : Settings::threaded3D = (Settings::threaded3D + 1 ) % 2 ; break ;
805
804
case 4 : Settings::highRes3D = (Settings::highRes3D + 1 ) % 2 ; break ;
806
- case 5 : ScreenLayout::screenPosition = (ScreenLayout::screenPosition + 1 ) % 5 ; break ;
807
- case 6 : ScreenLayout::screenRotation = (ScreenLayout::screenRotation + 1 ) % 3 ; break ;
808
- case 7 : ScreenLayout::screenArrangement = (ScreenLayout::screenArrangement + 1 ) % 4 ; break ;
809
- case 8 : ScreenLayout::screenSizing = (ScreenLayout::screenSizing + 1 ) % 3 ; break ;
810
- case 9 : ScreenLayout::screenGap = (ScreenLayout::screenGap + 1 ) % 4 ; break ;
811
- case 10 : ScreenLayout::integerScale = (ScreenLayout::integerScale + 1 ) % 2 ; break ;
812
- case 11 : ScreenLayout::gbaCrop = (ScreenLayout::gbaCrop + 1 ) % 2 ; break ;
813
- case 12 : screenFilter = (screenFilter + 1 ) % 2 ; break ;
805
+ case 5 : Settings::screenFilter = (Settings::screenFilter + 1 ) % 3 ; break ;
806
+ case 6 : ScreenLayout::screenPosition = (ScreenLayout::screenPosition + 1 ) % 5 ; break ;
807
+ case 7 : ScreenLayout::screenRotation = (ScreenLayout::screenRotation + 1 ) % 3 ; break ;
808
+ case 8 : ScreenLayout::screenArrangement = (ScreenLayout::screenArrangement + 1 ) % 4 ; break ;
809
+ case 9 : ScreenLayout::screenSizing = (ScreenLayout::screenSizing + 1 ) % 3 ; break ;
810
+ case 10 : ScreenLayout::screenGap = (ScreenLayout::screenGap + 1 ) % 4 ; break ;
811
+ case 11 : ScreenLayout::integerScale = (ScreenLayout::integerScale + 1 ) % 2 ; break ;
812
+ case 12 : ScreenLayout::gbaCrop = (ScreenLayout::gbaCrop + 1 ) % 2 ; break ;
814
813
case 13 : showFpsCounter = (showFpsCounter + 1 ) % 2 ; break ;
815
814
816
815
case 14 :
0 commit comments