From c415c57a6668a77c479ef67c8ba6f3da6b318865 Mon Sep 17 00:00:00 2001 From: Albert Cahalan Date: Sun, 27 Apr 2008 23:27:01 +0000 Subject: [PATCH] revert for now, no time to fix --- macosx/tp_magic_api.h | 139 +----------------------------------------- 1 file changed, 1 insertion(+), 138 deletions(-) diff --git a/macosx/tp_magic_api.h b/macosx/tp_magic_api.h index c2f758165..b37f1bd0f 100644 --- a/macosx/tp_magic_api.h +++ b/macosx/tp_magic_api.h @@ -1,138 +1 @@ -#ifndef TP_MAGIC_API_H -#define TP_MAGIC_API_H - -#include "SDL.h" -#include "SDL_mixer.h" - - -/* min() and max() variable comparisons: */ - -#ifdef __GNUC__ -// This version has strict type checking for safety. -// See the "unnecessary" pointer comparison. (from Linux) -#define min(x,y) ({ \ - typeof(x) _x = (x); \ - typeof(y) _y = (y); \ - (void) (&_x == &_y); \ - _x < _y ? _x : _y; }) -#define max(x,y) ({ \ - typeof(x) _x = (x); \ - typeof(y) _y = (y); \ - (void) (&_x == &_y); \ - _x > _y ? _x : _y; }) -#else -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif - - -/* clamp() returns 'value', unless it's less than 'lo' or greater than 'hi', - in which cases it returns 'lo' or 'hi', respectively: */ - -#define clamp(lo,value,hi) (min(max(value,lo),hi)) - - -/* Flags you can send to 'special_notify' */ - -/* The image has been mirrored (so starter should be, too) */ -/* (as of API version 0x00000001) */ - -#define SPECIAL_MIRROR 0x0001 - -/* The image has been flipped (so starter should be, too) */ -/* (as of API version 0x00000001) */ -#define SPECIAL_FLIP 0x0002 - - -typedef struct magic_api_t { - /* A string containing the current version of Tux Paint (e.g., "0.9.18") */ - char * tp_version; - - /* A string containing Tux Paint's data directory - (e.g., "/usr/local/share/tuxpaint/") */ - char * data_directory; - - /* Call to have Tux Paint draw (and animate) its progress bar */ - void (*update_progress_bar)(void); - - /* Call to request special events; see "SPECIAL_..." flags, above */ - void (*special_notify)(int); - - /* Converts an RGB byte to a linear float */ - float (*sRGB_to_linear)(Uint8); - - /* Converts a linear float to an RGB byte */ - Uint8 (*linear_to_sRGB)(float); - - /* Returns whether an (x,y) location is within a circle of a particular - radius (centered around the origin: (0,0)); useful for creating tools - that have a circular 'brush' */ - int (*in_circle)(int,int,int); - - /* Receives an SDL pixel value from the surface at an (x,y) location; - use "SDL_GetRGB()" to convert the Uint32 into a Uint8 RGB values; - NOTE: Use SDL_LockSurface() on the surface before doing (a batch of) - this call! Use SDL_UnlockSurface() when you're done. - SDL_MustLockSurface() can tell you whether a surface needs to be locked. */ - Uint32 (*getpixel)(SDL_Surface *, int, int); - - /* Assigns an SDL pixel value on a surface at an (x,y) location; - use "SDL_MapRGB()" to convert a triplet of Uint8 RGB values to a Uint32; - NOTE: Use SDL_LockSurface() on the surface before doing (a batch of) - this call! Use SDL_UnlockSurface() when you're done. - SDL_MustLockSurface() can tell you whether a surface needs to be locked. */ - void (*putpixel)(SDL_Surface *, int, int, Uint32); - - /* Asks Tux Paint to play a sound (one loaded via SDL_mixer library); - the first value is for left/right panning (0 is left, 128 is center, - 255 is right); the second value is for total volume (0 is off, 255 is - loudest) */ - void (*playsound)(Mix_Chunk *, int, int); - - /* Asks Tux Paint to stop playing the sound played by 'playsound()' */ - void (*stopsound)(void); - - /* Asks Tux Paint to calculate a line between (x1,y1) and (x2,y2); - every 'step' iterations, it will call your callback function - (which must accept a 'magic_api *' Magic API pointer and 'which' integer - for which tool is being used, the 'last' and current ('canvas') - SDL_Surfaces, and an (x,y) position) */ - void (*line)(void *, int, SDL_Surface *, SDL_Surface *, int, int, int, int, int, void (*)(void *, int, SDL_Surface *, SDL_Surface *, int, int)); - - /* Returns whether the mouse button is down */ - int (*button_down)(void); - - /* Converts RGB bytes into HSV floats */ - void (*rgbtohsv)(Uint8, Uint8, Uint8, float *, float *, float *); - - /* Converts HSV floats into RGB bytes */ - void (*hsvtorgb)(float, float, float, Uint8 *, Uint8 *, Uint8 *); - - /* Holds Tux Paint's canvas dimensions */ - int canvas_w; - int canvas_h; - - /* Returns a new surface containing the scaled contents of an input - surface, scaled to, at maximum, w x h dimensions - (keeping aspect ratio, if requested; check the return surface's - 'w' and 'h' elements to confirm the actual size) */ - SDL_Surface * (*scale)(SDL_Surface *, int, int, int); - - /* Returns whether a particular position of the canvas has been labeled - as 'touched,' since the mouse was first clicked; this function ALSO - assigns the position as touched, until the next time the mouse is - clicked; useful for not applying the same effect from 'last' to 'canvas' - more than once per click-and-drag sequence */ - Uint8 (*touched)(int, int); -} magic_api; - - -/* The version of the Tux Paint Magic tool API you are being compiled - against. Your 'XYZ_api_version()' should return this value. - If Tux Paint deems you compatible, it will call your 'XYZ_init()' (etc.) - and you will be active. */ - -#define TP_MAGIC_API_VERSION 0x00000001 - -#endif - +#include "../src/tp_magic_api.h"