The R Project SVN R

Rev

Rev 79409 | Rev 81278 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 79409 Rev 81097
Line 723... Line 723...
723
    /* This can be used to OVERRIDE canClip so that graphics engine
723
    /* This can be used to OVERRIDE canClip so that graphics engine
724
     * leaves ALL clipping to the graphics device 
724
     * leaves ALL clipping to the graphics device 
725
     */
725
     */
726
    Rboolean deviceClip;
726
    Rboolean deviceClip;
727
 
727
 
-
 
728
    /* Define a group of shapes that will be drawn together.
-
 
729
     * 
-
 
730
     * 'source' is an R function that draws something.
-
 
731
     * 'op' is the composition operator applied when drawing 'group'.
-
 
732
     *     (this must be R_GE_compositeOver or one of its ilk;
-
 
733
     *      see GraphicsEngine.h).
-
 
734
     * 'destination' is either NULL or an R function that draws something.
-
 
735
     * 'name' is a string that can be used to identify the group on the device.
-
 
736
     * 
-
 
737
     * 'destination' is drawn first (using the "over" compositing operator), 
-
 
738
     * then 'source' is drawn using the 'op' compositing operator.
-
 
739
     * 
-
 
740
     * The return value is a "reference" to the group that only has to 
-
 
741
     * make sense to the device; it is sent back in via useGroup().
-
 
742
     */
-
 
743
#if R_USE_PROTOTYPES
-
 
744
    SEXP (*defineGroup)(SEXP source, int op, SEXP destination, pDevDesc dd);
-
 
745
#else
-
 
746
    SEXP (*defineGroup)();
-
 
747
#endif
-
 
748
    /* Render a group of shapes that has previously been defined.
-
 
749
     * If the group identified by 'ref' does not exist on the device, 
-
 
750
     * do nothing.
-
 
751
     *
-
 
752
     * 'trans' is a transformation matrix or NULL (which means do not transform)
-
 
753
     */
-
 
754
#if R_USE_PROTOTYPES
-
 
755
    void (*useGroup)(SEXP ref, SEXP trans, pDevDesc dd);
-
 
756
#else
-
 
757
    void (*useGroup)();
-
 
758
#endif
-
 
759
    /* An opportunity for the device to "release" (e.g., the memory 
-
 
760
     * associated with) a group definition.
-
 
761
     */
-
 
762
#if R_USE_PROTOTYPES
-
 
763
    void (*releaseGroup)(SEXP ref, pDevDesc dd);
-
 
764
#else
-
 
765
    void (*releaseGroup)();
-
 
766
#endif
-
 
767
 
-
 
768
    /* Draw (stroke or fill) a path,
-
 
769
     * where the path is defined by an R function that draws something
-
 
770
     */
-
 
771
#if R_USE_PROTOTYPES
-
 
772
    void (*stroke)(SEXP path, const pGEcontext gc, pDevDesc dd);
-
 
773
#else
-
 
774
    void (*stroke)();
-
 
775
#endif
-
 
776
#if R_USE_PROTOTYPES
-
 
777
    void (*fill)(SEXP path, int rule, const pGEcontext gc, pDevDesc dd);
-
 
778
#else
-
 
779
    void (*fill)();
-
 
780
#endif
-
 
781
#if R_USE_PROTOTYPES
-
 
782
    void (*fillStroke)(SEXP path, int rule, const pGEcontext gc, pDevDesc dd);
-
 
783
#else
-
 
784
    void (*fillStroke)();
-
 
785
#endif
-
 
786
 
728
    /* Area for future expansion.
787
    /* Area for future expansion.
729
       By zeroing this, devices are more likely to work if loaded
788
       By zeroing this, devices are more likely to work if loaded
730
       into a later version of R than that they were compiled under.
789
       into a later version of R than that they were compiled under.
731
    */
790
    */
732
    char reserved[64];
791
    char reserved[64];