/*
**     $VER: rtgmaster.h 1.012 (08 Mar 1997)
*/

#ifndef RTGMASTER_H
#define RTGMASTER_H TRUE

#ifndef UTILITY_TAGITEM_H
#include "utility/tagitem.h"
#endif

#ifndef EXEC_LIBRARIES_H
#include "exec/libraries.h"
#endif

#ifndef EXEC_TYPES_H
#include "exec/types.h"
#endif

#define smr_Dummy      TAG_USER
#define smr_MinWidth   (smr_Dummy + 0x01)


#define smr_MaxWidth   (smr_Dummy + 0x02)


#define smr_MinHeight  (smr_Dummy + 0x03)


#define smr_MaxHeight  (smr_Dummy + 0x04)


#define smr_PlanarRoundW (smr_Dummy + 0x05)


#define smr_PlanarRoundH (smr_Dummy + 0x06)


#define smr_ChunkyRoundW (smr_Dummy + 0x07)


#define smr_ChunkyRoundH (smr_Dummy + 0x08)

#define smr_ProgramUsesC2P   (smr_Dummy + 0x0c)



#define smr_ChunkySupport (smr_Dummy + 0x09)


#define smr_PlanarSupport (smr_Dummy + 0x0a)


#define smr_Buffers       (smr_Dummy + 0x0b)



#define smr_InitialWidth    (smr_Dummy + 0x10)


#define smr_InitialHeight   (smr_Dummy + 0x11)


#define smr_InitialDepth    (smr_Dummy + 0x12)


#define smr_InitialScreenMode (smr_Dummy + 0x13)


#define smr_InitialDefaultW   (smr_Dummy + 0x14)


#define smr_InitialDefaultH   (smr_Dummy + 0x15)


#define smr_PrefsFileName     (smr_Dummy + 0x16)


#define smr_ForceOpen         (smr_Dummy + 0x17)


#define smr_TitleText         (smr_Dummy + 0x18)


#define smr_WindowLeftEdge   (smr_Dummy + 0x19)


#define smr_WindowTopEdge    (smr_Dummy + 0x1a)


#define smr_Screen           (smr_Dummy + 0x1b)


#define smr_PubScreenName    (smr_Dummy + 0x1c)

#define smr_MinPixelAspect   (smr_Dummy + 0x1d)


#define smr_MaxPixelAspect   (smr_Dummy + 0x1e)


#define smr_Workbench (smr_Dummy + 0x1f)



#define smr_PixelAspect_Proportional (1 << 16)
#define smr_PixelAspect_Wide         (smr_PixelAspect_Proportional / 2)
#define smr_PixelAspect_Narrow       (smr_PixelAspect_Proportional * 2)




struct RDCMPData
{
    struct MsgPort *port;
    ULONG signal;
    WORD *MouseX;
    WORD *MouseY;
};

struct RTGMasterBase {
    struct Library base;
    WORD   Pad;
    ULONG  SegList;
    APTR   DosBase;
    APTR   ExecBase;
    APTR   GadToolsBase;
    APTR   GfxBase;
    APTR   IntBase;
    APTR   UtilityBase;
    BYTE   Track[8];
    struct RtgLibs *Libraries;
    APTR   FirstScreenMode;
    APTR   LinkerDB;
};

struct RtgLibs {
    APTR  Next;
    ULONG ID;
    APTR  LibBase;
    APTR  SMList;
    APTR  LastSM;
    UWORD LibVersion;
};

struct RtgBobHandle
{
 ULONG BufSize;
 struct RtgScreen *RtgScreen;
 APTR RefreshBuffer;
 ULONG BPR;
 ULONG Width;
 ULONG Height;
 UWORD numsprites;
 UWORD maxnum;
 ULONG reserved;
};

#endif

