114109 Commits

Author SHA1 Message Date
Eric Culp
c5c5662330 GRAPHICS,SDL: Change oldSrcScale api
More bookkeeping is kept in common scaler code instead of the backend.
Plugins inheriting SourceScaler will have this functionality.

TODO: Some new functions may still be able to be combined to simplify
the API.
2021-03-15 16:48:40 +02:00
Eric Culp
c915efa452 GRAPHICS: Respect alpha and rgba formats in interpolation and conversion 2021-03-15 16:48:40 +02:00
Eric Culp
179705071d GRAPHICS: Fix Edge3x scaler 2021-03-15 16:48:40 +02:00
Eric Culp
56d078e732 SDL: Fix assignment of variable
GCC seemed to allow the previous syntax but clang rejected it.
2021-03-15 16:48:40 +02:00
Eric Culp
86c2307351 GRAPHICS: Add some 32bpp abilty to Edge scalers
It is still broken, but it seems to be close.
2021-03-15 16:48:40 +02:00
Eric Culp
8baa92a190 SDL: Fix overlay while using oldSrcScale
The _destbuffer was overwriting _hwscreen even when the overlay was
visible.
2021-03-15 16:48:40 +02:00
Eric Culp
6cfba9d567 SDL: Only update if a change was made when using oldSrcScale 2021-03-15 16:48:40 +02:00
Eric Culp
1e724e6640 GRAPHICS: Use new oldSrcScale API for EdgePlugin 2021-03-15 16:48:40 +02:00
Eric Culp
3b408c2d87 SDL: Use an extra buffer for oldSrcScale so it is not confused by AR
If the two source images match, the scaler assumes there is not update
and does not draw to the surface. However, AR correction depends on a
redraw, so the scaler always writes to _destbuffer which is then copied
to _hwscreen to be AR corrected.
2021-03-15 16:48:40 +02:00
Eric Culp
e2484a0fba SDL: Swap and lock the old screen 2021-03-15 16:48:40 +02:00
Eric Culp
cfbc3e91cf SDL: Use oldSrcScale for scaler plugins that support it 2021-03-15 16:48:40 +02:00
Eric Culp
ffb52288a9 GRAPHICS: Add useOldSrc and oldSrcScale to scaler plugin API
This allows plugins and backends to optionally pass the previous frame's
source image so that the scaler can only update the pixels that need to
be updated.
2021-03-15 16:48:40 +02:00
Eric Culp
f40485ee37 GRAPHICS: Move and format comments from edge.cpp to edge.h 2021-03-15 16:48:40 +02:00
Eric Culp
a6e6f7676d GRAPHICS: Remove unused parameter to findPricipleAxis in Edge plugin 2021-03-15 16:48:40 +02:00
Eric Culp
0dcd6bae37 GRAPHICS: 32bpp-ize chooseGreyscale for Edge plugin 2021-03-15 16:48:40 +02:00
Eric Culp
4552ec6138 GRAPHICS: Add function to convert pixels to 16bpp format 2021-03-15 16:48:40 +02:00
Eric Culp
c84db891bf GRAPHICS: Remove unused define in edge.cpp. 2021-03-15 16:48:40 +02:00
Eric Culp
c9b63ba7e3 GRAPHICS: Remove more unused code from the Edge plugin. 2021-03-15 16:48:40 +02:00
Eric Culp
917ef83043 GRAPHICS: Add more templating to Edge plugin 2021-03-15 16:48:40 +02:00
Eric Culp
3574823828 GRAPHICS: Remove code from Edge plugin that will never be used. 2021-03-15 16:48:40 +02:00
Eric Culp
664ba9ae5d GRAPHICS: Change variable name to remove shadowing 2021-03-15 16:48:40 +02:00
Eric Culp
18a099c7d3 GRAPHICS: Remove unused variable in Edge Plugin 2021-03-15 16:48:40 +02:00
Eric Culp
a4741a7268 GRAPHICS: Template Edge plugin over pixel format
calcPixelDiffNosqrt is the only function with a valid implementation.
The rest of the templated functions just have skeleton templates (for
now).
2021-03-15 16:48:40 +02:00
Eric Culp
f4e0331f2d GRAPHICS: Run edge.cpp through astyle to conform to style guidelines 2021-03-15 16:48:40 +02:00
Eric Culp
5688622889 GRAPHICS: Move static variables to class members in Edge Plugin 2021-03-15 16:48:40 +02:00
Eric Culp
9ba4c24ae1 GRAPHICS: Migrate global funcs and vars to Edge Plugin class 2021-03-15 16:48:40 +02:00
Eric Culp
b2dff9413e GRAPHICS: Rename functions in Edge filter according to guidelines 2021-03-15 16:48:40 +02:00
Eric Culp
fc3ee1989d GRAPHICS: Change another interpolation function in Edge filter.
A 2 to 1 interpolation was causing errors. It is fixed, renamed, and
moved to the common interpolation file.
2021-03-15 16:48:40 +02:00
Eric Culp
457e974c86 GRAPHICS: Use correct copyright notice in edge.cpp 2021-03-15 16:48:40 +02:00
Eric Culp
e77934b73d GRAPHICS: Change Edge filter to use shared interpolation functions 2021-03-15 16:48:40 +02:00
Eric Culp
592617e2ce GRAPHICS: Add Edge2x/3x scaler
This currently does not conform to coding standards and contains a lot
of dead code (This will be fixed). Thanks to Eric Welsh for the original
patch.
2021-03-15 16:48:40 +02:00
Eric Culp
9ed7fde732 GRAPHICS: Capitalized pixel in template parameters 2021-03-15 16:48:40 +02:00
Eric Culp
267b385890 GRAPHICS: Add 2xPM scaler with 16 and 32 bit support 2021-03-15 16:48:40 +02:00
Eric Culp
d91e970f4e GRAPHICS: Fix error in dotmatrix scaler initialization 2021-03-15 16:48:40 +02:00
Eric Culp
4a69e136d2 GRAPHICS: Add 32bpp support for TV scaler 2021-03-15 16:48:40 +02:00
Eric Culp
c7e874e2cd GRAPHICS: Add 32bpp support to dotmatrix scaler 2021-03-15 16:48:40 +02:00
Eric Culp
3d357dc9d1 GRAPHICS: Fix Errors in ifdefs and switches for asm hq scalers 2021-03-15 16:48:40 +02:00
Eric Culp
4432c5a4d1 GRAPHICS: Add 32bpp color support for HQ scalers
This implementation uses 16bpp rgb conversion to lookup Yuv values. A
different implementation will need to edit ConvertYUV and InitLUT
accordingly.
2021-03-15 16:48:40 +02:00
Eric Culp
b08da82253 GRAPHICS: Add 32bpp support for the sai family of scalers 2021-03-15 16:48:40 +02:00
Eric Culp
780d5a8689 GRAPHICS: Add 4 byte per pixel support for Normal scalers 2021-03-15 16:48:40 +02:00
Eric Culp
ff6fe4360d SDL: Change so that the Normal plugin is initialized
The plugin is now initially null so that a change is detected.
2021-03-15 16:48:40 +02:00
Eric Culp
c2639a9ff6 GRAPHICS: Fix formatting in template 2021-03-15 16:48:40 +02:00
Eric Culp
301197b73b GRAPHICS: Remove unused scaler definitions 2021-03-15 16:48:40 +02:00
Eric Culp
3a42496719 GRAPHICS: Remove 1.5x scaler 2021-03-15 16:48:40 +02:00
Eric Culp
a3a9736754 GRAPHICS: Add TV scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
7fd8107c76 GRAPHICS: Move Normal scaler functions into same file as plugin 2021-03-15 16:48:40 +02:00
Eric Culp
a15689ae38 SDL: Fix formatting 2021-03-15 16:48:40 +02:00
Eric Culp
894e8fb187 SDL: Add comments to explain scaler state changes 2021-03-15 16:48:40 +02:00
Eric Culp
dc29ae5447 SDL: Remove old scaler init and destroy code 2021-03-15 16:48:40 +02:00
Eric Culp
044d8aea63 SDL: Fix signedness of some types 2021-03-15 16:48:40 +02:00