mirror of https://github.com/snes9xgit/snes9x.git
Fix xbrz to compile on non-win32, fix GTK+ port to use new xBRZ.
This commit is contained in:
parent
d506501d54
commit
720827a479
|
@ -18,6 +18,10 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
|
#include <cmath>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
template <uint32_t N> inline
|
template <uint32_t N> inline
|
||||||
|
@ -387,13 +391,13 @@ template <> inline unsigned char rotateBlendInfo<ROT_90 >(unsigned char b) { ret
|
||||||
template <> inline unsigned char rotateBlendInfo<ROT_180>(unsigned char b) { return ((b << 4) | (b >> 4)) & 0xff; }
|
template <> inline unsigned char rotateBlendInfo<ROT_180>(unsigned char b) { return ((b << 4) | (b >> 4)) & 0xff; }
|
||||||
template <> inline unsigned char rotateBlendInfo<ROT_270>(unsigned char b) { return ((b << 6) | (b >> 2)) & 0xff; }
|
template <> inline unsigned char rotateBlendInfo<ROT_270>(unsigned char b) { return ((b << 6) | (b >> 2)) & 0xff; }
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
int debugPixelX = -1;
|
int debugPixelX = -1;
|
||||||
int debugPixelY = 12;
|
int debugPixelY = 12;
|
||||||
__declspec(thread) bool breakIntoDebugger = false;
|
__declspec(thread) bool breakIntoDebugger = false;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
input kernel area naming convention:
|
input kernel area naming convention:
|
||||||
|
@ -422,9 +426,11 @@ void blendPixel(const Kernel_3x3& ker,
|
||||||
#define h get_h<rotDeg>(ker)
|
#define h get_h<rotDeg>(ker)
|
||||||
#define i get_i<rotDeg>(ker)
|
#define i get_i<rotDeg>(ker)
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
if (breakIntoDebugger)
|
if (breakIntoDebugger)
|
||||||
__debugbreak(); //__asm int 3;
|
__debugbreak(); //__asm int 3;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const unsigned char blend = rotateBlendInfo<rotDeg>(blendInfo);
|
const unsigned char blend = rotateBlendInfo<rotDeg>(blendInfo);
|
||||||
|
@ -580,8 +586,10 @@ void scaleImage(const uint32_t* src, uint32_t* trg, int srcWidth, int srcHeight,
|
||||||
|
|
||||||
for (int x = 0; x < srcWidth; ++x, out += Scaler::scale)
|
for (int x = 0; x < srcWidth; ++x, out += Scaler::scale)
|
||||||
{
|
{
|
||||||
|
#ifdef WIN32
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
breakIntoDebugger = debugPixelX == x && debugPixelY == y;
|
breakIntoDebugger = debugPixelX == x && debugPixelY == y;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
//all those bounds checks have only insignificant impact on performance!
|
//all those bounds checks have only insignificant impact on performance!
|
||||||
const int x_m1 = std::max(x - 1, 0); //perf: prefer array indexing to additional pointers!
|
const int x_m1 = std::max(x - 1, 0); //perf: prefer array indexing to additional pointers!
|
||||||
|
|
|
@ -255,7 +255,7 @@ void xBRZ(uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int wi
|
||||||
copyImage16To32(reinterpret_cast<const uint16_t*>(srcPtr), width, height, srcPitch,
|
copyImage16To32(reinterpret_cast<const uint16_t*>(srcPtr), width, height, srcPitch,
|
||||||
&renderBuffer[0], 0, height);
|
&renderBuffer[0], 0, height);
|
||||||
|
|
||||||
xbrz::scale(scalingFactor, &renderBuffer[0], &xbrzBuffer[0], width, height, xbrz::RGB, xbrz::ScalerCfg(), 0, height);
|
xbrz::scale(scalingFactor, &renderBuffer[0], &xbrzBuffer[0], width, height, xbrz::ColorFormat::RGB, xbrz::ScalerCfg(), 0, height);
|
||||||
|
|
||||||
stretchImage32To16(&xbrzBuffer[0], width * scalingFactor, height * scalingFactor,
|
stretchImage32To16(&xbrzBuffer[0], width * scalingFactor, height * scalingFactor,
|
||||||
reinterpret_cast<uint16_t*>(dstPtr), trgWidth, trgHeight, dstPitch, 0, height * scalingFactor);
|
reinterpret_cast<uint16_t*>(dstPtr), trgWidth, trgHeight, dstPitch, 0, height * scalingFactor);
|
||||||
|
|
Loading…
Reference in New Issue