Skip to content

Commit 4aa30ed

Browse files
committed
some additions to the PLG.Tessellator interface
1 parent 89cce06 commit 4aa30ed

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

core/src/processing/opengl/PGL.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2674,12 +2674,17 @@ protected static void fillFloatBuffer(FloatBuffer buf, int i0, int i1,
26742674

26752675

26762676
protected interface Tessellator {
2677+
public void setCallback(int flag);
2678+
public void setWindingRule(int rule);
2679+
public void setProperty(int property, int value);
2680+
26772681
public void beginPolygon();
2682+
public void beginPolygon(Object data);
26782683
public void endPolygon();
2679-
public void setWindingRule(int rule);
26802684
public void beginContour();
26812685
public void endContour();
26822686
public void addVertex(double[] v);
2687+
public void addVertex(double[] v, int n, Object data);
26832688
}
26842689

26852690

@@ -2791,6 +2796,7 @@ protected interface FontOutline {
27912796

27922797
public static int TESS_WINDING_NONZERO;
27932798
public static int TESS_WINDING_ODD;
2799+
public static int TESS_EDGE_FLAG;
27942800

27952801
public static int GENERATE_MIPMAP_HINT;
27962802
public static int FASTEST;

core/src/processing/opengl/PJOGL.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -600,19 +600,33 @@ public Tessellator(TessellatorCallback callback) {
600600
GLU.gluTessCallback(tess, GLU.GLU_TESS_ERROR, gluCallback);
601601
}
602602

603+
@Override
604+
public void setCallback(int flag) {
605+
GLU.gluTessCallback(tess, flag, gluCallback);
606+
}
607+
608+
@Override
609+
public void setWindingRule(int rule) {
610+
setProperty(GLU.GLU_TESS_WINDING_RULE, rule);
611+
}
612+
613+
public void setProperty(int property, int value) {
614+
GLU.gluTessProperty(tess, property, value);
615+
}
616+
603617
@Override
604618
public void beginPolygon() {
605-
GLU.gluTessBeginPolygon(tess, null);
619+
beginPolygon(null);
606620
}
607621

608622
@Override
609-
public void endPolygon() {
610-
GLU.gluTessEndPolygon(tess);
623+
public void beginPolygon(Object data) {
624+
GLU.gluTessBeginPolygon(tess, data);
611625
}
612626

613627
@Override
614-
public void setWindingRule(int rule) {
615-
GLU.gluTessProperty(tess, GLU.GLU_TESS_WINDING_RULE, rule);
628+
public void endPolygon() {
629+
GLU.gluTessEndPolygon(tess);
616630
}
617631

618632
@Override
@@ -627,7 +641,12 @@ public void endContour() {
627641

628642
@Override
629643
public void addVertex(double[] v) {
630-
GLU.gluTessVertex(tess, v, 0, v);
644+
addVertex(v, 0, v);
645+
}
646+
647+
@Override
648+
public void addVertex(double[] v, int n, Object data) {
649+
GLU.gluTessVertex(tess, v, n, data);
631650
}
632651

633652
protected class GLUCallback extends GLUtessellatorCallbackAdapter {
@@ -752,6 +771,7 @@ public void next() {
752771

753772
TESS_WINDING_NONZERO = GLU.GLU_TESS_WINDING_NONZERO;
754773
TESS_WINDING_ODD = GLU.GLU_TESS_WINDING_ODD;
774+
TESS_EDGE_FLAG = GLU.GLU_TESS_EDGE_FLAG;
755775

756776
GENERATE_MIPMAP_HINT = GL.GL_GENERATE_MIPMAP_HINT;
757777
FASTEST = GL.GL_FASTEST;

0 commit comments

Comments
 (0)