FOREIGN MODULE sun_dc_pr;

IMPORT
    sun_dc_path := "sun.dc.path",
    java_lang := "java.lang",
    java_io := "java.io",
    sun_java2d := "sun.java2d";

TYPE

  PathDasher* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_dc_path.PathConsumer)    (* Typebound Procedures *)
                STATIC
                  PROCEDURE classFinalize!();
                  PROCEDURE Init*(p0 : sun_dc_path.PathConsumer) : PathDasher,CONSTRUCTOR;
                END;

  PathFiller* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_dc_path.PathConsumer)    (* Typebound Procedures *)
                STATIC
                  EOFILL*          = 1;
                  maxPathF*        = 1000000.0;
                  MAX_PATH*        = 1000000;
                  NZFILL*          = 2;
                  TILE_IS_ALL_0*   = 0;
                  TILE_IS_ALL_1*   = 1;
                  TILE_IS_GENERAL* = 2;
                  PROCEDURE classFinalize!();
                  PROCEDURE Init*() : PathFiller,CONSTRUCTOR;
                  PROCEDURE validHiCoord*(p0 : SHORTREAL) : BOOLEAN;
                  PROCEDURE validLoCoord*(p0 : SHORTREAL) : BOOLEAN;
                END;

  PathStroker* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_dc_path.PathConsumer)    (* Typebound Procedures *)
                 STATIC
                   BEVEL*         = 40;
                   BUTT*          = 30;
                   MITER*         = 50;
                   ROUND*         = 10;
                   SQUARE*        = 20;
                   PROCEDURE classFinalize!();
                   PROCEDURE Init*(p0 : sun_dc_path.PathConsumer) : PathStroker,CONSTRUCTOR;
                 END;

  PRError* = POINTER TO EXTENSIBLE RECORD (java_lang.RuntimeException)
             STATIC
               BAD_alphadest*           = "writeAlpha: invalid alpha destination array and/or strides";
               BAD_boxdest*             = "getAlphaBox: invalid box destination array";
               BAD_dashpattern*         = "setDash: invalid dash pattern";
               BAD_dasht4*              = "setDashT4: invalid dash transformation";
               BAD_dasht4_singular*     = "setDashT4: invalid dash transformation (singular)";
               BAD_miterlimit*          = "setCorners: invalid miter limit";
               BAD_outputarea*          = "setOutputArea: invalid output area";
               BAD_outputt6*            = "setOutputT6: invalid output transformation";
               BAD_outputt6_singular*   = "setOutputT6: invalid output transformation (singular)";
               BAD_pathbox*             = "beginPath: invalid path box";
               BAD_pendiam*             = "setPenDiameter: Invalid pen diameter";
               BAD_penfit*              = "setPenFitting: invalid pen fitting specification";
               BAD_pent4*               = "setPenT4: invalid pen transformation";
               BAD_pent4_singular*      = "setPenT4: invalid pen transformation (singular)";
               DUMMY*                   = "";
               UNEX_appendCubic*        = "appendCubic: unexpected";
               UNEX_appendLine*         = "appendLine: unexpected";
               UNEX_appendQuadratic*    = "appendQuadratic: unexpected";
               UNEX_beginPath*          = "beginPath: unexpected";
               UNEX_beginSubpath*       = "beginSubpath: unexpected";
               UNEX_closedSubpath*      = "closedSubpath: unexpected";
               UNEX_endPath*            = "endPath: unexpected";
               UNEX_getAlphaBox*        = "getAlphaBox: unexpected";
               UNEX_getTileState*       = "getTileState: unexpected";
               UNEX_nextTile*           = "nextTile: unexpected";
               UNEX_setCaps*            = "setCaps: unexpected";
               UNEX_setCorners*         = "setCorners: unexpected";
               UNEX_setDash*            = "setDash: unexpected";
               UNEX_setDashT4*          = "setDashT4: unexpected";
               UNEX_setFillMode*        = "setFillMode: unexpected";
               UNEX_setOutputArea*      = "setOutputArea: unexpected";
               UNEX_setOutputConsumer*  = "setOutputConsumer: unexpected";
               UNEX_setOutputT6*        = "setOutputT6: unexpected";
               UNEX_setPenDiameter*     = "setPenDiameter: unexpected";
               UNEX_setPenDisplacement* = "setPenDisplacement: unexpected";
               UNEX_setPenFitting*      = "setPenFitting: unexpected";
               UNEX_setPenT4*           = "setPenT4: unexpected";
               UNEX_setUsage*           = "setUsage: unexpected";
               UNEX_useProxy*           = "useProxy: unexpected";
               UNEX_writeAlpha*         = "writeAlpha: unexpected";
               UNK_caps*                = "setCaps: unknown cap type";
               UNK_corners*             = "setCorners: unknown corner type";
               UNK_fillmode*            = "setFillMode: unknown fill mode";
               UNK_usage*               = "setUsage: unknown usage type";
               PROCEDURE Init*(p0 : java_lang.String) : PRError,CONSTRUCTOR;
               PROCEDURE Init*() : PRError,CONSTRUCTOR;
             END;

  PRException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                 STATIC
                   ALPHA_ARRAY_SHORT*       = "writeAlpha: alpha destination array too short";
                   BAD_COORD_setOutputArea* = "setOutputArea: alpha coordinate out of bounds";
                   DUMMY*                   = "";
                   PROCEDURE Init*(p0 : java_lang.String) : PRException,CONSTRUCTOR;
                   PROCEDURE Init*() : PRException,CONSTRUCTOR;
                 END;

  Rasterizer* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                STATIC
                  BEVEL*           = 40;
                  BUTT*            = 30;
                  EOFILL*          = 1;
                  MAX_ALPHA*       = 1000000;
                  MAX_MITER*       = 10;
                  MAX_WN*          = 63;
                  MITER*           = 50;
                  NZFILL*          = 2;
                  ROUND*           = 10;
                  SQUARE*          = 20;
                  STROKE*          = 3;
                  TILE_IS_ALL_0*   = 0;
                  TILE_IS_ALL_1*   = 1;
                  TILE_IS_GENERAL* = 2;
                  TILE_SIZE*       : INTEGER;
                  TILE_SIZE_L2S*   : INTEGER;
                  PROCEDURE Init*() : Rasterizer,CONSTRUCTOR;
                END;




