DGen/SDL
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
hqx.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2003 Maxim Stepin ( maxst@hiend3d.com )
3  *
4  * Copyright (C) 2010 Cameron Zemek ( grom@zeminvaders.net)
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  */
20 
21 #ifndef __HQX_H_
22 #define __HQX_H_
23 
24 #include <stdint.h>
25 
26 #if !defined(HQX_NO_CALLCONV) && defined(__GNUC__)
27  #ifdef __MINGW32__
28  #define HQX_CALLCONV __stdcall
29  #else
30  #define HQX_CALLCONV
31  #endif
32 #else
33  #define HQX_CALLCONV
34 #endif
35 
36 #if !defined(HQX_NO_API) && defined(_WIN32)
37  #ifdef DLL_EXPORT
38  #define HQX_API __declspec(dllexport)
39  #else
40  #define HQX_API __declspec(dllimport)
41  #endif
42 #else
43  #define HQX_API
44 #endif
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 #ifndef HQX_NO_UINT24
51 typedef uint8_t uint24_t[3];
52 #endif
53 
54 HQX_API void HQX_CALLCONV hqxInit(void);
55 
56 HQX_API void HQX_CALLCONV hq2x_16( uint16_t * src, uint16_t * dest, int width, int height );
57 HQX_API void HQX_CALLCONV hq3x_16( uint16_t * src, uint16_t * dest, int width, int height );
58 HQX_API void HQX_CALLCONV hq4x_16( uint16_t * src, uint16_t * dest, int width, int height );
59 
60 HQX_API void HQX_CALLCONV hq2x_24( uint24_t * src, uint24_t * dest, int width, int height );
61 HQX_API void HQX_CALLCONV hq3x_24( uint24_t * src, uint24_t * dest, int width, int height );
62 HQX_API void HQX_CALLCONV hq4x_24( uint24_t * src, uint24_t * dest, int width, int height );
63 
64 HQX_API void HQX_CALLCONV hq2x_32( uint32_t * src, uint32_t * dest, int width, int height );
65 HQX_API void HQX_CALLCONV hq3x_32( uint32_t * src, uint32_t * dest, int width, int height );
66 HQX_API void HQX_CALLCONV hq4x_32( uint32_t * src, uint32_t * dest, int width, int height );
67 
68 HQX_API void HQX_CALLCONV hq2x_16_rb( uint16_t * src, uint32_t src_rowBytes, uint16_t * dest, uint32_t dest_rowBytes, int width, int height );
69 HQX_API void HQX_CALLCONV hq3x_16_rb( uint16_t * src, uint32_t src_rowBytes, uint16_t * dest, uint32_t dest_rowBytes, int width, int height );
70 HQX_API void HQX_CALLCONV hq4x_16_rb( uint16_t * src, uint32_t src_rowBytes, uint16_t * dest, uint32_t dest_rowBytes, int width, int height );
71 
72 HQX_API void HQX_CALLCONV hq2x_24_rb( uint24_t * src, uint32_t src_rowBytes, uint24_t * dest, uint32_t dest_rowBytes, int width, int height );
73 HQX_API void HQX_CALLCONV hq3x_24_rb( uint24_t * src, uint32_t src_rowBytes, uint24_t * dest, uint32_t dest_rowBytes, int width, int height );
74 HQX_API void HQX_CALLCONV hq4x_24_rb( uint24_t * src, uint32_t src_rowBytes, uint24_t * dest, uint32_t dest_rowBytes, int width, int height );
75 
76 HQX_API void HQX_CALLCONV hq2x_32_rb( uint32_t * src, uint32_t src_rowBytes, uint32_t * dest, uint32_t dest_rowBytes, int width, int height );
77 HQX_API void HQX_CALLCONV hq3x_32_rb( uint32_t * src, uint32_t src_rowBytes, uint32_t * dest, uint32_t dest_rowBytes, int width, int height );
78 HQX_API void HQX_CALLCONV hq4x_32_rb( uint32_t * src, uint32_t src_rowBytes, uint32_t * dest, uint32_t dest_rowBytes, int width, int height );
79 
80 #ifdef __cplusplus
81 }
82 #endif
83 
84 #endif