SDL_gfx 2.0.25

- Main Page
- Data Structures
- Files

- File List
- Globals

I:/Sources/sdlgfx/SDL_rotozoom.h
Go to the documentation of this file.

    00001 /*
    00002
    00003 SDL_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces
    00004
    00005 Copyright (C) 2001-2012  Andreas Schiffler
    00006
    00007 This software is provided 'as-is', without any express or implied
    00008 warranty. In no event will the authors be held liable for any damages
    00009 arising from the use of this software.
    00010
    00011 Permission is granted to anyone to use this software for any purpose,
    00012 including commercial applications, and to alter it and redistribute it
    00013 freely, subject to the following restrictions:
    00014
    00015 1. The origin of this software must not be misrepresented; you must not
    00016 claim that you wrote the original software. If you use this software
    00017 in a product, an acknowledgment in the product documentation would be
    00018 appreciated but is not required.
    00019
    00020 2. Altered source versions must be plainly marked as such, and must not be
    00021 misrepresented as being the original software.
    00022
    00023 3. This notice may not be removed or altered from any source
    00024 distribution.
    00025
    00026 Andreas Schiffler -- aschiffler at ferzkopp dot net
    00027
    00028 */
    00029
    00030 #ifndef _SDL_rotozoom_h
    00031 #define _SDL_rotozoom_h
    00032
    00033 #include <math.h>
    00034
    00035 /* Set up for C function definitions, even when using C++ */
    00036 #ifdef __cplusplus
    00037 extern "C" {
    00038 #endif
    00039
    00040 #ifndef M_PI
    00041 #define M_PI    3.141592654
    00042 #endif
    00043
    00044 #include "SDL.h"
    00045
    00046         /* ---- Defines */
    00047
    00051 #define SMOOTHING_OFF           0
    00052
    00056 #define SMOOTHING_ON            1
    00057
    00058         /* ---- Function Prototypes */
    00059
    00060 #ifdef _MSC_VER
    00061 #  if defined(DLL_EXPORT) && !defined(LIBSDL_GFX_DLL_IMPORT)
    00062 #    define SDL_ROTOZOOM_SCOPE __declspec(dllexport)
    00063 #  else
    00064 #    ifdef LIBSDL_GFX_DLL_IMPORT
    00065 #      define SDL_ROTOZOOM_SCOPE __declspec(dllimport)
    00066 #    endif
    00067 #  endif
    00068 #endif
    00069 #ifndef SDL_ROTOZOOM_SCOPE
    00070 #  define SDL_ROTOZOOM_SCOPE extern
    00071 #endif
    00072
    00073         /*
    00074
    00075         Rotozoom functions
    00076
    00077         */
    00078
    00079         SDL_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth);
    00080
    00081         SDL_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurfaceXY
    00082                 (SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth);
    00083
    00084
    00085         SDL_ROTOZOOM_SCOPE void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth,
    00086                 int *dstheight);
    00087
    00088         SDL_ROTOZOOM_SCOPE void rotozoomSurfaceSizeXY
    00089                 (int width, int height, double angle, double zoomx, double zoomy,
    00090                 int *dstwidth, int *dstheight);
    00091
    00092         /*
    00093
    00094         Zooming functions
    00095
    00096         */
    00097
    00098         SDL_ROTOZOOM_SCOPE SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth);
    00099
    00100         SDL_ROTOZOOM_SCOPE void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight);
    00101
    00102         /*
    00103
    00104         Shrinking functions
    00105
    00106         */
    00107
    00108         SDL_ROTOZOOM_SCOPE SDL_Surface *shrinkSurface(SDL_Surface * src, int factorx, int factory);
    00109
    00110         /*
    00111
    00112         Specialized rotation functions
    00113
    00114         */
    00115
    00116         SDL_ROTOZOOM_SCOPE SDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns);
    00117
    00118         /* Ends C function definitions when using C++ */
    00119 #ifdef __cplusplus
    00120 }
    00121 #endif
    00122
    00123 #endif                          /* _SDL_rotozoom_h */