1 #ifndef CLIB_RENDER_H
    2 #define CLIB_RENDER_H
    3 /*
    4 **	$VER: render_protos.h v29.1 (19.5.99)
    5 **
    6 **	C prototype definitions
    7 **
    8 **	© TEK neoscientists
    9 */
   10 
   11 #ifndef	GRAPHICS_GFX_H
   12 #include <graphics/gfx.h>
   13 #endif
   14 
   15 #ifndef	UTILITY_HOOKS_H
   16 #include <utility/hooks.h>
   17 #endif
   18 
   19 #ifndef UTILITY_TAGITEM_H
   20 #include <utility/tagitem.h>
   21 #endif
   22 
   23 #ifdef __cplusplus
   24 extern "C" {
   25 #endif /* __cplusplus */
   26 
   27 /*   private functions: */
   28 
   29 void	TurboFillMem( APTR,ULONG,UBYTE );
   30 void	TurboCopyMem( APTR,APTR,ULONG );
   31 ULONG 	*CreateHistogramPointerArray( APTR );
   32 ULONG	CountHistogram( APTR );
   33 ULONG	GetPaletteAttrs( APTR, ULONG);
   34 void	RemapArrayA(UBYTE *source, UWORD width, UWORD height, UBYTE *dest, UBYTE *pentab, struct TagItem *);
   35 void	RemapArray(UBYTE *source, UWORD width, UWORD height, UBYTE *dest, UBYTE *pentab, Tag, ... );
   36 
   37 
   38 /*   public functions:  */
   39 
   40 APTR	CreateRMHandlerA( struct TagItem * );
   41 APTR	CreateRMHandler( Tag, ... );
   42 void	DeleteRMHandler( APTR );
   43 APTR	AllocRenderMem( APTR, ULONG );
   44 void	FreeRenderMem( APTR, APTR, ULONG );
   45 APTR	AllocRenderVec( APTR, ULONG );
   46 void	FreeRenderVec( APTR );
   47 APTR	AllocRenderVecClear( APTR, ULONG );
   48 
   49 APTR	CreateHistogramA( struct TagItem * );
   50 APTR	CreateHistogram( Tag, ... );
   51 void	DeleteHistogram(APTR);
   52 ULONG	QueryHistogram( APTR, Tag );
   53 ULONG	AddRGB( APTR, ULONG, ULONG );
   54 ULONG	AddRGBImageA( APTR, ULONG *, UWORD, UWORD, struct TagItem * );
   55 ULONG	AddRGBImage( APTR, ULONG *, UWORD, UWORD, Tag, ... );
   56 ULONG	AddChunkyImageA( APTR, UBYTE *, UWORD, UWORD, APTR, struct TagItem * );
   57 ULONG	AddChunkyImage( APTR, UBYTE *, UWORD, UWORD, APTR, Tag, ... );
   58 ULONG	ExtractPaletteA( APTR, ULONG *, UWORD, struct TagItem * );
   59 ULONG	ExtractPalette( APTR, ULONG *, UWORD, Tag, ... );
   60 ULONG	RenderA( ULONG *, UWORD, UWORD, UBYTE *, APTR, struct TagItem * );
   61 ULONG	Render( ULONG *, UWORD, UWORD, UBYTE *, APTR, Tag, ... );
   62 
   63 void	Planar2ChunkyA( PLANEPTR *, UWORD, UWORD, UWORD, UWORD, UBYTE *, struct TagItem * );
   64 void	Planar2Chunky( PLANEPTR *, UWORD, UWORD, UWORD, UWORD, UBYTE *, Tag, ... );
   65 ULONG	Chunky2RGBA( UBYTE *, UWORD, UWORD, ULONG *, APTR, struct TagItem * );
   66 ULONG	Chunky2RGB( UBYTE *, UWORD, UWORD, ULONG *, APTR, Tag, ... );
   67 void	Chunky2BitMapA( UBYTE *, UWORD, UWORD, UWORD, UWORD, struct BitMap *, UWORD, UWORD, struct TagItem * );
   68 void	Chunky2BitMap( UBYTE *, UWORD, UWORD, UWORD, UWORD, struct BitMap *, UWORD, UWORD, Tag, ... );
   69 
   70 APTR	CreateScaleEngineA( UWORD, UWORD, UWORD, UWORD, struct TagItem * );
   71 APTR	CreateScaleEngine( UWORD, UWORD, UWORD, UWORD, Tag, ... );
   72 void	DeleteScaleEngine( APTR );
   73 ULONG	ScaleA( APTR, APTR, APTR, struct TagItem * );
   74 ULONG	Scale( APTR, APTR, APTR, Tag, ... );
   75 
   76 ULONG	ConvertChunkyA( UBYTE *, APTR, UWORD, UWORD, UBYTE *, APTR, struct TagItem * );
   77 ULONG	ConvertChunky( UBYTE *, APTR, UWORD, UWORD, UBYTE *, APTR, Tag, ... );
   78 void	CreatePenTableA( UBYTE *, APTR, UWORD, UWORD, APTR, UBYTE *, struct TagItem * );
   79 void	CreatePenTable( UBYTE *, APTR, UWORD, UWORD, APTR, UBYTE *, Tag, ... );
   80 
   81 APTR	CreatePaletteA( struct TagItem * );
   82 APTR	CreatePalette( Tag, ... );
   83 void	DeletePalette( APTR );
   84 void	ImportPaletteA( APTR, APTR, UWORD, struct TagItem * );
   85 void	ImportPalette( APTR, APTR, UWORD, Tag, ... );
   86 void	ExportPaletteA( APTR, APTR, struct TagItem * );
   87 void	ExportPalette( APTR, APTR, Tag, ... );
   88 void	FlushPalette( APTR );
   89 ULONG	SortPaletteA( APTR, ULONG, struct TagItem * );
   90 ULONG	SortPalette( APTR, ULONG, Tag, ... );
   91 
   92 ULONG	CountRGB( APTR, ULONG );
   93 LONG	BestPen( APTR, ULONG );
   94 
   95 ULONG	AddHistogramA( APTR, APTR, struct TagItem * );
   96 ULONG	AddHistogram( APTR, APTR, Tag, ... );
   97 
   98 UWORD	ScaleOrdinate( UWORD, UWORD, UWORD );
   99 
  100 APTR	CreateMapEngineA( APTR, struct TagItem * );
  101 APTR	CreateMapEngine( APTR, Tag, ... );
  102 void	DeleteMapEngine( APTR );
  103 ULONG	MapRGBArrayA( APTR, ULONG *, UWORD, UWORD, UBYTE *, struct TagItem * );
  104 ULONG	MapRGBArray( APTR, ULONG *, UWORD, UWORD, UBYTE *, Tag, ... );
  105 ULONG	MapChunkyArrayA( APTR, UBYTE *, APTR, UWORD, UWORD, UBYTE *, struct TagItem * );
  106 ULONG	MapChunkyArray( APTR, UBYTE *, APTR, UWORD, UWORD, UBYTE *, Tag, ... );
  107 
  108 LONG	RGBArrayDiversityA(ULONG *, UWORD, UWORD, struct TagItem * );
  109 LONG	RGBArrayDiversity(ULONG *, UWORD, UWORD, Tag, ... );
  110 
  111 LONG	ChunkyArrayDiversityA(UBYTE *, APTR, UWORD, UWORD, struct TagItem *);
  112 LONG	ChunkyArrayDiversity(UBYTE *, APTR, UWORD, UWORD, Tag, ... );
  113 
  114 void	InsertAlphaChannelA(UBYTE *, UWORD, UWORD, ULONG *, struct TagItem *);
  115 void	InsertAlphaChannel(UBYTE *, UWORD, UWORD, ULONG *, Tag, ... );
  116 void	ExtractAlphaChannelA(ULONG *, UWORD, UWORD, UBYTE *, struct TagItem *);
  117 void	ExtractAlphaChannel(ULONG *, UWORD, UWORD, UBYTE *, Tag, ... );
  118 void	ApplyAlphaChannelA(ULONG *, UWORD, UWORD, ULONG *, struct TagItem *);
  119 void	ApplyAlphaChannel(ULONG *, UWORD, UWORD, ULONG *, Tag, ... );
  120 void	MixRGBArrayA(ULONG *, UWORD, UWORD, ULONG *, UWORD, struct TagItem *);
  121 void	MixRGBArray(ULONG *, UWORD, UWORD, ULONG *, UWORD, Tag, ... );
  122 void	CreateAlphaArrayA(ULONG *, UWORD, UWORD, struct TagItem *);
  123 void	CreateAlphaArray(ULONG *, UWORD, UWORD, Tag, ... );
  124 void	MixAlphaChannelA(ULONG *, ULONG *, UWORD, UWORD, ULONG *, struct TagItem *);
  125 void	MixAlphaChannel(ULONG *, ULONG *, UWORD, UWORD, ULONG *, Tag, ... );
  126 void	TintRGBArrayA(ULONG *, UWORD, UWORD, ULONG, UWORD, ULONG *, struct TagItem *);
  127 void	TintRGBArray(ULONG *, UWORD, UWORD, ULONG, UWORD, ULONG *, Tag, ... );
  128 
  129 #ifdef __cplusplus
  130 }
  131 #endif /* __cplusplus */
  132 
  133 #endif