From b0ae63c6023e568b6d307fbf31faa7c4b7943570 Mon Sep 17 00:00:00 2001 From: Arthur Moore Date: Sat, 15 Nov 2014 02:03:52 -0500 Subject: [PATCH] Created a common filters.hpp file, and began moving function prototypes there. some function prototypes are still spread between: src/gtk/filters.cpp src/sdl/filters.cpp src/wx/filters.h They should all be moved to: src/filters/filters.hpp --- src/filters/filters.hpp | 67 +++++++++++++++++++++++++++++++++++++++++ src/gtk/filters.cpp | 12 +------- src/sdl/filters.cpp | 16 +--------- src/wx/filters.h | 34 ++------------------- 4 files changed, 71 insertions(+), 58 deletions(-) create mode 100644 src/filters/filters.hpp diff --git a/src/filters/filters.hpp b/src/filters/filters.hpp new file mode 100644 index 00000000..15f2faaa --- /dev/null +++ b/src/filters/filters.hpp @@ -0,0 +1,67 @@ +/// All filters +#ifndef FILTERS_FILTERS_HPP +#define FILTERS_FILTERS_HPP + +#include "interframe.hpp" + +//pixel.cpp +void Pixelate(u8 *srcPtr, u32 srcPitch, u8 *deltaPtr, u8 *dstPtr, u32 dstPitch, int width, int height); +void Pixelate32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, u8 *dstPtr, u32 dstPitch, int width, int height); + +//scanline.cpp +void Scanlines (u8 *srcPtr, u32 srcPitch, u8 *, u8 *dstPtr, u32 dstPitch, int width, int height); +void Scanlines32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, u8 *dstPtr, u32 dstPitch, int width, int height); +// "TV" here means each pixel is faded horizontally & vertically rather than +// inserting black scanlines +// this depends on RGB_LOW_BITS_MASK (included from interframe.hpp +//extern int RGB_LOW_BITS_MASK; +void ScanlinesTV(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, u8 *dstPtr, u32 dstPitch, int width, int height); +void ScanlinesTV32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, u8 *dstPtr, u32 dstPitch, int width, int height); + +//simpleFilter.cpp +// the simple ones could greatly benefit from correct usage of preprocessor.. +// in any case, they are worthless, since all renderers do "simple" or +// better by default +void Simple2x16(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void Simple2x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void Simple3x16(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void Simple3x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void Simple4x16(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void Simple4x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); + +//bilinear.cpp +//These convert to rgb24 in internal buffers first, and then back again +/*static void fill_rgb_row_16(u16 *from, int src_width, u8 *row, int width); +static void fill_rgb_row_32(u32 *from, int src_width, u8 *row, int width);*/ +void Bilinear(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void Bilinear32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void BilinearPlus(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void BilinearPlus32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); + +//hq2x.cpp +//These require calling hq2x_init first and whenever bpp changes +/*static void hq2x_16_def(u16* dst0, u16* dst1, const u16* src0, const u16* src1, const u16* src2, unsigned count); +static void hq2x_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1, const u32* src2, unsigned count); +static void lq2x_16_def(u16* dst0, u16* dst1, const u16* src0, const u16* src1, const u16* src2, unsigned count); +static void lq2x_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1, const u32* src2, unsigned count);*/ +void hq2x_init(unsigned bits_per_pixel); +void hq2x(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void hq2x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void lq2x(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); +void lq2x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */, + u8 *dstPtr, u32 dstPitch, int width, int height); + +#endif //FILTERS_FILTERS_HPP diff --git a/src/gtk/filters.cpp b/src/gtk/filters.cpp index dca99caf..a092b19d 100644 --- a/src/gtk/filters.cpp +++ b/src/gtk/filters.cpp @@ -18,7 +18,7 @@ #include "filters.h" #include "intl.h" -#include "../filters/interframe.hpp" +#include "../filters/filters.hpp" void _2xSaI (u8 *, u32, u8 *, u8 *, u32, int, int); void _2xSaI32 (u8 *, u32, u8 *, u8 *, u32, int, int); @@ -26,18 +26,8 @@ void Super2xSaI (u8 *, u32, u8 *, u8 *, u32, int, int); void Super2xSaI32 (u8 *, u32, u8 *, u8 *, u32, int, int); void SuperEagle (u8 *, u32, u8 *, u8 *, u32, int, int); void SuperEagle32 (u8 *, u32, u8 *, u8 *, u32, int, int); -void Pixelate (u8 *, u32, u8 *, u8 *, u32, int, int); -void Pixelate32 (u8 *, u32, u8 *, u8 *, u32, int, int); void AdMame2x (u8 *, u32, u8 *, u8 *, u32, int, int); void AdMame2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); -void Bilinear (u8 *, u32, u8 *, u8 *, u32, int, int); -void Bilinear32 (u8 *, u32, u8 *, u8 *, u32, int, int); -void BilinearPlus (u8 *, u32, u8 *, u8 *, u32, int, int); -void BilinearPlus32(u8 *, u32, u8 *, u8 *, u32, int, int); -void Scanlines (u8 *, u32, u8 *, u8 *, u32, int, int); -void Scanlines32 (u8 *, u32, u8 *, u8 *, u32, int, int); -void ScanlinesTV (u8 *, u32, u8 *, u8 *, u32, int, int); -void ScanlinesTV32 (u8 *, u32, u8 *, u8 *, u32, int, int); void hq2x (u8 *, u32, u8 *, u8 *, u32, int, int); void hq2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); void lq2x (u8 *, u32, u8 *, u8 *, u32, int, int); diff --git a/src/sdl/filters.cpp b/src/sdl/filters.cpp index c39aa02e..7ba760f5 100644 --- a/src/sdl/filters.cpp +++ b/src/sdl/filters.cpp @@ -18,7 +18,7 @@ #include "filters.h" -#include "../filters/interframe.hpp" +#include "../filters/filters.hpp" // // Screen filters @@ -38,22 +38,8 @@ extern void Super2xSaI(u8*,u32,u8*,u8*,u32,int,int); extern void Super2xSaI32(u8*,u32,u8*,u8*,u32,int,int); extern void SuperEagle(u8*,u32,u8*,u8*,u32,int,int); extern void SuperEagle32(u8*,u32,u8*,u8*,u32,int,int); -extern void Pixelate(u8*,u32,u8*,u8*,u32,int,int); -extern void Pixelate32(u8*,u32,u8*,u8*,u32,int,int); extern void AdMame2x(u8*,u32,u8*,u8*,u32,int,int); extern void AdMame2x32(u8*,u32,u8*,u8*,u32,int,int); -extern void Bilinear(u8*,u32,u8*,u8*,u32,int,int); -extern void Bilinear32(u8*,u32,u8*,u8*,u32,int,int); -extern void BilinearPlus(u8*,u32,u8*,u8*,u32,int,int); -extern void BilinearPlus32(u8*,u32,u8*,u8*,u32,int,int); -extern void Scanlines(u8*,u32,u8*,u8*,u32,int,int); -extern void Scanlines32(u8*,u32,u8*,u8*,u32,int,int); -extern void ScanlinesTV(u8*,u32,u8*,u8*,u32,int,int); -extern void ScanlinesTV32(u8*,u32,u8*,u8*,u32,int,int); -extern void hq2x(u8*,u32,u8*,u8*,u32,int,int); -extern void hq2x32(u8*,u32,u8*,u8*,u32,int,int); -extern void lq2x(u8*,u32,u8*,u8*,u32,int,int); -extern void lq2x32(u8*,u32,u8*,u8*,u32,int,int); extern void hq3x16(u8*,u32,u8*,u8*,u32,int,int); extern void hq4x16(u8*,u32,u8*,u8*,u32,int,int); extern void hq3x32_32(u8*,u32,u8*,u8*,u32,int,int); diff --git a/src/wx/filters.h b/src/wx/filters.h index 8f8405fc..86935c54 100644 --- a/src/wx/filters.h +++ b/src/wx/filters.h @@ -7,11 +7,8 @@ // those that take delta take 1 src line of pixels, rounded up to u32 size // initial value appears to be all-0xff -#include "../filters/interframe.hpp" +#include "../filters/filters.hpp" - -void Pixelate32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Pixelate(u8 *src, u32 spitch, u8 *delta, u8 *dst, u32 dstp, int w, int h); // next 3*2 use Init_2xSaI(555|565) and do not take into account int Init_2xSaI(u32 BitFormat); // endianness or bit shift variables in init. @@ -25,34 +22,7 @@ void SuperEagle32(u8 *src, u32 spitch, u8 *delta, u8 *dst, u32 dstp, int w, int void SuperEagle(u8 *src, u32 spitch, u8 *delta, u8 *dst, u32 dstp, int w, int h); void AdMame2x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); void AdMame2x(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -// next 4 convert to rgb24 in internal buffers first, and then back again -void Bilinear32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Bilinear(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void BilinearPlus32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void BilinearPlus(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Scanlines32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Scanlines(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void ScanlinesTV32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -// "TV" here means each pixel is faded horizontally & vertically rather than -// inserting black scanlines -// this depends on RGB_LOW_BITS_MASK -extern int RGB_LOW_BITS_MASK; -void ScanlinesTV(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -// next 2 require calling hq2x_init first and whenever bpp changes -void hq2x_init(unsigned bpp); -void hq2x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void hq2x(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void lq2x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void lq2x(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -// the simple ones could greatly benefit from correct usage of preprocessor.. -// in any case, they are worthless, since all renderers do "simple" or -// better by default -void Simple2x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Simple2x(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Simple3x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Simple3x(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Simple4x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); -void Simple4x(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); + // note: 16-bit input for asm version only! void hq3x32(u8 *src, u32 spitch, u8 *, u8 *dst, u32 dstp, int w, int h); // this takes 32-bit input