
/// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the EROC_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// EROC_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef EROC_EXPORTS
#define EROC_API __declspec(dllexport)
#else
#define EROC_API __declspec(dllimport)
#endif

// ALL Gopher plug-ins need to have these functions!
EROC_API BOOL Gopher_Init ( SDL_Surface ** outputSurfaces, SDL_Surface ** inputSurfaces );
EROC_API BOOL Gopher_BeginNewFrame ( long currentOutputSurface );
EROC_API BOOL Gopher_Quit ( void );

// Eroc-specific functions
EROC_API BOOL Clear ( void );
EROC_API BOOL BackgroundColor( signed long inRed, signed long inGreen, signed long inBlue);
EROC_API BOOL Background ( signed long inImageNr );
EROC_API BOOL BackgroundFade ( signed long inImageNr, signed long inOpacity );
EROC_API BOOL FastBackground ( signed long inImageNr, signed long inPosX,
							   signed long inPosY, signed long inSizeX, signed long inSizeY );
EROC_API BOOL Image ( signed long inImageNr, signed long inPosX, signed long inPosY,
					  signed long inScale, signed long inOpacity );
EROC_API BOOL Animate ( signed long inAnimNr, signed long inPosX, signed long inPosY, 
					    signed long inScale, signed long inOpacity, signed long inTime );
EROC_API BOOL PrintNr ( signed long inImageNr, signed long inPosX, signed long inPosY );
EROC_API BOOL ShowFPS ( signed long inPosX, signed long inPosY );
EROC_API BOOL CircularBlur(signed long inImageNr, signed long inPosX, signed long inPosY,
						signed long inScale, signed long inDegrees, signed long inBrightness );
EROC_API BOOL Wave( signed long inImageNr, signed long inPosX, signed long inPosY,
					 signed long inScale, signed long inOpacity,
					 signed long inWavesX, signed long inWavesY, signed long inSizeX, signed long inSizeY,
					 signed long inOffsetX,signed long inOffsetSizeX);

EROC_API BOOL Rasterize( signed long inImageNr, signed long inPosX, signed long inPosY,
					  signed long inScale, signed long inOpacity );