PROCEDURE (self:PathDasher) appendCubic*(p0 : SHORTREAL;
                                         p1 : SHORTREAL;
                                         p2 : SHORTREAL;
                                         p3 : SHORTREAL;
                                         p4 : SHORTREAL;
                                         p5 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) appendLine*(p0 : SHORTREAL;
                                        p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) appendQuadratic*(p0 : SHORTREAL;
                                             p1 : SHORTREAL;
                                             p2 : SHORTREAL;
                                             p3 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) beginPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) beginSubpath*(p0 : SHORTREAL;
                                          p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) closedSubpath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) dispose*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) getConsumer*() : sun_dc_path.PathConsumer,NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) getCPathConsumer*() : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) reset*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) setDash*(IN  p0 : ARRAY OF SHORTREAL;
                                         p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) setDashT4*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) setOutputConsumer*(p0 : sun_dc_path.PathConsumer),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) setOutputT6*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) useProxy*(p0 : sun_dc_path.FastPathProducer),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) appendCubic*(p0 : SHORTREAL;
                                         p1 : SHORTREAL;
                                         p2 : SHORTREAL;
                                         p3 : SHORTREAL;
                                         p4 : SHORTREAL;
                                         p5 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) appendLine*(p0 : SHORTREAL;
                                        p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) appendQuadratic*(p0 : SHORTREAL;
                                             p1 : SHORTREAL;
                                             p2 : SHORTREAL;
                                             p3 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) beginPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) beginSubpath*(p0 : SHORTREAL;
                                          p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) closedSubpath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) dispose*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) getAlphaBox*(IN  p0 : ARRAY OF INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) getConsumer*() : sun_dc_path.PathConsumer,NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) getCPathConsumer*() : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) getTileState*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) nextTile*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) reset*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) setFillMode*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) setOutputArea*(p0 : SHORTREAL;
                                           p1 : SHORTREAL;
                                           p2 : INTEGER;
                                           p3 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) useProxy*(p0 : sun_dc_path.FastPathProducer),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) writeAlpha*(IN  p0 : ARRAY OF BYTE;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) writeAlpha*(IN  p0 : ARRAY OF CHAR;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) appendCubic*(p0 : SHORTREAL;
                                          p1 : SHORTREAL;
                                          p2 : SHORTREAL;
                                          p3 : SHORTREAL;
                                          p4 : SHORTREAL;
                                          p5 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) appendLine*(p0 : SHORTREAL;
                                         p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) appendQuadratic*(p0 : SHORTREAL;
                                              p1 : SHORTREAL;
                                              p2 : SHORTREAL;
                                              p3 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) beginPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) beginSubpath*(p0 : SHORTREAL;
                                           p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) closedSubpath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) dispose*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) getConsumer*() : sun_dc_path.PathConsumer,NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) getCPathConsumer*() : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) reset*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setCaps*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setCorners*(p0 : INTEGER;
                                         p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setOutputConsumer*(p0 : sun_dc_path.PathConsumer),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setOutputT6*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setPenDiameter*(p0 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setPenFitting*(p0 : SHORTREAL;
                                            p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) setPenT4*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) useProxy*(p0 : sun_dc_path.FastPathProducer),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) appendCubic*(p0 : SHORTREAL;
                                         p1 : SHORTREAL;
                                         p2 : SHORTREAL;
                                         p3 : SHORTREAL;
                                         p4 : SHORTREAL;
                                         p5 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) appendLine*(p0 : SHORTREAL;
                                        p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) appendQuadratic*(p0 : SHORTREAL;
                                             p1 : SHORTREAL;
                                             p2 : SHORTREAL;
                                             p3 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) beginPath*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) beginPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) beginSubpath*(p0 : SHORTREAL;
                                          p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) closedSubpath*(),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) getAlphaBox*(IN  p0 : ARRAY OF INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) getTileState*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) nextTile*(),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) reset*(),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setCaps*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setCorners*(p0 : INTEGER;
                                        p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setDash*(IN  p0 : ARRAY OF SHORTREAL;
                                         p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setDashT4*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setOutputArea*(p0 : SHORTREAL;
                                           p1 : SHORTREAL;
                                           p2 : INTEGER;
                                           p3 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setPenDiameter*(p0 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setPenDisplacement*(p0 : SHORTREAL;
                                                p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setPenFitting*(p0 : SHORTREAL;
                                           p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setPenT4*(IN  p0 : ARRAY OF SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) setUsage*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) useProxy*(p0 : sun_dc_path.FastPathProducer),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) writeAlpha*(IN  p0 : ARRAY OF BYTE;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) writeAlpha*(IN  p0 : ARRAY OF CHAR;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : INTEGER),NEW,EXTENSIBLE;

END sun_dc_pr.