rlm@1: // -*- C++ -*- rlm@1: // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator. rlm@1: // Copyright (C) 1999-2003 Forgotten rlm@1: // Copyright (C) 2004 Forgotten and the VBA development team rlm@1: rlm@1: // This program is free software; you can redistribute it and/or modify rlm@1: // it under the terms of the GNU General Public License as published by rlm@1: // the Free Software Foundation; either version 2, or(at your option) rlm@1: // any later version. rlm@1: // rlm@1: // This program is distributed in the hope that it will be useful, rlm@1: // but WITHOUT ANY WARRANTY; without even the implied warranty of rlm@1: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the rlm@1: // GNU General Public License for more details. rlm@1: // rlm@1: // You should have received a copy of the GNU General Public License rlm@1: // along with this program; if not, write to the Free Software Foundation, rlm@1: // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. rlm@1: rlm@1: #ifndef __VBA_FILTERS_H__ rlm@1: #define __VBA_FILTERS_H__ rlm@1: rlm@1: #include "../common/System.h" rlm@1: rlm@1: int Init_2xSaI(u32); rlm@1: rlm@1: void _2xSaI (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void _2xSaI32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Super2xSaI (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Super2xSaI32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void SuperEagle (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void SuperEagle32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Pixelate2x16 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Pixelate2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void MotionBlur (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void MotionBlur32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void AdMame2x (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void AdMame2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Simple2x16 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Simple2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Bilinear (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Bilinear32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void BilinearPlus (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void BilinearPlus32(u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Scanlines (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void Scanlines32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void ScanlinesTV (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void ScanlinesTV32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void hq2x (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void hq2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void lq2x (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: void lq2x32 (u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: rlm@1: void SmartIB (u8 *, u32, int, int); rlm@1: void SmartIB32 (u8 *, u32, int, int); rlm@1: void MotionBlurIB (u8 *, u32, int, int); rlm@1: void MotionBlurIB32(u8 *, u32, int, int); rlm@1: rlm@1: namespace VBA rlm@1: { rlm@1: rlm@1: typedef void (*Filter2x)(u8 *, u32, u8 *, u8 *, u32, int, int); rlm@1: typedef void (*FilterIB)(u8 *, u32, int, int); rlm@1: rlm@1: enum EFilter2x rlm@1: { rlm@1: FirstFilter, rlm@1: FilterNone = FirstFilter, rlm@1: Filter2xSaI, rlm@1: FilterSuper2xSaI, rlm@1: FilterSuperEagle, rlm@1: FilterPixelate, rlm@1: FilterMotionBlur, rlm@1: FilterAdMame2x, rlm@1: FilterSimple2x, rlm@1: FilterBilinear, rlm@1: FilterBilinearPlus, rlm@1: FilterScanlines, rlm@1: FilterScanlinesTV, rlm@1: FilterHq2x, rlm@1: FilterLq2x, rlm@1: LastFilter = FilterLq2x rlm@1: }; rlm@1: rlm@1: enum EFilterIB rlm@1: { rlm@1: FirstFilterIB, rlm@1: FilterIBNone = FirstFilterIB, rlm@1: FilterIBSmart, rlm@1: FilterIBMotionBlur, rlm@1: LastFilterIB = FilterIBMotionBlur rlm@1: }; rlm@1: rlm@1: enum EFilterDepth rlm@1: { rlm@1: FilterDepth16, rlm@1: FilterDepth32 rlm@1: }; rlm@1: rlm@1: Filter2x pvGetFilter2x(EFilter2x _eFilter2x, EFilterDepth _eDepth); rlm@1: FilterIB pvGetFilterIB(EFilterIB _eFilterIB, EFilterDepth _eDepth); rlm@1: rlm@1: } // namespace VBA rlm@1: rlm@1: rlm@1: #endif // __VBA_FILTERS_H__