#ifndef DEFINES_GUIGFX_PROTOS_H
#define DEFINES_GUIGFX_PROTOS_H

/*
    *** Automatically generated from 'guigfx.conf'. Edits will be lost. ***
    Copyright © 1995-2008, The AROS Development Team. All rights reserved.
*/

/*
    Desc: Defines for guigfx
*/

#include <aros/libcall.h>
#include <exec/types.h>
#include <aros/preprocessor/variadic/cast2iptr.hpp>


#define __MakePictureA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(APTR, MakePictureA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(UWORD,(__arg2),D0), \
                  AROS_LCA(UWORD,(__arg3),D1), \
                  AROS_LCA(struct TagItem *,(__arg4),A1), \
        struct Library *, (__GuiGFXBase), 5, GuiGFX)

#define MakePictureA(arg1, arg2, arg3, arg4) \
    __MakePictureA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define MakePicture(arg1, arg2, arg3, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    MakePictureA((arg1), (arg2), (arg3), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __LoadPictureA_WB(__GuiGFXBase, __arg1, __arg2) \
        AROS_LC2(APTR, LoadPictureA, \
                  AROS_LCA(STRPTR,(__arg1),A0), \
                  AROS_LCA(struct TagItem *,(__arg2),A1), \
        struct Library *, (__GuiGFXBase), 6, GuiGFX)

#define LoadPictureA(arg1, arg2) \
    __LoadPictureA_WB(GuiGFXBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define LoadPicture(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    LoadPictureA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __ReadPictureA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7) \
        AROS_LC7(APTR, ReadPictureA, \
                  AROS_LCA(struct RastPort *,(__arg1),A0), \
                  AROS_LCA(struct ColorMap *,(__arg2),A1), \
                  AROS_LCA(UWORD,(__arg3),D0), \
                  AROS_LCA(UWORD,(__arg4),D1), \
                  AROS_LCA(UWORD,(__arg5),D2), \
                  AROS_LCA(UWORD,(__arg6),D3), \
                  AROS_LCA(struct TagItem *,(__arg7),A2), \
        struct Library *, (__GuiGFXBase), 7, GuiGFX)

#define ReadPictureA(arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
    __ReadPictureA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4), (arg5), (arg6), (arg7))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define ReadPicture(arg1, arg2, arg3, arg4, arg5, arg6, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    ReadPictureA((arg1), (arg2), (arg3), (arg4), (arg5), (arg6), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __ClonePictureA_WB(__GuiGFXBase, __arg1, __arg2) \
        AROS_LC2(APTR, ClonePictureA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(struct TagItem *,(__arg2),A1), \
        struct Library *, (__GuiGFXBase), 8, GuiGFX)

#define ClonePictureA(arg1, arg2) \
    __ClonePictureA_WB(GuiGFXBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define ClonePicture(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    ClonePictureA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __DeletePicture_WB(__GuiGFXBase, __arg1) \
        AROS_LC1NR(void, DeletePicture, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 9, GuiGFX)

#define DeletePicture(arg1) \
    __DeletePicture_WB(GuiGFXBase, (arg1))

#define __UpdatePicture_WB(__GuiGFXBase, __arg1) \
        AROS_LC1(BOOL, UpdatePicture, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 10, GuiGFX)

#define UpdatePicture(arg1) \
    __UpdatePicture_WB(GuiGFXBase, (arg1))

#define __AddPictureA_WB(__GuiGFXBase, __arg1, __arg2, __arg3) \
        AROS_LC3(APTR, AddPictureA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(APTR,(__arg2),A1), \
                  AROS_LCA(struct TagItem *,(__arg3),A2), \
        struct Library *, (__GuiGFXBase), 11, GuiGFX)

#define AddPictureA(arg1, arg2, arg3) \
    __AddPictureA_WB(GuiGFXBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define AddPicture(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    AddPictureA((arg1), (arg2), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __AddPaletteA_WB(__GuiGFXBase, __arg1, __arg2, __arg3) \
        AROS_LC3(APTR, AddPaletteA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(APTR,(__arg2),A1), \
                  AROS_LCA(struct TagItem *,(__arg3),A2), \
        struct Library *, (__GuiGFXBase), 12, GuiGFX)

#define AddPaletteA(arg1, arg2, arg3) \
    __AddPaletteA_WB(GuiGFXBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define AddPalette(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    AddPaletteA((arg1), (arg2), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __AddPixelArrayA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4, __arg5) \
        AROS_LC5(APTR, AddPixelArrayA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(APTR,(__arg2),A1), \
                  AROS_LCA(UWORD,(__arg3),D0), \
                  AROS_LCA(UWORD,(__arg4),D1), \
                  AROS_LCA(struct TagItem *,(__arg5),A2), \
        struct Library *, (__GuiGFXBase), 13, GuiGFX)

#define AddPixelArrayA(arg1, arg2, arg3, arg4, arg5) \
    __AddPixelArrayA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4), (arg5))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define AddPixelArray(arg1, arg2, arg3, arg4, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    AddPixelArrayA((arg1), (arg2), (arg3), (arg4), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __RemColorHandle_WB(__GuiGFXBase, __arg1) \
        AROS_LC1NR(void, RemColorHandle, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 14, GuiGFX)

#define RemColorHandle(arg1) \
    __RemColorHandle_WB(GuiGFXBase, (arg1))

#define __CreatePenShareMapA_WB(__GuiGFXBase, __arg1) \
        AROS_LC1(APTR, CreatePenShareMapA, \
                  AROS_LCA(struct TagItem *,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 15, GuiGFX)

#define CreatePenShareMapA(arg1) \
    __CreatePenShareMapA_WB(GuiGFXBase, (arg1))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define CreatePenShareMap(...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    CreatePenShareMapA((struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __DeletePenShareMap_WB(__GuiGFXBase, __arg1) \
        AROS_LC1NR(void, DeletePenShareMap, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 16, GuiGFX)

#define DeletePenShareMap(arg1) \
    __DeletePenShareMap_WB(GuiGFXBase, (arg1))

#define __ObtainDrawHandleA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(APTR, ObtainDrawHandleA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(struct RastPort *,(__arg2),A1), \
                  AROS_LCA(struct ColorMap *,(__arg3),A2), \
                  AROS_LCA(struct TagItem *,(__arg4),A3), \
        struct Library *, (__GuiGFXBase), 17, GuiGFX)

#define ObtainDrawHandleA(arg1, arg2, arg3, arg4) \
    __ObtainDrawHandleA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define ObtainDrawHandle(arg1, arg2, arg3, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    ObtainDrawHandleA((arg1), (arg2), (arg3), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __ReleaseDrawHandle_WB(__GuiGFXBase, __arg1) \
        AROS_LC1NR(void, ReleaseDrawHandle, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 18, GuiGFX)

#define ReleaseDrawHandle(arg1) \
    __ReleaseDrawHandle_WB(GuiGFXBase, (arg1))

#define __DrawPictureA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4, __arg5) \
        AROS_LC5(BOOL, DrawPictureA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(APTR,(__arg2),A1), \
                  AROS_LCA(UWORD,(__arg3),D0), \
                  AROS_LCA(UWORD,(__arg4),D1), \
                  AROS_LCA(struct TagItem *,(__arg5),A2), \
        struct Library *, (__GuiGFXBase), 19, GuiGFX)

#define DrawPictureA(arg1, arg2, arg3, arg4, arg5) \
    __DrawPictureA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4), (arg5))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define DrawPicture(arg1, arg2, arg3, arg4, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    DrawPictureA((arg1), (arg2), (arg3), (arg4), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __MapPaletteA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(BOOL, MapPaletteA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(APTR,(__arg2),A1), \
                  AROS_LCA(UBYTE *,(__arg3),A2), \
                  AROS_LCA(struct TagItem *,(__arg4),A3), \
        struct Library *, (__GuiGFXBase), 20, GuiGFX)

#define MapPaletteA(arg1, arg2, arg3, arg4) \
    __MapPaletteA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define MapPalette(arg1, arg2, arg3, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    MapPaletteA((arg1), (arg2), (arg3), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __MapPenA_WB(__GuiGFXBase, __arg1, __arg2, __arg3) \
        AROS_LC3(LONG, MapPenA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(ULONG,(__arg2),D0), \
                  AROS_LCA(struct TagItem *,(__arg3),A1), \
        struct Library *, (__GuiGFXBase), 21, GuiGFX)

#define MapPenA(arg1, arg2, arg3) \
    __MapPenA_WB(GuiGFXBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define MapPen(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    MapPenA((arg1), (arg2), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __CreatePictureBitMapA_WB(__GuiGFXBase, __arg1, __arg2, __arg3) \
        AROS_LC3(struct BitMap *, CreatePictureBitMapA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(APTR,(__arg2),A1), \
                  AROS_LCA(struct TagItem *,(__arg3),A2), \
        struct Library *, (__GuiGFXBase), 22, GuiGFX)

#define CreatePictureBitMapA(arg1, arg2, arg3) \
    __CreatePictureBitMapA_WB(GuiGFXBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define CreatePictureBitMap(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    CreatePictureBitMapA((arg1), (arg2), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __DoPictureMethodA_WB(__GuiGFXBase, __arg1, __arg2, __arg3) \
        AROS_LC3(ULONG, DoPictureMethodA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(ULONG,(__arg2),D0), \
                  AROS_LCA(ULONG *,(__arg3),A1), \
        struct Library *, (__GuiGFXBase), 23, GuiGFX)

#define DoPictureMethodA(arg1, arg2, arg3) \
    __DoPictureMethodA_WB(GuiGFXBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define DoPictureMethod(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    DoPictureMethodA((arg1), (arg2), (ULONG *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __GetPictureAttrsA_WB(__GuiGFXBase, __arg1, __arg2) \
        AROS_LC2(ULONG, GetPictureAttrsA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(struct TagItem *,(__arg2),A1), \
        struct Library *, (__GuiGFXBase), 24, GuiGFX)

#define GetPictureAttrsA(arg1, arg2) \
    __GetPictureAttrsA_WB(GuiGFXBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define GetPictureAttrs(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    GetPictureAttrsA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __LockPictureA_WB(__GuiGFXBase, __arg1, __arg2, __arg3) \
        AROS_LC3(ULONG, LockPictureA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(ULONG,(__arg2),D0), \
                  AROS_LCA(ULONG *,(__arg3),A1), \
        struct Library *, (__GuiGFXBase), 25, GuiGFX)

#define LockPictureA(arg1, arg2, arg3) \
    __LockPictureA_WB(GuiGFXBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define LockPicture(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    LockPictureA((arg1), (arg2), (ULONG *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __UnLockPicture_WB(__GuiGFXBase, __arg1, __arg2) \
        AROS_LC2NR(void, UnLockPicture, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(ULONG,(__arg2),D0), \
        struct Library *, (__GuiGFXBase), 26, GuiGFX)

#define UnLockPicture(arg1, arg2) \
    __UnLockPicture_WB(GuiGFXBase, (arg1), (arg2))

#define __IsPictureA_WB(__GuiGFXBase, __arg1, __arg2) \
        AROS_LC2(BOOL, IsPictureA, \
                  AROS_LCA(char *,(__arg1),A0), \
                  AROS_LCA(struct TagItem *,(__arg2),A1), \
        struct Library *, (__GuiGFXBase), 27, GuiGFX)

#define IsPictureA(arg1, arg2) \
    __IsPictureA_WB(GuiGFXBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define IsPicture(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    IsPictureA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __CreateDirectDrawHandleA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \
        AROS_LC6(APTR, CreateDirectDrawHandleA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(UWORD,(__arg2),D0), \
                  AROS_LCA(UWORD,(__arg3),D1), \
                  AROS_LCA(UWORD,(__arg4),D2), \
                  AROS_LCA(UWORD,(__arg5),D3), \
                  AROS_LCA(struct TagItem *,(__arg6),A1), \
        struct Library *, (__GuiGFXBase), 28, GuiGFX)

#define CreateDirectDrawHandleA(arg1, arg2, arg3, arg4, arg5, arg6) \
    __CreateDirectDrawHandleA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4), (arg5), (arg6))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define CreateDirectDrawHandle(arg1, arg2, arg3, arg4, arg5, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    CreateDirectDrawHandleA((arg1), (arg2), (arg3), (arg4), (arg5), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __DeleteDirectDrawHandle_WB(__GuiGFXBase, __arg1) \
        AROS_LC1NR(void, DeleteDirectDrawHandle, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__GuiGFXBase), 29, GuiGFX)

#define DeleteDirectDrawHandle(arg1) \
    __DeleteDirectDrawHandle_WB(GuiGFXBase, (arg1))

#define __DirectDrawTrueColorA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4, __arg5) \
        AROS_LC5(BOOL, DirectDrawTrueColorA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(ULONG *,(__arg2),A1), \
                  AROS_LCA(UWORD,(__arg3),D0), \
                  AROS_LCA(ULONG,(__arg4),D1), \
                  AROS_LCA(struct TagItem *,(__arg5),A2), \
        struct Library *, (__GuiGFXBase), 30, GuiGFX)

#define DirectDrawTrueColorA(arg1, arg2, arg3, arg4, arg5) \
    __DirectDrawTrueColorA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4), (arg5))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define DirectDrawTrueColor(arg1, arg2, arg3, arg4, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    DirectDrawTrueColorA((arg1), (arg2), (arg3), (arg4), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __CreatePictureMaskA_WB(__GuiGFXBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(BOOL, CreatePictureMaskA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(UBYTE *,(__arg2),A1), \
                  AROS_LCA(UWORD,(__arg3),D0), \
                  AROS_LCA(struct TagItem *,(__arg4),A2), \
        struct Library *, (__GuiGFXBase), 31, GuiGFX)

#define CreatePictureMaskA(arg1, arg2, arg3, arg4) \
    __CreatePictureMaskA_WB(GuiGFXBase, (arg1), (arg2), (arg3), (arg4))

#if !defined(NO_INLINE_STDARG) && !defined(GUIGFX_NO_INLINE_STDARG)
#define CreatePictureMask(arg1, arg2, arg3, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    CreatePictureMaskA((arg1), (arg2), (arg3), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#endif /* DEFINES_GUIGFX_PROTOS_H*/
