Control Surface API  3.0.3
GraphicsOutput.java
1 package com.bitwig.extension.api.graphics;
2 
4 
11 public interface GraphicsOutput
12 {
14  {
15  DEFAULT, OFF, GOOD, BEST
16  }
17 
19  {
20  DEFAULT, RGB, BGR, VRGB, VBGR
21  }
22 
23  enum HintStyle
24  {
25  DEFAULT, NONE, SLIGHT, MEDIUM, FULL
26  }
27 
29  {
30  DEFAULT, ON, OFF
31  }
32 
33  enum FillRule
34  {
35  WINDING, EVEN_ODD
36  }
37 
38  enum LineCap
39  {
40  BUTT, LINE, SQUARE
41  }
42 
43  enum LineJoin
44  {
45  MITER, ROUND, BEVEL
46  }
47 
48  enum Operator
49  {
50  CLEAR, SOURCE, OVER, IN, OUT, ATOP, DEST, DEST_OVER, DEST_IN, DEST_OUT, DEST_ATOP, XOR, ADD, SATURATE, MULTIPLY,
51  SCREEN, OVERLAY, DARKEN, LIGHTEN, COLOR_DODGE, COLOR_BURN, HARD_LIGHT, SOFT_LIGHT, DIFFERENCE, EXCLUSION,
52  HSL_HUE, HSL_SATURATION, HSL_COLOR, HSL_LUMINOSITY
53  }
54 
56  // Stack //
58 
59  void save();
60  void restore();
61 
63  // Clipping //
65 
66  void clip();
67  void clipPreserve();
68  void resetClip();
69 
71  // Referencial //
73 
74  void translate(double x, double y);
75  void rotate(double angle);
76  void scale(double factor);
77  void scale(double xFactor, double yFactor);
78 
80  // Shapes & Pathes //
82 
83  void newPath();
84  void newSubPath();
85  Path copyPath();
86  Path copyPathFlat();
87  void appendPath(Path path);
88  void closePath();
89  void moveTo(double x, double y);
90  void relMoveTo(double x, double y);
91  void lineTo(double x, double y);
92  void relLineTo(double x, double y);
93  void rectangle(double x, double y, double width, double height);
94  void arc(double xc, double yc, double radius, double angle1, double angle2);
95  void arcNegative(double xc, double yc, double radius, double angle1, double angle2);
96  void circle(double centerX, double centerY, double radius);
97  void curveTo(double x1, double y1, double x2, double y2, double x3, double y3);
98  void relCurveTo(double x1, double y1, double x2, double y2, double x3, double y3);
99 
101  // Painting and stroking //
103 
104  void paint();
105  void paintWithAlpha(double alpha);
106  void mask(Image image, double x, double y);
107  void fill();
108  void fillPreserve();
109  void stroke();
110  void strokePreserve();
111  void setColor(double red, double green, double blue);
112  void setColor(double red, double green, double blue, double alpha);
113  void setColor(Color color);
114  void setPattern(Pattern pattern);
115  void setAntialias(AntialiasMode antialiasMode);
116  void setLineWidth(double width);
117  void setDash(double[] dashes, double offset);
118  void setDash(double[] dashes);
119  void setFillRule(FillRule rule);
120  void setLineCap(LineCap lineCap);
121  void setLineJoin(LineJoin lineJoin);
122  void setMiterLimit(double limit);
123  void setOperator(Operator operator);
124  void setTolerance(double tolerance);
125  void drawImage(Image image, double x, double y);
126 
128  // Patterns //
130 
131  GradientPattern createLinearGradient(double x1, double y1, double x2, double y2);
132  MeshPattern createMeshGradient();
133 
135  // Text //
137 
138  void showText(String text);
139  void setFontSize(double fontSize);
140  void setFontFace(FontFace fontFace);
141  void setFontOptions(FontOptions fontOptions);
142  FontExtents getFontExtents();
143  TextExtents getTextExtents(String text);
144 }