home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / Programming / advlite / Docs / autodocs / rtgmasterdoc.lha / rtgmaster.doc
Encoding:
Text File  |  1999-10-27  |  82.1 KB  |  2,107 lines

  1.  
  2. TABLE OF CONTENTS
  3.  
  4. rtgmaster.library/CallRtgC2P
  5. rtgmaster.library/CloseClient
  6. rtgmaster.library/CloseRtgScreen
  7. rtgmaster.library/CloseServer
  8. rtgmaster.library/CopyRtgBlit
  9. rtgmaster.library/CopyRtgPixelArray
  10. rtgmaster.library/DrawRtgLine
  11. rtgmaster.library/DrawRtgLineRGB
  12. rtgmaster.library/FillRtgRect
  13. rtgmaster.library/FillRtgRectRGB
  14. rtgmaster.library/RtgScreenModeReq
  15. rtgmaster.library/FreeRtgSRList
  16. rtgmaster.library/FreeScreenModes
  17. rtgmaster.library/GetBufAdr
  18. rtgmaster.library/GetRtgScreenData
  19. rtgmaster.library/GetScreenModes
  20. rtgmaster.library/GetUDPName
  21. rtgmaster.library/LoadRGBRtg
  22. rtgmaster.library/LockRtgScreen
  23. rtgmaster.library/OpenClient
  24. rtgmaster.library/OpenRtgScreen
  25. rtgmaster.library/OpenServer
  26. rtgmaster.library/RtgAccept
  27. rtgmaster.library/RtgAllocSRList
  28. rtgmaster.library/RtgBestSR
  29. rtgmaster.library/RtgBlit
  30. rtgmaster.library/RtgBltClear
  31. rtgmaster.library/RtgCheckVSync
  32. rtgmaster.library/RtgClearPointer
  33. rtgmaster.library/RtgCloseFont
  34. rtgmaster.library/RtgInAdr
  35. rtgmaster.library/RtgInitBob
  36. rtgmaster.library/RtgIoctl
  37. rtgmaster.library/RtgOpenFont
  38. rtgmaster.library/RtgRecv
  39. rtgmaster.library/RtgScreenAtFront
  40. rtgmaster.library/RtgScreenModeReq
  41. rtgmaster.library/RtgSend
  42. rtgmaster.library/RtgSetFont
  43. rtgmaster.library/RtgSetPointer
  44. rtgmaster.library/RtgSetTextMode
  45. rtgmaster.library/RtgSetTextModeRGB
  46. rtgmaster.library/RtgText
  47. rtgmaster.library/RtgWaitTOF
  48. rtgmaster.library/RunServer
  49. rtgmaster.library/SwitchScreens
  50. rtgmaster.library/UnlockRtgScreen
  51. rtgmaster.library/WaitRtgBlit
  52. rtgmaster.library/WaitRtgSwitch
  53. rtgmaster.library/WriteRtgPixel
  54. rtgmaster.library/WriteRtgPixelArray
  55. rtgmaster.library/WriteRtgPixelRGB
  56. rtgmaster.library/WriteRtgPixelRGBArray
  57.  
  58. rtgmaster.library/CallRtgC2P                                rtgmaster.library/CallRtgC2P
  59.  
  60.    NAME
  61.         CallRtgC2P -- Perform c2p for Planar Screens, CopyRtgPixelArray for Chunky Screens
  62.  
  63.    SYNOPSIS
  64.         int CallRtgC2P(RtgScreen,BufAdr,Array,signal,xpos,ypos,width,height,mode)
  65.          D0              A0        A1     A2    D0     D1   D2   D3    D4     D5
  66.  
  67.         int CallRtgC2P(struct RtgScreen *,APTR,APTR,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG)
  68.  
  69.    FUNCTION
  70.         This function will look what the "standard c2p" for the system is up to now
  71.         (the standard c2p can be choose by a future version of the Rtgmaster Screenmode
  72.         requester, the available c2p algorithms are found in libs:rtgc2p, how own c2p
  73.         algorithms can be added to the system will be explained in the documentation
  74.         of the first version of rtgmaster.library that actually supports CallRtgC2P).
  75.         The function will, if the display is a Planar one, convert the Chunky Data in
  76.         Array to Planar using the choosen c2p algorithm, and display it in the choosen
  77.         Buffer. For Chunky Displays it will instead do the same as CopyRtgChunkyPixel.
  78.         This way a very easy possibility to support both AGA and Graphics Boards without
  79.         having to do "special versions" will be available, if one uses a Fastram Buffer.
  80.  
  81.         I am still looking for c2p algorithms for this function !!! All used c2p algorithms
  82.         should support AGA and additional, it would be fine, if they supported
  83.         1x1,1x2,2x1 and 2x2. If you have fine c2p algorithms, mail me
  84.         (MagicSN@birdland.es.bawue.de).
  85.  
  86.         NOTE : The Array should EXACTLY be as big as specified with Left, Top, Width
  87.         and Height... it should *NOT* be bigger.
  88.  
  89.         NOTE: Currently you *HAVE TO* use xpos=0 ypos=0 width=<max x> height=<max y>
  90.         Maybe this will change in the future !!!!!!!!!!!!!! This is only because i do
  91.         not have ANY c2p that supports that feature up to now...
  92.  
  93.         NOTE: Some c2p algorithms might do NOTHING in certain colour depths, chunky modes
  94.         or for interleaved bitmaps. Be careful about this. If the c2p works,
  95.         this function returns 0, otherwise an errorcode.
  96.  
  97.         Principially it COULD support 256, 64 (EHB), 32 or 16 colors and 1x1, 1x2, 2x1,
  98.         2x2,4x2,2x4 and 4x4 (look at the includes). It is also possible to choose the
  99.         FASTEST AVAILABLE, the BEST AVAILABLE mode or the mode that was selected from
  100.         the user as standard mode for his system, using the Screenmode Requester.
  101.  
  102.         If the user did not specify a standard c2p, this function will use the fastest
  103.         available mode.
  104.  
  105.         The signal indicates (for asynchrone c2p) that the c2p has done. For synchrone
  106.         ones it is set after quitting the function.
  107.  
  108.         In mode you specify which c2p mode to use.
  109.  
  110.         For Graphics Boards, ALWAYS 1x1 is used.
  111.  
  112.         IMPLEMENTED WITH SUBLIBRARIES WITH AT LEAST VERSION 2.0 (none up to now...)
  113.  
  114.    INPUTS
  115.         RtgScreen - The RtgScreen to use.
  116.         BufAdr - The address of the buffer to use
  117.         Array - The fastram buffer
  118.         Left - The x position on the Bitmap of RtgScreen where to put the stuff
  119.         Top - The y position
  120.         Width - The Width of the stuff
  121.         Height - The Height of the stuff
  122.  
  123.    SEE ALSO
  124.         CopyRtgPixelArray()
  125.  
  126. rtgmaster.library/CloseClient                               rtgmaster.library/CloseClient
  127.  
  128.    NAME
  129.         CloseClient -- Closes the Client of a TCP/IP connection again
  130.  
  131.    SYNOPSIS
  132.         CloseClient(SBase,Socket)
  133.                      A0    A1
  134.  
  135.         CloseClient(struct Library *,struct TCP_Socket *)
  136.  
  137.    FUNCTION
  138.         Terminates a "virtual connection" of TCP/IP and gives the Socket of the Client
  139.         back to the system. (For UDP it only gives the socket back to the system,
  140.         as there are no "virtual connections" in connectionless UDP).
  141.  
  142.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  143.         yourselves and provide it as parameter. This is needed because of some internal
  144.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  145.         at the Docs for more information.
  146.  
  147.         You do NOT have to use rtgmaster.library's Graphics Board features to
  148.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  149.  
  150.    INPUTS
  151.         SBase    - Result of the call (C Syntax here...)
  152.                    SBase = OpenLibrary("bsdsocket.library",0);
  153.         Socket   - The Socket of the Client you want to close.
  154.                    You should ONLY use this function for Clients,
  155.                    NOT FOR SERVERS !!!
  156.  
  157.  SEE ALSO
  158.         OpenClient(),OpenServer(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  159.  
  160. rtgmaster.library/CloseRtgScreen                            rtgmaster.library/CloseRtgScreen
  161.  
  162.    NAME
  163.         CloseRtgScreen -- Close a screen previously opened with
  164.                           OpenRtgScreen
  165.  
  166.    SYNOPSIS
  167.         CloseRtgScreen(RtgScreen)
  168.                         A0
  169.  
  170.         CloseRtgScreen(ULONG)
  171.  
  172.    FUNCTION
  173.         Should close a RtgScreen opened by this sublibrary and free all
  174.         of its resources.
  175.  
  176.    INPUTS
  177.         RtgScreen - A handle for a valid screen previously opened by
  178.                     this sublibrary's OpenRtgScreen() function.
  179.  
  180.    SEE ALSO
  181.         OpenRtgScreen()
  182.  
  183. rtgmaster.library/CloseServer                               rtgmaster.library/CloseServer
  184.  
  185.    NAME
  186.         CloseServer -- Closes the Server of a TCP/IP connection again
  187.  
  188.    SYNOPSIS
  189.         CloseServer(SBase,Socket)
  190.                      A0    A1
  191.  
  192.         CloseServer(struct Library *,struct TCP_Socket *)
  193.  
  194.    FUNCTION
  195.         Terminates a "virtual connection" of TCP/IP and gives the Socket of the Server
  196.         back to the system. For UDP it only gives the socket back to the system, as
  197.         for UDP there is no connection to terminate.
  198.  
  199.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  200.         yourselves and provide it as parameter. This is needed because of some internal
  201.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  202.         at the Docs for more information.
  203.  
  204.         You do NOT have to use rtgmaster.library's Graphics Board features to
  205.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  206.  
  207.    INPUTS
  208.         SBase    - Result of the call (C Syntax here...)
  209.                    SBase = OpenLibrary("bsdsocket.library",0);
  210.         Socket   - The Socket of the Client you want to close.
  211.                    You should ONLY use this function for Servers,
  212.                    NOT FOR CLIENTS !!!
  213.  
  214.  SEE ALSO
  215.         OpenClient(),OpenServer(),CloseClient(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  216.  
  217. rtgmaster.library/CopyRtgBlit                            rtgmaster.library/CopyRtgBlit
  218.  
  219.    NAME
  220.         CopyRtgBlit -- Copy a rectangular array of pixels without conversion, with
  221.                        Modulo support and c2p support
  222.  
  223.    SYNOPSIS
  224.         CopyRtgBlit(RtgScreen, BufferAdr, Array, Masked. Left, Top, Width, Height, WidthSrc, HeightSrc, SrcX, SrcY)
  225.                      A0         A1         A2     A3      D0    D1   D2     D3      D4        D5         D6    D7
  226.  
  227.         CopyRtgBlit(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  228.                     ULONG,ULONG,ULONG,ULONG,ULONG,ULONG)
  229.  
  230.    FUNCTION
  231.         Nearly the same like CopyRtgPixelArray, but also has Modulo Support. Additionally,
  232.         it provides c2p for ECS/AGA, while CopyRtgPixelArray works in Planar Mode for
  233.         ECS/AGA. CopyRtgBlit does only support synchronous c2p, as signalling would
  234.         slow down the function a bit. It is faster than CallRtgC2P. In case of a
  235.         asynchrone c2p being chosen, it uses a default synchronous c2p algorithm.
  236.         In fact it is adviced to use this function, the old ones are mainly provided
  237.         for backward compatibility. Masked feature not yet implemented for AGA.
  238.  
  239.    INPUTS
  240.         RtgScreen - The RtgScreen to use
  241.         BufferAdr - The Video RAM Base Address to use
  242.         Array     - The Source Array
  243.         Masked    - If Masked == 1, only pixels != color 0 will be overwritten
  244.         Left      - The Destination X Offset
  245.         Top       - The Destination Y Offset
  246.         Width     - The Width of the Blit
  247.         Height    - The Height of the Blit
  248.         WidthSrc  - The Width of the Source
  249.         HeightSrc - The Height of the Source
  250.         SrcX      - The Source X Offset
  251.         SrcY      - The Source Y Offset
  252.  
  253.    SEE ALSO
  254.         CopyRtgPixelArray(), CallRtgC2P()
  255.  
  256. rtgmaster.library/CopyRtgPixelArray                      rtgmaster.library/CopyRtgPixelArray
  257.  
  258.    NAME
  259.         CopyRtgPixelArray -- Copy a rectangular array of pixels directly
  260.                              to the graphics card memory without any
  261.                              conversion
  262.  
  263.    SYNOPSIS
  264.         CopyRtgPixelArray(RtgScreen, BufferAdr, Array, Left, Top, Width, Height,SrcX,SrcY
  265.                            A0         A1         A2     D0    D1   D2     D3     D4   D5
  266.  
  267.         CopyRtgPixelArray(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  268.                           ULONG, ULONG,ULONG,ULONG)
  269.  
  270.    FUNCTION
  271.         Copies a rectangular array of pixels directly to the graphics card
  272.         memory with no conversion.  The array of pixels is assumed to be
  273.         in the correct native format so it can be copied at maximum speed.
  274.         The copy routine however does take segment boundaries in account (if
  275.         required).
  276.  
  277.         This routine is mainly intended for machines which have relatively
  278.         fast FastRAM compared to the speed of the graphics card RAM.  This
  279.         is usually on machines with a 32-bit accelerator card which have
  280.         a Zorro-II graphics card installed.
  281.  
  282.         Note: For compatibility with rtgAMI.library,
  283.         Array should contain at least ((((width+15)>>4)<<4)*Height Bytes.
  284.  
  285.         NOT YET IMPLEMENTED ON ECS/AGA. SrcX and SrcY not yet implemented.
  286.  
  287.    INPUTS
  288.         RtgScreen - A handle for a valid screen previously opened by
  289.                     this sublibrary's OpenRtgScreen() function.
  290.         BufferAdr - The address of the memory containing the actual
  291.                     screen graphics
  292.         Array - Pointer to an array of pixels which is Width pixels wide,
  293.                 and Height pixels high.  The size of the pixel is dependant
  294.                 on the ScreenBuffer your copying to.  Make sure the array
  295.                 is in the correct native format.
  296.         Left - X position of the top-left of the rectangular pixel array
  297.         Top - Y position of the top-left of the rectangular pixel array
  298.         Width - Width of the array in pixels
  299.         Height - Height of the array in pixels
  300.  
  301.    SEE ALSO
  302.         OpenRtgScreen(), WritePixelArray(), WritePixelRGBArray()
  303.  
  304.  
  305. rtgmaster.library/DrawRtgLine                                   rtgmaster.library/DrawRtgLine
  306.  
  307.    NAME
  308.         DrawRtgLine - draws a line on a RtgScreen
  309.  
  310.    SYNOPSIS
  311.         DrawRtgLine(RtgScreen, BufferAdr, Color, X1, Y1, X2, Y2)
  312.                      A0         A1         D0     D1  D2  D3  D4
  313.  
  314.         DrawRtgLine(struct RtgScreen *, APTR, ULONG, LONG, LONG, LONG, LONG)
  315.  
  316.    FUNCTION
  317.         Draws a line on the screen which will be clipped if necessary.
  318.         NOTE : X1<=X2 AND Y1<=Y2 !!!
  319.         IMPLEMENTED WITH SUBLIBRARIES WITH AT LEAST VERSION 1.9
  320.  
  321.    INPUTS
  322.         RtgScreen - A handle for a valid screen previously opened by
  323.                     this sublibrary's OpenRtgScreen() function.
  324.         BufferAdr - The address of the memory containing the actual
  325.                     screen graphics
  326.         Color - Color number
  327.         X1,Y1,X2,Y2 - Draws a line from (X1,Y1) to (X2,Y2)
  328.  
  329.    SEE ALSO
  330.         OpenRtgScreen(), DrawRtgLineRGB()
  331.  
  332.  
  333. rtgmaster.library/DrawRtgLineRGB                             rtgmaster.library/DrawRtgLineRGB
  334.  
  335.    NAME
  336.         DrawRtgLineRGB - draws a line on a RtgScreen
  337.  
  338.    SYNOPSIS
  339.         DrawRtgLineRGB(RtgScreen, BufferAdr, Color, X1, Y1, X2, Y2)
  340.                         A0         A1         D0     D1  D2  D3  D4
  341.  
  342.         DrawRtgLineRGB(struct RtgScreen *, APTR, ULONG, LONG, LONG, LONG,
  343.                        LONG)
  344.  
  345.    FUNCTION
  346.         Draws a line on the screen which will be clipped if necessary.
  347.         NOTE: X1<=X2 AND Y1<=Y2 !!!
  348.  
  349.         IMPLEMENTED WITH SUBLIBRARIES WITH AT LEAST VERSION 1.9
  350.  
  351.    INPUTS
  352.         RtgScreen - A handle for a valid screen previously opened by
  353.                     this sublibrary's OpenRtgScreen() function.
  354.         BufferAdr - The address of the memory containing the actual
  355.                     screen graphics
  356.         Color - A 32-bit value describing the color
  357.         X1,Y1,X2,Y2 - Draws a line from (X1,Y1) to (X2,Y2)
  358.  
  359.    SEE ALSO
  360.         OpenRtgScreen(), DrawRtgLine()
  361.  
  362.  
  363. rtgmaster.library/FillRtgRect                                   rtgmaster.library/FillRtgRect
  364.  
  365.    NAME
  366.         FillRtgRect - draws a filled rectangle to a RtgScreen
  367.  
  368.    SYNOPSIS
  369.         FillRtgRect(RtgScreen, BufferAdr, Color, Left, Top, Width, Height)
  370.                      A0         A1         D0     D1    D2   D3     D4
  371.  
  372.         FillRtgRect(struct RtgScreen *, APTR, ULONG, ULONG, ULONG,
  373.                     ULONG, ULONG)
  374.  
  375.    FUNCTION
  376.         Draws a filled rectangle at the specified position on a RtgScreen.
  377.         The BufferAdr is the starting address of the buffer the users wants
  378.         to draw the rectangle in.  The user has obtained this address using
  379.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  380.         the correct buffer for screens which are double or triple buffered.
  381.  
  382.         This function should only work for Palette mapped modes, Color is
  383.         the Color number of the palette.
  384.  
  385.         IMPLEMENTED WITH SUBLIBRARIES WITH AT LEAST VERSION 1.9
  386.  
  387.    INPUTS
  388.         RtgScreen - A handle for a valid screen previously opened by
  389.                     this sublibrary's OpenRtgScreen() function.
  390.         BufferAdr - The address of the memory containing the actual
  391.                     screen graphics
  392.         Color - Color number
  393.         Left - X position of the top-left of the rectangle
  394.         Top - Y position of the top-left of the rectangle
  395.         Width - Width of the rectangle in pixels
  396.         Height - Height of the rectangle in pixels
  397.  
  398.    SEE ALSO
  399.         OpenRtgScreen(), FillRtgRectRGB()
  400.  
  401.  
  402.  
  403. rtgmaster.library/FillRtgRectRGB                             rtgmaster.library/FillRtgRectRGB
  404.  
  405.    NAME
  406.         FillRtgRectRGB - draws a filled rectangle to a RtgScreen
  407.  
  408.    SYNOPSIS
  409.         FillRtgRectRGB(RtgScreen, BufferAdr, Color, Left, Top, Width, Height)
  410.                         A0         A1         D0     D1    D2   D3     D4
  411.  
  412.         FillRtgRectRGB(struct RtgScreen *, APTR, ULONG, ULONG, ULONG,
  413.                        ULONG, ULONG)
  414.  
  415.    FUNCTION
  416.         Draws a filled rectangle at the specified position on a RtgScreen.
  417.         The BufferAdr is the starting address of the buffer the users wants
  418.         to draw the rectangle in.  The user has obtained this address using
  419.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  420.         the correct buffer for screens which are double or triple buffered.
  421.  
  422.         This function should only work for True Color modes, Color is
  423.         a 32 bit value which specifies what Color the pixel should be.
  424.         The layout of this 32-bit value is as follows:
  425.  
  426.         %aaaaaaaa.rrrrrrrr.gggggggg.bbbbbbbb
  427.  
  428.         a = AlphaChannel (8-bits) which may or may not be ignored.  The
  429.             user will set this to zero if the user doesn't want to use
  430.             AlphaChannel.
  431.         r = Red component (8-bits) of the 24-bit RGB value
  432.         g = Green component (8-bits) of the 24-bit RGB value
  433.         b = Blue component (8-bits) of the 24-bit RGB value
  434.  
  435.         IMPLEMENTED WITH SUBLIBRARIES WITH AT LEAST VERSION 1.9
  436.  
  437.    INPUTS
  438.         RtgScreen - A handle for a valid screen previously opened by
  439.                     this sublibrary's OpenRtgScreen() function.
  440.         BufferAdr - The address of the memory containing the actual
  441.                     screen graphics
  442.         Color - A 32-bit value describing the color (see above)
  443.         Left - X position of the top-left of the rectangle
  444.         Top - Y position of the top-left of the rectangle
  445.         Width - Width of the rectangle in pixels
  446.         Height - Height of the rectangle in pixels
  447.  
  448.    SEE ALSO
  449.         OpenRtgScreen(), FillRtgRect()
  450.  
  451. rtgmaster.library/RtgScreenModeReq                          rtgmaster.library/FreeRtgScreenModeReq
  452.  
  453.    NAME
  454.         FreeRtgScreenModeReq - frees the ScreenReq structure again
  455.  
  456.    SYNOPSIS
  457.         FreeRtgScreenModeReq(myreq)
  458.                               A0
  459.  
  460.         FreeRtgScreenModeReq(struct ScreenReq *)
  461.  
  462.    FUNCTION
  463.         This function frees the memory allocated by RtgScreenModeReq again.
  464.         Should be called after you need that data not any longer. Note: This
  465.         function caused a system crash with an early Beta Version of rtgmaster.library.
  466.         This does no longer happen, as this bug got fixed. This function is
  467.         only in the master-library, not in the sublibraries.
  468.  
  469.    INPUTS
  470.         myreq - The ScreenReq Structure returned by RtgScreenModeReq
  471.  
  472.    SEE ALSO
  473.         RtgScreenModeReq()
  474.  
  475. rtgmaster.library/FreeRtgSRList                           rtgmaster.library/RtgAllocSRList
  476.  
  477.    NAME
  478.         FreeRtgSRList - Frees a list of ScreenReq's
  479.  
  480.    SYNOPSIS
  481.         FreeRtgSRList(sr)
  482.                       A0
  483.  
  484.         FreeRtgSRList(struct ScreenReqList *)
  485.  
  486.    FUNCTION
  487.         This function frees a list of ScreenReq structures allocated by
  488.         RtgAllocSRList again.
  489.  
  490.    INPUTS
  491.         sr - the List
  492.  
  493.    SEE ALSO
  494.         RtgScreenModeReq(), FreeRtgScreenModeReq(), RtgAllocSRList()
  495.  
  496. rtgmaster.library/FreeScreenModes                           rtgmaster.library/FreeScreenModes
  497.  
  498.    NAME
  499.         FreeScreenModes - frees a list of screenmodes
  500.  
  501.    SYNOPSIS
  502.         FreeScreenModes(array of screenmodes)
  503.                          A0
  504.  
  505.         FreeScreenModes(APTR)
  506.  
  507.    FUNCTION
  508.         This function should free a previously with GetScreenModes()
  509.         allocated list of ScreenMode structures, including everything else
  510.         GetScreenModes() allocated.  Be prepared to handle a NULL pointer.
  511.         THIS FUNCTION IS ONLY IN SUBLIBRARIES, NOT IN THE MASTER-LIBRARY
  512.         ITSELF. IT IS ONLY CALLED BY RTGMASTER.LIBRARY ITSELF.
  513.  
  514.    INPUTS
  515.         array - an array of ScreenMode structures or NULL
  516.  
  517.    SEE ALSO
  518.         GetScreenModes()
  519.  
  520.  
  521.  
  522. rtgmaster.library/GetBufAdr                                       rtgmaster.library/GetBufAdr
  523.  
  524.    NAME
  525.         GetBufAdr -- Get the address for one of the buffers from a
  526.                      multi-buffered RtgScreen
  527.  
  528.    SYNOPSIS
  529.         address = GetBufAdr(RtgScreen, Buffer)
  530.          D0                  A0         D0
  531.  
  532.         APTR GetBufAdr(ULONG, ULONG)
  533.  
  534.    FUNCTION
  535.         If the user is using multi-buffered screens, it might be usefull
  536.         to know where the two buffers start in memory.  After a
  537.         LockRtgScreen() the user can call this function with a RtgScreen
  538.         handle and a number to get the address of the corresponding
  539.         buffer.
  540.  
  541.         The address is only valid if the RtgScreen is currently locked
  542.         using LockRtgScreen().
  543.  
  544.    INPUTS
  545.         RtgScreen - A handle for a valid screen previously opened by
  546.                     this sublibrary's OpenRtgScreen() function.
  547.         Buffer - The buffer number the user wants the address of
  548.  
  549.    RESULTS
  550.         address - the address of the buffer, or NULL for failure
  551.  
  552.    SEE ALSO
  553.         LockRtgScreen(), OpenRtgScreen()
  554.  
  555.  
  556. rtgmaster.library/GetRtgScreenData                        rtgmaster.library/GetRtgScreenData
  557.  
  558.    NAME
  559.         GetRtgScreenData -- Fills a TagList with data about the RtgScreen 
  560.  
  561.    SYNOPSIS
  562.         GetRtgScreenData(RtgScreen, TagList)
  563.                           A0         A1
  564.  
  565.         GetRtgScreenData(ULONG, struct TagItem *)
  566.  
  567.    FUNCTION
  568.         This function should fill the TI_DATA fields of the passed in
  569.         TagList with the requested information.
  570.  
  571.         See for available tags and descriptions in the .i/.h file.
  572.  
  573.         NOTE: Starting with sublibrary V2.2, this function can also
  574.         be used to find out to what BUSSYSTEM a Graphics Board is
  575.         connected. In the original design of rtgmaster an extra function
  576.         was intended for that, but now it is the job of GetRtgScreenData.
  577.  
  578.    INPUTS
  579.         RtgScreen - A handle for a valid screen previously opened by
  580.                     this sublibrary's OpenRtgScreen() function.
  581.         TagList - TagList which should be filled in with requested info.
  582.  
  583.    SEE ALSO
  584.         OpenRtgScreen(), GetBufAdr()
  585.  
  586. rtgmaster.library/GetScreenModes                             rtgmaster.library/GetScreenModes
  587.  
  588.    NAME
  589.         GetScreenModes - builds a list of available screenmodes
  590.  
  591.    SYNOPSIS
  592.         array of ScreenMode structures = GetScreenModes()
  593.          D0
  594.  
  595.         APTR GetScreenModes()
  596.  
  597.    FUNCTION
  598.         This function should return a linked list of ScreenMode structures
  599.         describing all the available ScreenModes available to this
  600.         sublibrary.  If there aren't any, or you couldn't allocate the
  601.         memory for the list then return 0. THIS FUNCTION IS ONLY IN SUBLIBRARIES,
  602.         NOT IN THE MASTER-LIBRARY ITSELF. IT IS ONLY CALLED BY RTGMASTER.LIBRARY
  603.         ITSELF.
  604.  
  605.    RESULTS
  606.         array - an array of ScreenMode structures or NULL
  607.  
  608.    SEE ALSO
  609.         FreeScreenModes()
  610.  
  611. rtgmaster.library/GetUDPName                                     rtgmaster.library/GetUDPName
  612.  
  613.    NAME
  614.         GetUDPName - Get the sockaddr_in structure of a UDP Client/Server
  615.  
  616.    SYNOPSIS
  617.         name = GetUDPName(SocketBase, sock)
  618.                     A0          A1
  619.  
  620.         struct sockaddr_in *GetUDPName(struct Library *, struct RTG_Socket *)
  621.  
  622.    FUNCTION
  623.         If this is UDP, you will get the sockaddr_in structure of a Client/Server,
  624.         else you will get 0. For what this is intended, read RtgRecv/RtgSend/RtgInAdr.
  625.         And of course the Docs of rtgmaster.library where detailed information about
  626.         TCP, IP and UDP is found.
  627.  
  628.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  629.         yourselves and provide it as parameter. This is needed because of some internal
  630.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  631.         at the Docs for more information.
  632.  
  633.         You do NOT have to use rtgmaster.library's Graphics Board features to
  634.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  635.  
  636.         Actually this function is now inside rtgextra.library
  637.  
  638.    INPUTS
  639.         SBase    - Result of the call (C Syntax here...)
  640.                    SBase = OpenLibrary("bsdsocket.library",0);
  641.         Socket   - The Socket of the Client you want to close.
  642.                    You should ONLY use this function for Clients,
  643.                    NOT FOR SERVERS !!!
  644.  
  645.    RESULTS
  646.         name     - The sockaddr_in structure of the Client/Server
  647.  
  648.  SEE ALSO
  649.         OpenClient(),OpenServer(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),RtgInAdr()
  650.  
  651. rtgmaster.library/LoadRGBRtg                                     rtgmaster.library/LoadRGBRtg
  652.  
  653.    NAME
  654.         LoadRGBRtg - changes one or more colors of a RtgScreen
  655.  
  656.    SYNOPSIS
  657.         LoadRGBRtg(RtgScreen, Table)
  658.                     A0         A1
  659.  
  660.         LoadRGBRtg(ULONG, APTR)
  661.  
  662.    FUNCTION
  663.         Enables the user to change one or more colors of his/her screen.
  664.         This function only works for RtgScreens which have a palette, and
  665.         thus won't work for the True-color modes.
  666.  
  667.    INPUTS
  668.         RtgScreen - A handle for a valid screen previously opened by
  669.                     this sublibrary's OpenRtgScreen() function.
  670.         Table - A pointer to a series of records which describe which
  671.                 colors to modify
  672.  
  673.    NOTES
  674.         Passing a NULL Table must be ignored.  The format of the Table
  675.         passed is a series of records, each with the this format:
  676.  
  677.            WORD  Count value: Number of colors to load
  678.            WORD  Number of first color to be loaded
  679.  
  680.         After these two words, a list of 3 Longs follow as many times
  681.         as specified by the first word.  These 3 longwords represent the
  682.         left justified 32 bit RGB value.
  683.  
  684.         And then the list repeats until ended with a count value of 0.
  685.  
  686.         See for more information about the table graphics/LoadRGB32.
  687.         This function must use the same format.
  688.  
  689.    SEE ALSO
  690.         OpenRtgScreen(), graphics/LoadRGB32()
  691.  
  692. rtgmaster.library/LockRtgScreen                              rtgmaster.library/LockRtgScreen
  693.  
  694.    NAME
  695.         LockRtgScreen -- Locks a RtgScreen (prevents it from being moved
  696.                          in memory)
  697.  
  698.    SYNOPSIS
  699.         address = LockRtgScreen(RtgScreen)
  700.          D0                      A0
  701.  
  702.         APTR LockRtgScreen(ULONG)
  703.  
  704.    FUNCTION
  705.         This function should make sure that the screen is not moved from
  706.         it's current location in memory.  In other words, it will guarantee
  707.         that the address you get back from this function remains valid
  708.         until you call UnlockRtgScreen().
  709.     
  710.         The result from this function should be the address of the buffer
  711.         associated with the screen either in the graphics cards own
  712.         memory or the computers memory.
  713.  
  714.         For multi-buffered screens the return-address must point to buffer
  715.         0 for this RtgScreen.  To get the addresses of the other
  716.         buffers the user will use GetBufAdr().
  717.  
  718.         LockRtgScreen and UnlockRtgScreen functions must nest, which means
  719.         you must call an UnlockRtgScreen for every LockRtgScreen.  The
  720.         field rs_Locks in the RtgScreen structure should be used to keep
  721.         track of the number of times a screen was locked.
  722.  
  723.         Note : On some Graphics Boards this function will take some
  724.         CPU time to happen, so it is advised ONLY to call it *once* at the start
  725.         of your code (And UnlockRtgScreen *once* at the end of your code,
  726.         to be on the sure side...)
  727.  
  728.    INPUTS
  729.         RtgScreen - A handle for a valid screen previously opened by
  730.                     this sublibrary's OpenRtgScreen() function.
  731.  
  732.    RESULTS
  733.         address - The address of the (first) buffer of this screen.
  734.  
  735.    SEE ALSO
  736.         UnlockRtgScreen(), OpenRtgScreen(), GetBufAdr()
  737.  
  738. rtgmaster.library/OpenClient                                 rtgmaster.library/OpenClient
  739.  
  740.    NAME
  741.         OpenClient    -- Open a TCP/IP Client
  742.  
  743.    SYNOPSIS
  744.         Socket = OpenClient(SBase,host,port,mode,protocol)
  745.          D0                  A0    A1   D0   D1   D2
  746.  
  747.         struct RTG_Socket *OpenClient(struct Library *,char *,int,int,int)
  748.  
  749.    FUNCTION
  750.         For TCP, this function opens a "virtual connection" between two applications.
  751.         For UDP it creates a socket that can be used by the application to
  752.         transfer data connectionless to other applications.
  753.         This function is the "Client part" of the connection. The protocol
  754.         being used is TCP/IP.
  755.  
  756.         For more information, look at the docs. There is a chapter about
  757.         "TCP/IP programming for newcomers", that shows you, how to support
  758.         netework gaming for your computer game, even if you never heard of
  759.         TCP/IP before :) Up to now rtgmaster.library only supports the
  760.         "protocol stack" AmiTCP, no AS225 support up to now.  Runs for sure
  761.         with AmiTCP 4.0 demo from Aminet, i do not know about earlier versions.
  762.  
  763.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  764.         yourselves and provide it as parameter. This is needed because of some internal
  765.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  766.         at the Docs for more information.
  767.  
  768.         You do NOT have to use rtgmaster.library's Graphics Board features to
  769.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  770.  
  771.         Actually this function is now inside rtgextra.library.
  772.  
  773.    INPUTS
  774.         SBase    - Result of the call (C Syntax here...)
  775.                    SBase = OpenLibrary("bsdsocket.library",0);
  776.         host     - hostname of the "Server",  to which you want to connect your
  777.                    application (for example "194.55.101.26").
  778.         port     - The port your application uses. For example 4000.
  779.                    Be sure to use a number bigger than 3000, small numbers
  780.                    are often used for different protocols in TCP/IP. For example
  781.                    21 is telnet.
  782.         mode     - The mode of the connection. Up to now only SOCK_STREAM is
  783.                    supported ("virtual connection using a datastream").
  784.                    SOCK_DGRAM probably will give you a UDP connection, but
  785.                    i do not know enough about UDP to make this really working...
  786.                    maybe in a future version...
  787.         protocol - The protocol To be used. Set this to 0 currently.
  788.                    mode SOCK_STREAM and protocol 0 will result in a TCP connection.
  789.  
  790.  
  791.    RESULTS
  792.         Socket   - The "Socket" of the Application. See more in the docs.
  793.  
  794.    SEE ALSO
  795.         OpenServer(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  796.  
  797. rtgmaster.library/OpenRtgScreen                              rtgmaster.library/OpenRtgScreen
  798.  
  799.    NAME
  800.         OpenRtgScreen -- Open a screen
  801.  
  802.    SYNOPSIS
  803.         RtgScreen = OpenRtgScreen(ScreenReq, RtgTags)
  804.          D0                        A0         A1
  805.  
  806.         struct RtgScreen *OpenRtgScreen(struct ScreenReq *, struct TagItem *)
  807.  
  808.  
  809.    FUNCTION
  810.         This function should open the screen which falls within the 
  811.         parameters specified by the user.  If this function can't
  812.         deliver such a screen than it will fail and will return zero.
  813.  
  814.         Note that the Width and Height values you get from
  815.         rtgmaster.library have been checked to see if they are valid
  816.         for this screenmode.  Also note that RtgTags may be zero.
  817.  
  818.    INPUTS
  819.         RtgTags - Pointer to (an array of) TagItem structures,
  820.                   terminated by the value TAG_END (0).
  821.         ScreenReq - ScreenReq structure as returned by RtgScreenModeReq()
  822.                     of rtgmaster.library, see rtg.i for more information
  823.  
  824.         Each TagItem is an optional tagged data structure which
  825.         identifies a parameter to OpenRtgScreen().  The applicable tag ID
  826.         values for TagItem.ti_Tag and their corresponding data can be
  827.         found in the .i/.h file where the Tags for OpenRtgScreen() are
  828.         specified.
  829.  
  830.    RESULTS
  831.         RtgScreen - A handle for the screen you opened.  The user may
  832.                     later use this handle to get information about
  833.                     this screen or perform actions like setting the 
  834.                     palette or double/triple buffering.  You should
  835.                     returns NULL if the screen couldn't be opened.
  836.  
  837.    SEE ALSO
  838.         CloseRtgScreen()
  839.  
  840. rtgmaster.library/OpenServer                               rtgmaster.library/OpenServer
  841.  
  842.    NAME
  843.         OpenServer - Opens a TCP/IP Server
  844.  
  845.    SYNOPSIS
  846.         Socket=OpenServer(SBase,port,mode,protocol)
  847.          D0                A0    D0   D1   D2
  848.  
  849.         struct TCP_Connect *OpenServer(struct Library *,int,int,int)
  850.  
  851.    FUNCTION
  852.         For TCP this function opens a "virtual connection" between two applications.
  853.         For UDP it creates a server that UDP clients can access.
  854.  
  855.         This function is the "Server part" of the connection. The protocol
  856.         being used is TCP/IP. Up to now, as to the "transport protocol", only
  857.         TCP is supported, no UDP (maybe in a future version ???)
  858.         For more information, look at the docs. There is a chapter about
  859.         "TCP/IP programming for newcomers", that shows you, how to support
  860.         netework gaming for your computer game, even if you never heard of
  861.         TCP/IP before :) Up to now rtgmaster.library only supports the
  862.         "protocol stack" AmiTCP, no AS225 support up to now.  Runs for sure
  863.         with AmiTCP 4.0 demo from Aminet, i do not know about earlier versions.
  864.  
  865.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  866.         yourselves and provide it as parameter. This is needed because of some internal
  867.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  868.         at the Docs for more information.
  869.  
  870.         You do NOT have to use rtgmaster.library's Graphics Board features to
  871.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  872.  
  873.         Actually this function is now inside rtgextra.library.
  874.  
  875.    INPUTS
  876.         SBase    - Result of the call (C Syntax here...)
  877.                    SBase = OpenLibrary("bsdsocket.library",0);
  878.         port     - The port your application uses. For example 4000.
  879.                    Be sure to use a number bigger than 3000, small numbers
  880.                    are often used for different protocols in TCP/IP. For example
  881.                    21 is telnet.
  882.         mode     - The mode of the connection. Up to now only SOCK_STREAM is
  883.                    supported ("virtual connection using a datastream").
  884.                    SOCK_DGRAM probably will give you a UDP connection, but
  885.                    i do not know enough about UDP to make this really working...
  886.                    maybe in a future version...
  887.         protocol - The protocol To be used. Set this to 0 currently.
  888.                    mode SOCK_STREAM and protocol 0 will result in a TCP connection.
  889.  
  890.    RESULTS
  891.         Socket   - The "Socket" of the Application. See more in the docs.
  892.  
  893.  SEE ALSO
  894.         OpenClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  895.  
  896. rtgmaster.library/RtgAccept                                rtgmaster.library/RtgAccept
  897.  
  898.    NAME
  899.         RtgAccept - Let the server accept a connection deminded by a Client
  900.  
  901.    SYNOPSIS
  902.         Socket=RtgAccept(SBase,Socket)
  903.          D0               A0    A1
  904.  
  905.         struct RTG_Socket *RtgAccept(struct Library *,struct RTG_Socket *)
  906.  
  907.    FUNCTION
  908.         if you do not use the RunServer function (you do not use it, if you only
  909.         do a point-to-point connection), you have to do this call on Server side
  910.         to wait for the Client to connect. If you use RunSercer, DO NOT USE IT. It
  911.         is only for connecting exactly TWO systems (one being  the server, one the
  912.         client), not for connecting ONE server with SEVERAL clients...
  913.  
  914.         Also do not use it for UDP connection. RtgAccept is only needed for TCP.
  915.         It does not work with UDP.
  916.  
  917.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  918.         yourselves and provide it as parameter. This is needed because of some internal
  919.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  920.         at the Docs for more information.
  921.  
  922.         You do NOT have to use rtgmaster.library's Graphics Board features to
  923.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  924.  
  925.         Actually this function is now inside rtgextra.library.
  926.  
  927.  
  928.    INPUTS
  929.         SBase    - Result of the call (C Syntax here...)
  930.                    SBase = OpenLibrary("bsdsocket.library",0);
  931.         Socket   - the Socket of the Server
  932.  
  933.     RESULTS
  934.         Socket   - The "Socket" of the Client, that connected. See more in the docs.
  935.  
  936.     SEE ALSO
  937.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgIoctl(),GetUDPName(),RtgInAdr()
  938.  
  939. rtgmaster.library/RtgAllocSRList                           rtgmaster.library/RtgAllocSRList
  940.  
  941.    NAME
  942.         RtgAllocSRList - Allocates a list of certain ScreenReq Structures
  943.  
  944.    SYNOPSIS
  945.         RtgAllocSRList(tags)
  946.                         A0
  947.  
  948.         struct ScreenReqList *RtgAllocSMList(struct TagItem *)
  949.  
  950.    FUNCTION
  951.         This function provides a list of ScreenReq Structures for all
  952.         Screenmodes that fit for the provided tags. It can be used
  953.         instead of the RtgMaster ScreenMode-Requester.
  954.         The Memory is freed again with FreeRtgScreenReqList().
  955.  
  956.    INPUTS
  957.         tags - tags describing the modes
  958.  
  959.    SEE ALSO
  960.         RtgScreenModeReq(), FreeRtgScreenModeReq(), FreeRtgSRList()
  961.  
  962. rtgmaster.library/RtgBestSR                                rtgmaster.library/RtgBestSR
  963.  
  964.    NAME
  965.         RtgBestSR - calculates the best to be used ScreenReq Structure
  966.  
  967.    SYNOPSIS
  968.         RtgBestSR(tags)
  969.                   A0
  970.  
  971.         struct ScreenReq *RtgBestSR(struct TagItem *)
  972.  
  973.    FUNCTION
  974.         This function looks for the best to be used ScreenMode for the provided tags
  975.         and returns a ScreenReq Structure for it.
  976.  
  977.    INPUTS
  978.         tags - The Tags for the Screenmode
  979.  
  980.    SEE ALSO
  981.         RtgScreenModeReq(), FreeRtgScreenModeReq(), FreeRtgSRList(), AllocRtgSRList()
  982.  
  983. rtgmaster.library/RtgBlit                                  rtgmaster.library/RtgBlit
  984.  
  985.    NAME
  986.         RtgBlit - Performs a Blit without waiting
  987.  
  988.    SYNOPSIS
  989.         RtgBlit(RtgScreen,SrcBuf,DstBuf,SrcX,SrcY,DstX,DstY,Width,Height,Minterm)
  990.                  A0        a1     a2     d0   d1   d2   d3   d4    d5     d6
  991.  
  992.         void RtgBlit(struct RtgScreen *, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG,UBYTE)
  993.  
  994.    FUNCTION
  995.         This function blits the rectangle at (SrxX,SrcY) in the Buffer with the
  996.         NUMBER SrcBuf (0-2) to the position (DstX,DstY) in the Buffer with the
  997.         NUMBER DstBuf (0-2). The Blit has Width Width and Height Height.
  998.  
  999.         For most GFX Boards this function is the fastest way to move
  1000.         graphics data.
  1001.  
  1002.         Note : On some boards (for example EGS Boards) this function might
  1003.         wait on the Blitter to be finished as this can't be done in an
  1004.         other way with these boards. For these boards WaitRtgBlit simply
  1005.         does nothing.
  1006.  
  1007.         Note : The source and the destination rectangle should NOT OVERLAP !!!
  1008.  
  1009.         Valid minterms : $30,$50,$60,$80, $C0. NO OTHER MINTERMS ARE VALID.
  1010.         OTHER MINTERMS MIGHT WORK WITH SOME SUBLIBRARIES, BUT PROBABLY NOT WITH
  1011.         ALL SUBLIBRARIES.
  1012.  
  1013.         Note: This function MIGHT or MIGHT NOT work with some of the Minterms
  1014.         on rtgEGS.library... at least for $C0 it works for all... for the rest...
  1015.         i do not see myself as Betatester of half-finished WB-Emulations...
  1016.  
  1017.         THIS FUNCTION IS IMPLEMENTED IN SUBLIBRARIES STARTING WITH VERSION 1.8
  1018.  
  1019.    INPUTS
  1020.         RtgScreen - The RtgScreen where the Blit should happen
  1021.         SrcBuf - The Buffer NUMBER (not address !!!) of the Source Buffer
  1022.         DstBuf - The Buffer NUMBER (not address !!!) of the Destination Buffer
  1023.         SrcX - The X coordinate of the source Rectangle
  1024.         SrcY - The Y coordinate of the source Rectangle
  1025.         DstX - The X coordinate of the Destination Rectangle
  1026.         DstY - The Y coordinate of the Destination Rectangle
  1027.         Width - The Width of the Blit
  1028.         Height - The Height of the Blit
  1029.         minterm - the minterm of the Blit, defined as usual
  1030.  
  1031.    SEE ALSO
  1032.         OpenRtgScreen(), WaitRtgBlit(), SwitchScreens()
  1033.  
  1034. rtgmaster.library/RtgBltClear                              rtgmaster.library/BltClear
  1035.  
  1036.    SYNOPSIS
  1037.         RtgBltClear(RtgScreen,BufNum,xpos,ypos,width,height)
  1038.                      a0        a1     d0   d1   d2    d3
  1039.  
  1040.         RtgBltClear(struct RtgScreen *,ULONG,ULONG,ULONG,ULONG,ULONG)
  1041.  
  1042.    FUNCTION
  1043.         This function clears a rectangular area using the GFX Board
  1044.         blitter. For people who wonder, why i did not implement that
  1045.         the "usual" way, like done in graphics.library : The graphics.library
  1046.         function would not be possible under EGS, therefor i did it
  1047.         this way. The function usually does not wait for the Blitter,
  1048.         use WaitRtgBlit for this (unless under EGS... like explained
  1049.         in RtgBlit and WaitRtgBlit...)
  1050.  
  1051.         THIS FUNCTION IS IMPLEMENTED WITH SUBLIBRARIES STARTING WITH VERSION 1.8
  1052.  
  1053.    INPUTS
  1054.         RtgScreen - The RtgScreen
  1055.         BufNum - The NUMBER of the concerned Buffer, between 0 and 2 (NOT the buffer address !!!)
  1056.         xpos - the start x position of the rectangle to be cleared
  1057.         ypos - the start y position of the rectangle to be cleared
  1058.         width - the width of the rectangle
  1059.         height - the height of the rectangle
  1060.  
  1061.    SEE ALSO
  1062.         RtgBlit(),WaitRtgBlit()
  1063.  
  1064. rtgmaster.library/RtgCheckVSync                             rtgmaster.library/RtgCheckVSync
  1065.  
  1066.    NAME
  1067.         RtgCheckVSync - Check, if the ray is currently inside Vertical Blank Gap
  1068.  
  1069.    SYNOPSIS
  1070.         RtgCheckVSync(RtgScreen)
  1071.                        A0
  1072.  
  1073.         int RtgCheckVSync(struct RtgScreen *)
  1074.  
  1075.    FUNCTION
  1076.         This function returns 0, if the ray is OUTSIDE the Vertical Blank Gap, 1, if
  1077.         it is INSIDE, and 2, if this is not supported by the GFX Board (in which
  1078.         case a RtgWaitTOF() will be done by this function).
  1079.  
  1080.    INPUTS
  1081.         RtgScreen - The RtgScreen of the GFX Board to be used
  1082.  
  1083.    SEE ALSO
  1084.         RtgWaitTOF()
  1085.  
  1086. rtgmaster.library/RtgClearPointer                           rtgmaster.library/RtgClearPointer
  1087.  
  1088.    NAME
  1089.         RtgClearPointer - resets the pointer to its default image
  1090.  
  1091.    SYNOPSIS
  1092.         RtgClearPointer(RtgScreen)
  1093.                          A0
  1094.  
  1095.         void RtgClearPointer(struct RtgScreen *)
  1096.  
  1097.    FUNCTION
  1098.         This restores the default image of the mousepointer. This is
  1099.         very useful, if you changed it with RtgSetPointer, but sometimes
  1100.         want the default pointer image, too. The pointer is only changed
  1101.         on THIS RtgScreen.
  1102.  
  1103.    INPUTS
  1104.         RtgScreen - The RtgScreen, which pointer should be resetted...
  1105.  
  1106.    NOTES
  1107.        Not implemented yet on rtgPICA.library and rtgEGS.library
  1108.  
  1109.    SEE ALSO
  1110.        RtgSetPointer()
  1111.  
  1112. rtgmaster.library/RtgCloseFont                              rtgmaster.library/RtgCloseFont
  1113.  
  1114.    NAME
  1115.         RtgCloseFont - closes an AmigaFont
  1116.  
  1117.    SYNOPSIS
  1118.         RtgCloseFont(RtgScreen,font)
  1119.                       A0        A1
  1120.  
  1121.         void RtgCloseFont(struct RtgScreen *,void *)
  1122.  
  1123.    FUNCTION
  1124.         This function closes an AmigaFont on
  1125.         a RtgScreen, much the same way, like OpenDiskFont does for
  1126.         Intuition Screens. The font parameter of the call
  1127.         is not for all WB Emulations a TextFont pointer. Don't use
  1128.         CloseFont with rtgmaster.library, use
  1129.         RtgCloseFont, for the best possible compatibility with
  1130.         all Sublibraries !!!
  1131.  
  1132.    INPUTS
  1133.         RtgScreen - an RtgScreen
  1134.         font      - a Font pointer. the structure of it is PRIVATE
  1135.                     to rtgmaster.library (and not the same for all
  1136.                     sublibraries...)
  1137.  
  1138.    NOTES
  1139.         Not yet implemented for rtgPICA.library
  1140.  
  1141.    SEE ALSO
  1142.         RtgOpenFont(),RtgSetFont(),RtgSetTextMode(),RtgText(),RtgSetTextModeRGB
  1143.  
  1144.  
  1145. rtgmaster.library/RtgInAdr                                 rtgmaster.library/RtgInAdr
  1146.  
  1147.    NAME
  1148.         RtgInAdr - Find out the IP Address of a Receiver/Sender
  1149.  
  1150.    SYNOPSIS
  1151.         ip = RtgInAdr(SBase,si)
  1152.         D0             A0   A1
  1153.  
  1154.         char *RtgInAdr(struct Library *,struct sockaddr_in *)
  1155.  
  1156.    FUNCTION
  1157.         This function finds out the IP Address of a Receiver/Sender.
  1158.         You get back the sockaddr_in structure of a receiver/sender by
  1159.         RtgRecv/RtgSend or by using GetUDPName. This function ONLY
  1160.         works for UDP, not for TCP !!! It is used to differentiate
  1161.         Clients running on different machines from each other, if
  1162.         one does a Multiple Client "connection" (should not be called
  1163.         like that, as UDP is connectionless, but do you know a better
  1164.         term ?), without using RunServer...
  1165.  
  1166.         Of course this function can't differentiate multiple Clients
  1167.         running on the same machine...
  1168.  
  1169.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1170.         yourselves and provide it as parameter. This is needed because of some internal
  1171.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1172.         at the Docs for more information.
  1173.  
  1174.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1175.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1176.  
  1177.         Actually this function is now inside rtgextra.library.
  1178.  
  1179.    INPUTS
  1180.           SBase    - Result of the call (C Syntax here...)
  1181.                      SBase = OpenLibrary("bsdsocket.library",0);
  1182.           si       - Special structure returned by above mentioned calls
  1183.  
  1184.    RESULTS
  1185.           ip       - IP Address as string (for example "194.55.101.26")
  1186.  
  1187.    SEE ALSO
  1188.         OpenClient(),OpenServer(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgAccept(),GetUDPName()
  1189.  
  1190. rtgmaster.library/RtgInitBob                               rtgmaster.library/RtgInitBob
  1191.  
  1192.    NAME
  1193.         RtgInitBob - Initializes a RtgBob
  1194.  
  1195.    SYNOPSIS
  1196.         RtgInitBob(RtgScreen, RtgBob,BackAdr,BufferAdr,xpos,ypos,display)
  1197.                     A0         A1      A2     A3       D0    D1   D2
  1198.  
  1199.         RtgInitBob(struct RtgBob *)
  1200.  
  1201.    FUNCTION
  1202.         Initializes a RtgBob for display. This has to be done before using a
  1203.         RtgBob. If the Bob was already initted, the Bob is simply moved
  1204.         to the position given (but you can init and display it in the
  1205.         same function call, also). BackAdr is the BackBuffer to be used
  1206.         with the Bob, this BackBuffer CANNOT be used for Doublebuffering
  1207.         or other purposes (but you can use a Fastram-Buffer as Backbuffer,
  1208.         also). You only have to supply the BackBuffer the first time you
  1209.         use the Bob.
  1210.  
  1211.         Rtgmaster Bobs are limited to 32x32 resolutions.
  1212.  
  1213.         Not yet implemented.
  1214.  
  1215.    INPUTS
  1216.         RtgBob    - The RtgBob structure
  1217.         BackAdr   - The VideoRAM or FastRAM Buffer for Bob Refresh
  1218.         BufferAdr - The Video RAM Buffer, where the Bob should be displayed
  1219.         xpos      - The xposition the Bob should be placed
  1220.         ypos      - The yposition the Bob should be placed
  1221.         display   - If this is 1, the Bob will be switched on, if 0, it will
  1222.                     be disabled.
  1223.  
  1224.    SEE ALSO
  1225.  
  1226. rtgmaster.library/RtgIoctl                                 rtgmaster.library/RtgIoctl
  1227.  
  1228.    NAME
  1229.         RtgIoctl - Set a Socket to "Blocking" or to "Non-Blocking" mode
  1230.  
  1231.    SYNOPSIS
  1232.         result = RtgIoctl(SBase,Socket,arg)
  1233.          D0                A0    A1     A2
  1234.  
  1235.         int RtgIoctl(struct Library *,struct RTG_Socket *,long *)
  1236.  
  1237.    FUNCTION
  1238.         This function determins, if RtgRecv and RtgSend will WAIT will the data
  1239.         was transmitted, or if they fail, if the data currently could not be
  1240.         transmitted. If arg POINTS to the VALUE 1, we have "non-blocking" (it does
  1241.         not wait), if it POINTS to 0, we have "blocking" (it waits). Default (if
  1242.         you do not call RtgIoctl at all) is "blocking".
  1243.  
  1244.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1245.         yourselves and provide it as parameter. This is needed because of some internal
  1246.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1247.         at the Docs for more information.
  1248.  
  1249.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1250.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1251.  
  1252.         RtgIoctl is a VERY CPU TIME INTENSIVE FUNCTION !!!
  1253.         Only call it during the INITIALIZATION of the network !!!
  1254.  
  1255.         My suggestion : Run the server in "blocking" mode, the Clients in
  1256.         "nonblocking" mode... seems to be the fastest...
  1257.  
  1258.         Actually this function is now inside rtgextra.library.
  1259.  
  1260.    INPUTS
  1261.         SBase    - Result of the call (C Syntax here...)
  1262.                    SBase = OpenLibrary("bsdsocket.library",0);
  1263.         Socket   - The Socket of the application, which socket is to be modified
  1264.         arg      - "Non-Blocking" or "Blocking" (a pointer)
  1265.  
  1266.    RESULTS
  1267.         result   - 0 on success, -1 on fail (should not fail,normally...)
  1268.  
  1269.    SEE ALSO
  1270.         OpenClient(),OpenServer(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgAccept(),GetUDPName(),RtgInAdr()
  1271.  
  1272. rtgmaster.library/RtgOpenFont                              rtgmaster.library/RtgOpenFont
  1273.  
  1274.    NAME
  1275.         RtgOpenFont - opens an AmigaFont
  1276.  
  1277.    SYNOPSIS
  1278.         font = RtgOpenFont(RtgScreen,ta)
  1279.          D0                 A0       A1
  1280.  
  1281.         void * RtgOpenFont(struct RtgScreen *,struct TextAttr *)
  1282.  
  1283.    FUNCTION
  1284.         This function loads an AmigaFont to memory, for the usage on
  1285.         a RtgScreen, much the same way, like OpenDiskFont does for
  1286.         Intuition Screens. ta is a normal TextAttr pointer, like
  1287.         for OpenDiskFont for diskfont.library, but the RESULT
  1288.         is not for all WB Emulations a TextFont pointer. Don't use
  1289.         OpenDiskFont or OpenFont with rtgmaster.library, use
  1290.         RtgOpenFont, for the best possible compatibility with
  1291.         all Sublibraries !!!
  1292.  
  1293.    INPUTS
  1294.         RtgScreen - an RtgScreen
  1295.         ta        - a TextAttr structure, like defined in graphics/text.i (or .h)
  1296.  
  1297.    RESULTS
  1298.         font      - A pointer to a font pointer. It's internal structure is
  1299.                     PRIVATE to rtgmaster.library, and NOT THE SAME for all
  1300.                     sublibraries
  1301.  
  1302.    NOTES
  1303.         Not yet implemented for rtgPICA.library
  1304.  
  1305.    SEE ALSO
  1306.         RtgCloseFont(),RtgSetFont(),RtgSetTextMode(),RtgText(),RtgSetTextModeRGB
  1307.  
  1308. rtgmaster.library/RtgRecv                                  rtgmaster.library/RtgRecv
  1309.  
  1310.    NAME
  1311.         RtgRecv - The Socket of this application receives data from a connected socket
  1312.  
  1313.    SYNOPSIS
  1314.         length = RtgRecv(SBase,Socket,message,sender,len)
  1315.          D0               A0    A1     A2      A3     D0
  1316.  
  1317.         int RtgRecv(struct Library *,struct RTG_Socket *,struct char *,struct sockaddr_in *,int)
  1318.  
  1319.    FUNCTION
  1320.         This function is no longer compatible to rtgmaster.library V6 and below !!!
  1321.  
  1322.         This function gets data to the application that is sent to its socket by a socket
  1323.         that is connected to the socket of the Application (it is not that difficult to
  1324.         understand like it sounds... read the docs :) )
  1325.  
  1326.         If the "virtual connection" (or the "connectionless connection" or what this is called
  1327.         for UDP... :) ) is "blocking", it WAITS, if there is no message available
  1328.         on the socket, till one is available. If it is "non-blocking", it returns -1, if no
  1329.         message is available (see RtgIoctl for more details about "blocking" and "Non-Blocking".
  1330.         The default is "Blocking", BTW...)
  1331.  
  1332.         Sender is a special structure that you can use to find out from what IP Address
  1333.         the message was sent. You can convert it to an IP Address using RtgInAdr. This
  1334.         only works with UDP (with TCP, you differentiate Clients from each other with the
  1335.         socket number...). Appearently, you CAN'T differentiate Clients that run on the
  1336.         same machine !!! Sender is NOT allocated by the function, you have to provide
  1337.         the structure...
  1338.  
  1339.         For TCP you simple provide a 0 for Sender. It will be ignored.
  1340.  
  1341.         You can use this feature to do multiple connection without using RunServer (that
  1342.         does not support UDP up to now anyways...).
  1343.  
  1344.         NOTE: For *TCP* you provide the Socket of the Application which you want to
  1345.         contact. For *UDP* you provide your OWN'S Socket. Important difference !!!
  1346.  
  1347.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1348.         yourselves and provide it as parameter. This is needed because of some internal
  1349.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1350.         at the Docs for more information.
  1351.  
  1352.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1353.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1354.  
  1355.         NOTE: It is NOT possible to give Socket->s (the Socket Number) of a Client
  1356.         to the Server using RtgRecv or RunServer !!! You will have to examine
  1357.         inbuffer->num[x] to find out which Socket was the Sender !!! Also len
  1358.         should NEVER be bigger than the actual message, or you might get a lot
  1359.         of strange results !!!
  1360.  
  1361.         Actually this function is now inside rtgextra.library.
  1362.  
  1363.    INPUTS
  1364.         SBase    - Result of the call (C Syntax here...)
  1365.                    SBase = OpenLibrary("bsdsocket.library",0);
  1366.         Socket   - The Socket of THIS application
  1367.         message  - The buffer, to which supplied messages will be put
  1368.         Sender   - The Function will fill in data about the Sender to this structure.
  1369.         len      - The length of the message to wait for
  1370.  
  1371.    RESULTS
  1372.         length   - The length of the message received. If it is smaller
  1373.                    than the message, you waited for, do a RtgRecv once more...
  1374.                    NOTE: If a message was received that is too long to fit to
  1375.                    the buffer, some Bytes might be discarded. So you should
  1376.                    not send more Bytes than you want to receive... use a standard
  1377.                    Package Size at best...
  1378.     SEE ALSO
  1379.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  1380.  
  1381. rtgmaster.library/RtgScreenAtFront                         rtgmaster.library/RtgScreenAtFront
  1382.  
  1383.    NAME
  1384.         RtgScreenAtFront - determines if a RtgScreen is at front
  1385.  
  1386.    SYNOPSIS
  1387.         boolean = RtgScreenAtFront(RtgScreen)
  1388.                                     A0
  1389.  
  1390.         RtgScreenAtFront(struct RtgScreen *)
  1391.  
  1392.    FUNCTION
  1393.         This function should determine if this RtgScreen is currently at
  1394.         front.  It should return TRUE (0xfffffff) if the screen is in front
  1395.         of all other screens, and FALSE (0) if the screen is behind (partially
  1396.         or completely) an other screen.
  1397.  
  1398.         Note that this function will not be heavily reliable, since the user
  1399.         might switch screens at any time.
  1400.  
  1401.    INPUTS
  1402.         RtgScreen - A handle for a valid screen previously opened by
  1403.                     this sublibrary's OpenRtgScreen() function.
  1404.  
  1405.    RESULTS
  1406.         boolean - TRUE if screen is at front, FALSE otherwise.
  1407.  
  1408.    SEE ALSO
  1409.         OpenRtgScreen()
  1410.  
  1411. rtgmaster.library/RtgScreenModeReq                        rtgmaster.library/RtgScreenModeReq
  1412.  
  1413.    NAME
  1414.         RtgScreenModeReq -- Opens a ScreenMode requester
  1415.  
  1416.    SYNOPSIS
  1417.         ScreenReq = RtgScreenModeReq(ScreenModeTags)
  1418.          D0                           A0
  1419.  
  1420.         struct ScreenReq *RtgScreenModeReq(struct TagItem *)
  1421.  
  1422.    FUNCTION
  1423.         Opens a ScreenMode requester which displays all available
  1424.         ScreenModes to the user, depending on the Tags which are passed
  1425.         to this function.  The functions returns a pointer to a
  1426.         ScreenReq structure or NULL for failure or if the user
  1427.         cancelled the requester.
  1428.  
  1429.         The ScreenReq holds various information which the user selected,
  1430.         like width, height, screenmode and depth.
  1431.  
  1432.         THIS FUNCTION IS ONLY IN THE MASTER-LIBRARY. It handles the Screenmodes
  1433.         for ALL sublibraries.
  1434.  
  1435.         Note: The Screenmode-Requester provided with an early Beta of the
  1436.         rtgmaster.library was VERY buggy. It got completely replaced by
  1437.         a new one for this version of the library.
  1438.  
  1439.    INPUTS
  1440.         ScreenModeTags - Pointer to (an array of) TagItem structures,
  1441.                          terminated by the value TAG_END (0).
  1442.  
  1443.         The description for the various tags can be found in the .i/.h
  1444.         file (smr_Tags). NOTE: The Tags changed a lot since the early
  1445.         Beta release of the library.
  1446.  
  1447.    RESULTS
  1448.         ScreenReq - A pointer to a ScreenReq structure or NULL for
  1449.                     failure
  1450.  
  1451.    SEE ALSO
  1452.         OpenRtgScreen(),FreeRtgScreenModeReq()
  1453.  
  1454. rtgmaster.library/RtgSend                                  rtgmaster.library/RtgSend
  1455.  
  1456.    NAME
  1457.         RtgSend - The Socket of this application sends data to a connected socket
  1458.  
  1459.    SYNOPSIS
  1460.         length = RtgSend(SBase,Socket,message,Receiver,len)
  1461.          D0               A0    A1     A2      A3       D0
  1462.  
  1463.         int RtgSend(struct Library *,struct RTG_Socket *,struct char *,struct sockaddr_in *,int)
  1464.  
  1465.    FUNCTION
  1466.         This function is no longer compatible to rtgmaster.library V6 and below !!!
  1467.  
  1468.         This function puts data from the application to the socket of an application
  1469.         that is connected to the socket of the Application (it is not that difficult to
  1470.         understand like it sounds... read the docs :) )
  1471.  
  1472.         If the "virtual connection" (well, this term does not fit for UDP, as it is
  1473.         connectionless, but i do not know how to call it else... :) ) is "blocking", it WAITS, if there is no message available
  1474.         on the socket, till one is available. If it is "non-blocking", it returns -1, if no
  1475.         message is available (see RtgIoctl for more details about "blocking" and "Non-Blocking".
  1476.         The default is "Blocking", BTW...)
  1477.  
  1478.         Receiver is a special structure that you can use to tell the receiver your IP Address.
  1479.         You get your IP Address with GetUDPName (works only for UDP... for TCP this returns
  1480.         0...). For TCP you provide simply 0 for Receiver, it will be ignored.
  1481.         You can convert it to an IP Address using RtgInAdr. This
  1482.         only works with UDP (with TCP, you differentiate Clients from each other with the
  1483.         socket number...). Appearently, you CAN'T differentiate Clients that run on the
  1484.         same machine !!!
  1485.  
  1486.         You can use this feature to do multiple connection without using RunServer (that
  1487.         does not support UDP up to now anyways...).
  1488.  
  1489.         NOTE: For *TCP* you provide the Socket of the Application which you want to
  1490.         contact. For *UDP* you provide your OWN'S Socket. Important difference !!!
  1491.  
  1492.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1493.         yourselves and provide it as parameter. This is needed because of some internal
  1494.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1495.         at the Docs for more information.
  1496.  
  1497.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1498.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1499.  
  1500.         NOTE: It is NOT possible to give Socket->s (the Socket Number) of a Client
  1501.         to the Server using RtgRecv or RunServer !!! You will have to examine
  1502.         inbuffer->num[x] to find out which Socket was the Sender !!! Also len
  1503.         should NEVER be bigger than the actual message, or you might get a lot
  1504.         of strange results !!!
  1505.  
  1506.         Actually this function is now inside rtgextra.library.
  1507.  
  1508.    INPUTS
  1509.         SBase    - Result of the call (C Syntax here...)
  1510.                    SBase = OpenLibrary("bsdsocket.library",0);
  1511.         Socket   - The Socket of THIS application
  1512.         message  - The message to be sent (an ASCII string, actually...)
  1513.         Receiver - The data you got from GetUDPName, tells the receiver your IP address...
  1514.         len      - The length of the string to send ...
  1515.  
  1516.    RESULTS
  1517.         length   - The length of the message sent. If it is smaller
  1518.                    than the message, you sent, do a RtgSend once more...
  1519.                    Probably the socket you sent to was quite busy with other
  1520.                    messages currently...
  1521.  
  1522.                    NOTE: If the send fails at all, maybe your message was too
  1523.                    long for TCP/IP ? (As to the allowed package sizes, 1 KB works
  1524.                    for sure... i do not know exactly how much more is possible...)
  1525.  
  1526.     SEE ALSO
  1527.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  1528.  
  1529. rtgmaster.library/RtgSetFont                              rtgmaster.library/RtgSetFont
  1530.  
  1531.    NAME
  1532.         RtgSetFont - sets an AmigaFont to an RtgScreen
  1533.  
  1534.    SYNOPSIS
  1535.         RtgSetFont(RtgScreen,font)
  1536.                     A0        A1
  1537.  
  1538.         void RtgSetFont(struct RtgScreen *,void *)
  1539.  
  1540.    FUNCTION
  1541.         This function sets an AmigaFont (that was opened using
  1542.         RtgOpenFont tomemory before) to an RtgScreen. Following
  1543.         RtgText() calls will use this font, now.
  1544.  
  1545.    INPUTS
  1546.         RtgScreen - an RtgScreen
  1547.         font      - a Font pointer. the structure of it is PRIVATE
  1548.                     to rtgmaster.library (and not the same for all
  1549.                     sublibraries...)
  1550.  
  1551.    NOTES
  1552.         Not yet implemented for rtgPICA.library
  1553.  
  1554.    SEE ALSO
  1555.         RtgOpenFont(),RtgCloseFont(),RtgSetTextMode(),RtgText(),RtgSetTextModeRGB
  1556.  
  1557. rtgmaster.library/RtgSetPointer                           rtgmaster.library/RtgSetPointer
  1558.  
  1559.    NAME
  1560.         RtgSetPointer - sets the pointer to a new image
  1561.  
  1562.    SYNOPSIS
  1563.         RtgSetPointer(RtgScreen,pointer,Width,Height,OffsetX,OffsetY)
  1564.                          A0      A1      D0    D1     D2      D3
  1565.  
  1566.         void RtgSetPointer(struct RtgScreen *,UWORD *,WORD,WORD,WORD,WORD)
  1567.  
  1568.    FUNCTION
  1569.         This function sets the mousepointer to a new image for this RtgScreen.
  1570.         The structure pointer is exactly the same like taken from intuition.library
  1571.         command SetPointer (the data definition of a Simple Sprite). Different
  1572.         from this only is that the image HAS TO BE 16x18 pixels size. If you
  1573.         want a smaller pointer, modify the Width/Height values and set that
  1574.         pixels that you do not need to 0. But the SIZE of the structure has
  1575.         to be 16x18 pixels (72 Bytes). An example :
  1576.  
  1577.         UWORD Hoehe[2]
  1578.         {
  1579.             0x...,0x... // first line
  1580.             ...
  1581.             0x...,0x... // 18th line
  1582.         }
  1583.  
  1584.         Look at graphics.library SimpleSprite documentation for more information
  1585.         (01,10,11 are the three pointer colors,00 is transperent, each of
  1586.         the two words of a line determines ONE BIT of the 2-Bit mousepointer).
  1587.  
  1588.    INPUTS
  1589.         RtgScreen - The RtgScreen, which pointer should be resetted...
  1590.         pointer   - pointer image, see above
  1591.         Width     - Actual Width of the pointer
  1592.         Height    - Actual Height of the pointer
  1593.         OffsetX   - Display Offset for the pointer, from the mouseposition
  1594.         OffsetY   - Display Offset for the pointer, from the mouseposition
  1595.  
  1596.    NOTES
  1597.        Not implemented yet on rtgPICA.library and rtgEGS.library
  1598.  
  1599.        Do NOT specifically demand Chipram for the pointer array.
  1600.        Else your program won't run on the DraCo. rtgmaster.library will
  1601.        handle this itself, that the pointer-image will end in
  1602.        Chipram for ECS/AGA, in ANYTHING AVAILABLE on GFX Board system.
  1603.        So simply allocate RAM for the pointer image, without simply
  1604.        demanding Chipram or Fastram (as DraCo needs FastRam, and
  1605.        ECS/AGA need Chipram here... but well... rtgmaster.library
  1606.        takes care of this :) )
  1607.  
  1608.    SEE ALSO
  1609.        RtgClearPointer()
  1610.  
  1611. rtgmaster.library/RtgSetTextMode                              rtgmaster.library/RtgSetTextMode
  1612.  
  1613.    NAME
  1614.         RtgSetTextMode - sets text color and drawing mode
  1615.  
  1616.    SYNOPSIS
  1617.         RtgSetTextMode(RtgScreen,fgcolor,bgcolor,drmode)
  1618.                         A0        D0      D1      D2
  1619.  
  1620.         void RtgSetTextMode(struct RtgScreen *,UBYTE,UBYTE,UBYTE)
  1621.  
  1622.    FUNCTION
  1623.         Sets the foreground color, the background color and the drawing
  1624.         mode for Text on this RtgScreen.  drmodes are defined as usual
  1625.         in graphics/rastport.i (or .h) : JAM1, JAM2, COMPLEMENT.
  1626.         INVERSVID is not valid...
  1627.  
  1628.         This function should only be used on Displays with depth <=8.
  1629.  
  1630.    INPUTS
  1631.         RtgScreen - an RtgScreen
  1632.         fgcolor   - Foreground color
  1633.         bgcolor   - Background color
  1634.         drwmode   - Drawing mode, defined in graphics/rastport.i (or .h)
  1635.  
  1636.    NOTES
  1637.         Not yet implemented for rtgPICA.library
  1638.  
  1639.    SEE ALSO
  1640.         RtgOpenFont(),RtgSetFont(),RtgCloseFont(),RtgText(),RtgSetTextModeRGB()
  1641.  
  1642.  
  1643. rtgmaster.library/RtgSetTextModeRGB                              rtgmaster.library/RtgSetTextModeRGB
  1644.  
  1645.    NAME
  1646.         RtgSetTextModeRGB - sets text color and drawing mode for depths >8
  1647.  
  1648.    SYNOPSIS
  1649.         RtgSetTextModeRGB(RtgScreen,fgcolor,bgcolor,drmode)
  1650.                         A0        D0      D1      D2
  1651.  
  1652.         void RtgSetTextModeRGB(struct RtgScreen *,ULONG,ULONG,UBYTE)
  1653.  
  1654.    FUNCTION
  1655.         Sets the foreground color, the background color and the drawing
  1656.         mode for Text on this RtgScreen.  drmodes are defined as usual
  1657.         in graphics/rastport.i (or .h) : JAM1, JAM2, COMPLEMENT.
  1658.         INVERSVID is not valid...
  1659.  
  1660.         Should only be used on Displays with depth >8.
  1661.  
  1662.    NOTES
  1663.         Due to a bug in CyberGraphX, this function does not work
  1664.         very well with rtgCGX.library (strange colors...). Not yet
  1665.         implemented in rtgPICA.library.
  1666.  
  1667.    INPUTS
  1668.         RtgScreen - an RtgScreen
  1669.         fgcolor   - Foreground color
  1670.         bgcolor   - Background color
  1671.         drwmode   - Drawing mode, defined in graphics/rastport.i (or .h)
  1672.  
  1673.  
  1674.    SEE ALSO
  1675.         RtgOpenFont(),RtgSetFont(),RtgCloseFont(),RtgText(),RtgSetTextMode()
  1676.  
  1677.  
  1678. rtgmaster.library/RtgText                              rtgmaster.library/RtgText
  1679.  
  1680.    NAME
  1681.         RtgText - displays Text on an RtgScreen
  1682.  
  1683.    SYNOPSIS
  1684.         RtgText(RtgScreen,buffer,string,length,xpos,ypos)
  1685.                  A0        A1     A2     D0     D1   D2
  1686.  
  1687.         void RtgText(struct RtgScreen *,void *,char *,WORD,SHORT,SHORT)
  1688.  
  1689.    FUNCTION
  1690.         Displays the string "string" with the chosen font parameters (see
  1691.         RtgSetFont(), RtgSetTextMode(), RtgSetTextModeRGB() ) at position
  1692.         xpos,ypos much the same way like Text() of graphics.library does.
  1693.  
  1694.    INPUTS
  1695.         RtgScreen - an RtgScreen
  1696.         buffer    - The buffer address of the buffer where to display the text
  1697.         string    - pointer to a string
  1698.         length    - length of the string in characters
  1699.         xpos      - the x-pos
  1700.         ypos      - the y-pos
  1701.  
  1702.    NOTES
  1703.         Not yet implemented for rtgPICA.library.
  1704.  
  1705.    SEE ALSO
  1706.         RtgOpenFont(),RtgSetFont(),RtgCloseFont(),RtgCloseFont(),RtgSetTextModeRGB(),RtgSetTextMode()
  1707.  
  1708. rtgmaster.library/RtgWaitTOF                                  rtgmaster.library/RtgWaitTOF
  1709.  
  1710.    NAME
  1711.         RtgWaitTOF - Wait for the top of the next video frame.
  1712.  
  1713.    SYNOPSIS
  1714.         WaitTOF(RtgScreen)
  1715.                  A0
  1716.  
  1717.         WaitTOF(struct RtgScreen *)
  1718.  
  1719.    FUNCTION
  1720.         Wait  for vertical blank to occur and all vertical blank
  1721.         interrupt routines to complete before returning to caller.
  1722.  
  1723.         Does not do anything at all with some sublibraries... (CyberGraphX does not
  1724.         support TOF-Waiting up to now...)
  1725.  
  1726.    INPUTS
  1727.         The Screen Handle of the GFX Board Screen (only in FACT needed for rtgEGS.library,
  1728.         and probably nothing much is done about it anyway... but be nice... give this
  1729.         parameter... to stay compatible :) )
  1730.  
  1731.    RESULTS
  1732.         Places this task on the TOF wait queue. When the vertical blank
  1733.         interrupt comes around, the interrupt service routine will fire off
  1734.         signals to all the tasks doing WaitTOF. The highest priority task
  1735.         ready will get to run then.
  1736.  
  1737.    SEE ALSO
  1738.        graphics.library/WaitTOF()
  1739.  
  1740. rtgmaster.library/RunServer                                      rtgmaster.library/RunServer
  1741.  
  1742.    NAME
  1743.         RunServer -- Handle all the messaging for a server and several clients
  1744.  
  1745.    SYNOPSIS
  1746.         New_Socket = RunServer(SBase,Socket,in_buffer,out_buffer,maxplayers)
  1747.          D0                     A0    A1     A2        A3         D0
  1748.  
  1749.         struct RTG_Socket *RunServer(struct Library *,struct RTG_Socket *,struct RTG_Buff *,struct RTG_Buff *,int)
  1750.  
  1751.    FUNCTION
  1752.         You will have to run this fine
  1753.         function in a loop. Every time it returns, it gives you the Socket of a new connected
  1754.         client or 0, if no new Client connected. Also, in  in_buffer, you will have all new
  1755.         messages sent from  already connected Clients to the server, and all messages you filled
  1756.         in in out_buffer before calling this function, will be sent to the Clients.
  1757.         If nothing happened, this function returns at once, with consuming nearly no CPU time.
  1758.  
  1759.         You SHOULD initialize the in_buffer.num values with -1 EACH TIME, before
  1760.         RunServer is run, and the out_buffer.num values once before the FIRST TIME
  1761.         RunServer is called !!!
  1762.  
  1763.         NOTE: If you (later...) use RunServer, the Server can't handle a Player. You need
  1764.         ONE CLIENT PER PLAYER AND AN ADDITIONAL SERVER WITHOUT A PLAYER. The Server can run
  1765.         on a system, where a Client is also running, though (should be the fastest system in
  1766.         the connection, probably, as it will have to do all that messaging to the Client ...)
  1767.  
  1768.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1769.         yourselves and provide it as parameter. This is needed because of some internal
  1770.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1771.         at the Docs for more information.
  1772.  
  1773.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1774.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1775.  
  1776.         NOTE: It is NOT possible to give Socket->s (the Socket Number) of a Client
  1777.         to the Server using RtgRecv or RunServer !!! You will have to examine
  1778.         inbuffer->num[x] to find out which Socket was the Sender !!! Also len
  1779.         should NEVER be bigger than the actual message, or you might get a lot
  1780.         of strange results !!!
  1781.  
  1782.         Actually this function is now inside rtgextra.library.
  1783.  
  1784.  
  1785.    INPUTS
  1786.         SBase      - Result of the call (C Syntax here...)
  1787.                      SBase = OpenLibrary("bsdsocket.library",0);
  1788.         Socket     - The Socket of THIS application (the Server...)
  1789.         in_buffer  - messages that arrived during the call of RunServer
  1790.         out_buffer - messages that Run_Server should deliver
  1791.         maxplayers - The Maximum of Clients allowed (CAN'T BE BIGGER THAN 12 !!!)
  1792.  
  1793.    RESULTS
  1794.         New_Socket - The Socket of a newly connected Client. Save it somewhere...
  1795.  
  1796.    SEE ALSO
  1797.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgRecv(),RtgSend(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  1798.  
  1799. rtgmaster.library/SwitchScreens                              rtgmaster.library/SwitchScreens
  1800.  
  1801.    NAME
  1802.         SwitchScreens -- Perform doublebuffering
  1803.  
  1804.    SYNOPSIS
  1805.         SwitchScreens(RtgScreen, Buffer)
  1806.                        A0         D0
  1807.  
  1808.         SwitchScreens(ULONG, ULONG)
  1809.  
  1810.    FUNCTION
  1811.         RtgScreen passed in A0 is a handle of a screen previously opened
  1812.         by OpenRtgScreen().
  1813.  
  1814.         This functions is used to specify the buffer which should
  1815.         be displayed starting from the next Vertical Blank.  The buffer
  1816.         supplied is a simple number (0 = first buffer, 1 = 2nd buffer
  1817.         etcetera).
  1818.  
  1819.         If the same buffer is being specified as is being displayed then
  1820.         this function should do nothing.
  1821.  
  1822.         This function will never be called from interupts.
  1823.  
  1824.    INPUTS
  1825.         RtgScreen - A handle for a valid screen previously opened by
  1826.                     this sublibrary's OpenRtgScreen() function.
  1827.         Buffer - The buffer number the user wishes to display
  1828.  
  1829.    SEE ALSO
  1830.         OpenRtgScreen(),WaitRtgSwitch()
  1831.  
  1832.  
  1833.  
  1834. rtgmaster.library/UnlockRtgScreen                          rtgmaster.library/UnlockRtgScreen
  1835.  
  1836.    NAME
  1837.         UnlockRtgScreen -- Unlocks a RtgScreen
  1838.  
  1839.    SYNOPSIS
  1840.         UnlockRtgScreen(RtgScreen)
  1841.                          A0
  1842.  
  1843.         UnlockRtgScreen(ULONG)
  1844.  
  1845.    FUNCTION
  1846.         Unlocks a previously locked RtgScreen.  If this screen hasn't
  1847.         been locked before this function will do nothing.
  1848.  
  1849.         LockRtgScreen() and UnlockRtgScreen() functions nest, which means
  1850.         the user must call an UnlockRtgScreen() for every LockRtgScreen().
  1851.         If not the user will end up with a permenantly locked screen.
  1852.  
  1853.    INPUTS
  1854.         RtgScreen - A handle for a valid screen previously opened by
  1855.                     this sublibrary's OpenRtgScreen() function.
  1856.  
  1857.    SEE ALSO
  1858.         LockRtgScreen()
  1859.  
  1860. rtgmaster.library/WaitRtgBlit                                 rtgmaster.library/WaitRtgBlit
  1861.  
  1862.    NAME
  1863.         WaitRtgBlit - Waits on the Blitter to be finished
  1864.  
  1865.    SYNOPSIS
  1866.         WaitRtgBlit(RtgScreen)
  1867.                     A0
  1868.  
  1869.         WaitRtgBlit(struct RtgScreen *)
  1870.  
  1871.    FUNCTION
  1872.         Waits for the GFX Board Blitter to be finished. For those who wonder,
  1873.         why RtgScreen has to be given as parameter... it probably won't be used...
  1874.         just to be on the sure side :)
  1875.  
  1876.         Does not do anything at all with some sublibraries. Some of them ALWAYS wait...
  1877.  
  1878.    INPUTS
  1879.         RtgScreen - The RtgScreen structure
  1880.  
  1881.    SEE ALSO
  1882.         OpenRtgScreen(), RtgBlit()
  1883.  
  1884. rtgmaster.library/WaitRtgSwitch                               rtgmaster.library/WaitRtgSwitch
  1885.  
  1886.    NAME
  1887.         WaitRtgSwitch - Waits on Doublebuffering having happened
  1888.  
  1889.    SYNOPSIS
  1890.         WaitRtgSwitch(RtgScreen)
  1891.                     A0
  1892.  
  1893.         WaitRtgSwitch(struct RtgScreen *)
  1894.  
  1895.    FUNCTION
  1896.         As SwitchScreens does not wait till the Doublebuffering has happened,
  1897.         but returns AT ONCE, it might be that the program wants to access the
  1898.         video memory BEFORE the change has happened. In this case you can use
  1899.         WaitRtgSwitch to be sure the change really happened. If you do not
  1900.         want to wait, simply do not use this call :)
  1901.  
  1902.         Does not do much for some sublibraries. Some always wait...
  1903.  
  1904.    INPUTS
  1905.         The Screenhandle of the Screen, where the Wait should happen...
  1906.  
  1907.    SEE ALSO
  1908.         SwitchScreens()
  1909.  
  1910. rtgmaster.library/WriteRtgPixel                               rtgmaster.library/WriteRtgPixel
  1911.  
  1912.    NAME
  1913.         WriteRtgPixel - plots a single pixel to a RtgScreen
  1914.  
  1915.    SYNOPSIS
  1916.         WriteRtgPixel(RtgScreen, BufferAdr, XPos, YPos, Color)
  1917.                        A0         A1         D0    D1    D2
  1918.  
  1919.         WriteRtgPixel(struct RtgScreen *, APTR, ULONG, ULONG, UBYTE)
  1920.  
  1921.    FUNCTION
  1922.         Draws a single pixel at the specified position on a RtgScreen.
  1923.         The BufferAdr is the starting address of the buffer the users wants
  1924.         to draw the pixel in.  The user has obtained this address using
  1925.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  1926.         the correct buffer for screens which are double or triple buffered.
  1927.  
  1928.         This function should only work for Palette mapped modes, Color is
  1929.         the Color number of the palette.
  1930.  
  1931.         THIS FUNCTION IS IMPLEMENTED WITH SUBLIBRARIES STARTING WITH VERSION 1.8
  1932.  
  1933.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  1934.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  1935.         DO THE STUFF YOURSELVES.
  1936.  
  1937.    INPUTS
  1938.         RtgScreen - A handle for a valid screen previously opened by
  1939.                     this sublibrary's OpenRtgScreen() function.
  1940.         BufferAdr - The address of the memory containing the actual
  1941.                     screen graphics
  1942.         XPos - X position of the pixel the user wants to plot
  1943.         YPos - Y position of the pixel the user wants to plot
  1944.         Color - Color number
  1945.  
  1946.    SEE ALSO
  1947.         OpenRtgScreen(), WriteRtgPixelRGB(), WriteRtgPixelArray()
  1948.  
  1949. rtgmaster.library/WriteRtgPixelArray                     rtgmaster.library/WriteRtgPixelArray
  1950.  
  1951.    NAME
  1952.         WriteRtgPixelArray - writes an array of pixels to a RtgScreen
  1953.  
  1954.    SYNOPSIS
  1955.         WriteRtgPixelArray(RtgScreen, BufferAdr, Array, Left, Top, Width, Height)
  1956.                             A0         A1         A2     D0    D1   D2     D3
  1957.  
  1958.         WriteRtgPixelArray(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  1959.                            ULONG, ULONG)
  1960.  
  1961.    FUNCTION
  1962.         Draws an rectangular array of pixels to the specified position on a
  1963.         RtgScreen.  The BufferAdr is the starting address of the buffer the
  1964.         user wants to draw this array of pixels in.  The user has obtained
  1965.         this address using LockRtgScreen() and GetBufAdr().  The BufferAdr is
  1966.         needed to specify the correct buffer for screens which are double or
  1967.         triple buffered.
  1968.  
  1969.         This function should only work for Palette mapped modes.  The array
  1970.         consists of one byte per pixel, each byte specifying a Color number.
  1971.  
  1972.         This function is many times faster than writing each pixel seperately
  1973.         to the screen using WriteRtgPixel().
  1974.  
  1975.         Note: For compatibility with rtgAMI.library,
  1976.         Array should contain at least ((((width+15)>>4)<<4)*Height Bytes.
  1977.  
  1978.         THIS FUNCTION IS IMPLEMENTED WITH SUBLIBRARIES STARTING WITH VERSION 1.8
  1979.  
  1980.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  1981.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  1982.         DO THE STUFF YOURSELVES.
  1983.  
  1984.    INPUTS
  1985.         RtgScreen - A handle for a valid screen previously opened by
  1986.                     this sublibrary's OpenRtgScreen() function.
  1987.         BufferAdr - The address of the memory containing the actual
  1988.                     screen graphics
  1989.         Array - Pointer to an array of pixels which is Width pixels wide, 
  1990.                 and Height pixels high.  Each pixel is one byte in size.
  1991.         Left - X position of the top-left of the rectangular pixel array
  1992.         Top - Y position of the top-left of the rectangular pixel array
  1993.         Width - Width of the array in pixels
  1994.         Height - Height of the array in pixels
  1995.  
  1996.    SEE ALSO
  1997.         OpenRtgScreen(), WriteRtgPixel(), WriteRtgPixelRGBArray()
  1998.  
  1999. rtgmaster.library/WriteRtgPixelRGB                         rtgmaster.library/WriteRtgPixelRGB
  2000.  
  2001.    NAME
  2002.         WriteRtgPixelRGB - plots a single pixel to a RtgScreen
  2003.  
  2004.    SYNOPSIS
  2005.         WriteRtgPixelRGB(RtgScreen, BufferAdr, XPos, YPos, Color)
  2006.                           A0         A1         D0    D1    D2
  2007.  
  2008.         WriteRtgPixelRGB(struct RtgScreen *, APTR, ULONG, ULONG, ULONG)
  2009.  
  2010.    FUNCTION
  2011.         Draws a single pixel at the specified position on a RtgScreen.
  2012.         The BufferAdr is the starting address of the buffer the users wants
  2013.         to draw the pixel in.  The user has obtained this address using
  2014.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  2015.         the correct buffer for screens which are double or triple buffered.
  2016.  
  2017.         This function should only work for True Color modes, Color is
  2018.         a 32 bit value which specifies what Color the pixel should be.
  2019.         The layout of this 32-bit value is as follows:
  2020.  
  2021.         %aaaaaaaa.rrrrrrrr.gggggggg.bbbbbbbb        
  2022.  
  2023.         a = AlphaChannel (8-bits) which may or may not be ignored.  The
  2024.             user will set this to zero if the user doesn't want to use
  2025.             AlphaChannel.
  2026.         r = Red component (8-bits) of the 24-bit RGB value
  2027.         g = Green component (8-bits) of the 24-bit RGB value
  2028.         b = Blue component (8-bits) of the 24-bit RGB value
  2029.  
  2030.         THIS FUNCTION IS IMPLEMENTED WITH SUBLIBRARIES STARTING WITH VERSION 1.8
  2031.  
  2032.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  2033.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  2034.         DO THE STUFF YOURSELVES.
  2035.  
  2036.    INPUTS
  2037.         RtgScreen - A handle for a valid screen previously opened by
  2038.                     this sublibrary's OpenRtgScreen() function.
  2039.         BufferAdr - The address of the memory containing the actual
  2040.                     screen graphics
  2041.         XPos - X position of the pixel the user wants to plot
  2042.         YPos - Y position of the pixel the user wants to plot
  2043.         Color - A 32-bit value describing the color (see above)
  2044.  
  2045.    SEE ALSO
  2046.         OpenRtgScreen(), WriteRtgPixel(), WriteRtgPixelRGBArray()
  2047.  
  2048. rtgmaster.library/WriteRtgPixelRGBArray               rtgmaster.library/WriteRtgPixelRGBArray
  2049.  
  2050.    NAME
  2051.         WriteRtgPixelRGBArray - writes an array of pixels to a RtgScreen
  2052.  
  2053.    SYNOPSIS
  2054.         WriteRtgPixelRGBArray(RtgScreen, BufferAdr, Array, Left, Top, Width, Height)
  2055.                                A0         A1         A2     D0    D1   D2     D3    
  2056.  
  2057.         WriteRtgPixelRGBArray(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  2058.                               ULONG, ULONG)
  2059.  
  2060.    FUNCTION
  2061.         Draws an rectangular array of pixels to the specified position on a
  2062.         RtgScreen.  The BufferAdr is the starting address of the buffer the
  2063.         user wants to draw this array of pixels in.  The user has obtained
  2064.         this address using LockRtgScreen() and GetBufAdr().  The BufferAdr is
  2065.         needed to specify the correct buffer for screens which are double or
  2066.         triple buffered.
  2067.  
  2068.         This function should only work for True Color modes.  The array
  2069.         consists of one longword (32-bits) per pixel, each longword specifies
  2070.         a Color in this format:
  2071.  
  2072.         %aaaaaaaa.rrrrrrrr.gggggggg.bbbbbbbb        
  2073.  
  2074.         a = AlphaChannel (8-bits) which may or may not be ignored.  The
  2075.             user will set this to zero if the user doesn't want to use
  2076.             AlphaChannel.
  2077.         r = Red component (8-bits) of the 24-bit RGB value
  2078.         g = Green component (8-bits) of the 24-bit RGB value
  2079.         b = Blue component (8-bits) of the 24-bit RGB value
  2080.  
  2081.         This function is many times faster than writing each pixel seperately
  2082.         to the screen using WriteRtgPixelRGB().
  2083.  
  2084.         THIS FUNCTION IS IMPLEMENTED WITH SUBLIBRARIES STARTING WITH VERSION 1.8
  2085.  
  2086.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  2087.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  2088.         DO THE STUFF YOURSELVES.
  2089.  
  2090.    INPUTS
  2091.         RtgScreen - A handle for a valid screen previously opened by
  2092.                     this sublibrary's OpenRtgScreen() function.
  2093.         BufferAdr - The address of the memory containing the actual
  2094.                     screen graphics
  2095.         Array - Pointer to an array of pixels which is Width pixels wide, 
  2096.                 and Height pixels high.  Each pixel is one longword (32-bits)
  2097.                 in size.
  2098.         Left - X position of the top-left of the rectangular pixel array
  2099.         Top - Y position of the top-left of the rectangular pixel array
  2100.         Width - Width of the array in pixels
  2101.         Height - Height of the array in pixels
  2102.  
  2103.    SEE ALSO
  2104.         OpenRtgScreen(), WriteRtgPixelRGB(), WriteRtgPixelArray()
  2105.  
  2106.  
  2107.