Win32 - fixed an odd bug that crops up when video is set to force apsect correction AND special scaling 3x. If user attempts to resize smaller (which he shouldn't if he has special scaling, but still) the video was getting calculated incorrectly. The solution is a bit hacky, but it works.

This commit is contained in:
adelikat 2008-11-14 18:39:05 +00:00
parent 8c174ae9b2
commit f1ad20b749
2 changed files with 8 additions and 1 deletions

View File

@ -1,4 +1,7 @@
---version 2.0.4 yet to be released--- ---version 2.0.4 yet to be released---
14-nov-2008 - adelikat - fixed but when aspect correction and special scaling 3x are set, video was getting resized incorrectly
14-nov-2008 - adelikat - fixed a bug introduced in previous commit, frame display toggle now works when no movie is present
12-nov-2008 - adelikat - allowed frame counter to display even with no movie present
11-nov-2008 - punkrockguy - sdl - savestate slots now mappable [2175167] 11-nov-2008 - punkrockguy - sdl - savestate slots now mappable [2175167]
10-nov-2008 - adelikat - win32 - removed accel keys from main window 10-nov-2008 - adelikat - win32 - removed accel keys from main window
10-nov-2008 - adelikat - Win32 - added Open & Close ROM mappable hotkeys, removed accel functions 10-nov-2008 - adelikat - Win32 - added Open & Close ROM mappable hotkeys, removed accel functions

View File

@ -1369,12 +1369,16 @@ void FixWXY(int pref)
winsizemuly *= mult / winsizemulx; winsizemuly *= mult / winsizemulx;
winsizemulx = mult; winsizemulx = mult;
} }
if(winsizemuly < mult) if(winsizemuly < mult && mult < 3) //11/14/2008, adelikat: added && mult < 3 and extra code to meet mult >=3 conditions
{ {
if(eoptions&EO_FORCEASPECT) if(eoptions&EO_FORCEASPECT)
winsizemulx *= mult / winsizemuly; winsizemulx *= mult / winsizemuly;
winsizemuly = mult; winsizemuly = mult;
} }
else if (winsizemuly < mult&& mult >= 3) //11/14/2008, adelikat: This was probably a hacky solution. But when special scalar = 3 and aspect correction is on,
if(eoptions&EO_FORCEASPECT) //then x is corrected to a wider ratio (.5 of what this code seems to expect) so I added a special circumstance for these 2 situations
winsizemulx *= (mult+0.5) / winsizemuly; //And adjusted the special scaling by .5
winsizemuly = mult;
} }
if(winsizemulx<0.1) if(winsizemulx<0.1)