FOREIGN MODULE sun_dc_pr;

IMPORT
    sun_dc_path,
    java_lang,
    java_io;

TYPE

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

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

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

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

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

  Rasterizer* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                STATIC
                  EOFILL* = 1;
                  NZFILL* = 2;
                  STROKE* = 3;
                  ROUND* = 10;
                  SQUARE* = 20;
                  BUTT* = 30;
                  BEVEL* = 40;
                  MITER* = 50;
                  TILE_SIZE* : INTEGER;
                  TILE_SIZE_L2S* : INTEGER;
                  MAX_ALPHA* = 1000000;
                  MAX_MITER* = 10;
                  MAX_WN* = 63;
                  TILE_IS_ALL_0* = 0;
                  TILE_IS_ALL_1* = 1;
                  TILE_IS_GENERAL* = 2;
                  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) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathDasher) finalize!(),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) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathFiller) finalize!(),EXTENSIBLE;

PROCEDURE (self:PathFiller) getAlphaBox*(IN  p0 : ARRAY OF INTEGER),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) endPath*(),NEW,EXTENSIBLE;

PROCEDURE (self:PathStroker) finalize!(),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*(),NEW,EXTENSIBLE;

PROCEDURE (self:Rasterizer) beginPath*(IN  p0 : ARRAY OF SHORTREAL),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.