/* clib/superviewsupport_protos.h   */
/* Version    : 4.1                 */
/* Date       : 14.06.1994          */
/* Written by : Andreas R. Kleinert */

#ifndef CLIB_SUPERVIEWSUPPORT_PROTOS_H
#define CLIB_SUPERVIEWSUPPORT_PROTOS_H

#ifndef SUPERVIEWSUPPORT_SUPERVIEWSUPPORT_H
#include <superviewsupport/superviewsupport.h>
#endif /* SUPERVIEWSUPPORT_SUPERVIEWSUPPORT_H */

struct SVSUP_MemList * SVSUP_GetMemList(    void);
void	               SVSUP_FreeMemList(   APTR mlist);
ULONG       	       SVSUP_AddMemEntry(   APTR mlist,
                                            APTR pointer);
APTR		       SVSUP_AllocMemEntry( APTR mlist,
                                            ULONG size,
                                            ULONG type);

ULONG SVSUP_CheckInterleaved(               struct Screen *sc);
UBYTE SVSUP_GetXAspect(                     struct Screen *sc);
UBYTE SVSUP_GetYAspect(                     struct Screen *sc);
ULONG SVSUP_GetBitMapDepth(                 struct Screen *sc);
ULONG SVSUP_GetBitMapHeight(                struct Screen *sc);
ULONG SVSUP_GetBodySize(                    struct Screen *sc);
ULONG SVSUP_GetStdScreenSize(               ULONG mode_id,
                                            ULONG *width,
                                            ULONG *height);

ULONG SVSUP_GetBestModeID(                  ULONG width,
                                            ULONG height,
                                            ULONG depth);
ULONG SVSUP_CopyScreenToBuffer8(            struct Screen *sc,
                                            UBYTE *buffer,
                                            ULONG width,
                                            ULONG height,
                                            ULONG depth);

/* added with V2 */

ULONG SVSUP_LoadControlPad( UBYTE *filename, struct SV_ControlPad **controlpad);
ULONG SVSUP_SaveControlPad( UBYTE *filename, struct SV_ControlPad *controlpad);
ULONG SVSUP_FreeControlPad( struct SV_ControlPad *controlpad);
ULONG SVSUP_FindControlPad( struct SV_ControlPad *controlpad, UBYTE *name, UBYTE **content);

/* added with V3 */

ULONG SVSUP_BitPlaneToOnePlane8( struct SV_GfxBuffer *sourcegfx, struct SV_GfxBuffer **retgfx);
ULONG SVSUP_OnePlaneToBitPlane8( struct SV_GfxBuffer *sourcegfx, struct SV_GfxBuffer **retgfx);
ULONG SVSUP_ScreenToOnePlane8(   struct Screen *sc, struct SV_GfxBuffer **retgfx);
ULONG SVSUP_ScreenToBitPlane8(   struct Screen *sc, struct SV_GfxBuffer **retgfx);

/* added with V4 */

ULONG SVSUP_DisplayGfxBuffer(   struct SVSUP_DisplayHandle *displayhandle);
void  SVSUP_UnDisplayGfxBuffer( struct SVSUP_DisplayHandle *displayhandle);
void  SVSUP_FreeGfxBuffer(      struct SV_GfxBuffer *gfxbuffer);

#endif /* CLIB_SUPERVIEWSUPPORT_PROTOS_H */
