home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / misc / emu / AROSdev.lha / AROS / rom / graphics / clonerastport.c next >
C/C++ Source or Header  |  1997-01-27  |  2KB  |  77 lines

  1. /*
  2.     (C) 1995 AROS - The Amiga Replacement OS
  3.     $Id: clonerastport.c,v 1.3 1997/01/27 00:36:09 ldp Exp $
  4.  
  5.     Desc: Graphics function CloneRastPort()
  6.     Lang: english
  7. */
  8. #include "graphics_intern.h"
  9. #include <exec/memory.h>
  10. #include <graphics/rastport.h>
  11. #include <proto/exec.h>
  12.  
  13. /*****************************************************************************
  14.  
  15.     NAME */
  16. #include <graphics/rastport.h>
  17. #include <proto/graphics.h>
  18.  
  19.     AROS_LH1(struct RastPort *, CloneRastPort,
  20.  
  21. /*  SYNOPSIS */
  22.     AROS_LHA(struct RastPort *, rp, A1),
  23.  
  24. /*  LOCATION */
  25.     struct GfxBase *, GfxBase, 178, Graphics)
  26.  
  27. /*  FUNCTION
  28.     This function creates a copy of a RastPort.
  29.  
  30.     INPUTS
  31.     rp - The RastPort to clone.
  32.  
  33.     RESULT
  34.     A pointer to a RastPort with the same attributes as the RastPort
  35.     which was specified or NULL if there was not enough memory to perform
  36.     the operation.
  37.  
  38.     NOTES
  39.     This function is AROS specific. For compatibility, there is a
  40.     function in aros.lib which does the same on Amiga.
  41.  
  42.     EXAMPLE
  43.  
  44.     BUGS
  45.  
  46.     SEE ALSO
  47.     CreateRastPort(), FreeRastPort()
  48.  
  49.     INTERNALS
  50.  
  51.     HISTORY
  52.     29-10-95    digulla automatically created from
  53.                 graphics_lib.fd and clib/graphics_protos.h
  54.  
  55. *****************************************************************************/
  56. {
  57.     AROS_LIBFUNC_INIT
  58.     AROS_LIBBASE_EXT_DECL(struct GfxBase *,GfxBase)
  59.     struct RastPort * newRP;
  60.  
  61.     newRP = AllocMem (sizeof (struct RastPort), MEMF_ANY);
  62.  
  63.     if (newRP)
  64.     {
  65.     CopyMem (rp, newRP, sizeof (struct RastPort));
  66.  
  67.     if (!driver_CloneRastPort (newRP, rp, GfxBase))
  68.     {
  69.         FreeMem (newRP, sizeof (struct RastPort));
  70.         newRP = NULL;
  71.     }
  72.     }
  73.  
  74.     return newRP;
  75.     AROS_LIBFUNC_EXIT
  76. } /* CloneRastPort */
  77.