Commit f826d595 by Scott Gilbertson Committed by Tom Tromey

natGC.cc (fillPolygon): New method.

2003-01-15  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/gcj/xlib/natGC.cc (fillPolygon): New method.
	* gnu/gcj/xlib/GC.java (fillPolygon): Declare.
	* gnu/awt/xlib/XGraphics.java (fillPolygon): Added translateX and
	translateY arguments.  Implement.
	* gnu/awt/j2d/IntegerGraphicsState.java (fillPolygon): Pass
	down translation arguments.
	(drawPolyline, drawPolygon): Fix incorrect tests.
	* gnu/awt/j2d/DirectRasterGraphics.java (fillPolygon): Added
	translateX and translateY arguments.

From-SVN: r61369
parent 2af84af5
2003-01-15 Scott Gilbertson <scottg@mantatest.com> 2003-01-15 Scott Gilbertson <scottg@mantatest.com>
* gnu/gcj/xlib/natGC.cc (fillPolygon): New method.
* gnu/gcj/xlib/GC.java (fillPolygon): Declare.
* gnu/awt/xlib/XGraphics.java (fillPolygon): Added translateX and
translateY arguments. Implement.
* gnu/awt/j2d/IntegerGraphicsState.java (fillPolygon): Pass
down translation arguments.
(drawPolyline, drawPolygon): Fix incorrect tests.
* gnu/awt/j2d/DirectRasterGraphics.java (fillPolygon): Added
translateX and translateY arguments.
2003-01-15 Scott Gilbertson <scottg@mantatest.com>
* Makefile.in: Rebuilt. * Makefile.in: Rebuilt.
* Makefile.am (xlib_includes): New macro. * Makefile.am (xlib_includes): New macro.
(INCLUDES): Use it. (INCLUDES): Use it.
......
/* Copyright (C) 2000 Free Software Foundation /* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -61,7 +61,8 @@ public interface DirectRasterGraphics extends Cloneable ...@@ -61,7 +61,8 @@ public interface DirectRasterGraphics extends Cloneable
public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints); public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints); public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
int translateX, int translateY);
public void drawString(String str, int x, int y); public void drawString(String str, int x, int y);
......
/* Copyright (C) 2000 Free Software Foundation /* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -212,7 +212,7 @@ public class IntegerGraphicsState extends AbstractGraphicsState ...@@ -212,7 +212,7 @@ public class IntegerGraphicsState extends AbstractGraphicsState
public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
{ {
if ((tx == 0) || (ty == 0)) if ((tx == 0) && (ty == 0))
{ {
directGfx.drawPolyline(xPoints, yPoints, nPoints); directGfx.drawPolyline(xPoints, yPoints, nPoints);
return; return;
...@@ -223,7 +223,7 @@ public class IntegerGraphicsState extends AbstractGraphicsState ...@@ -223,7 +223,7 @@ public class IntegerGraphicsState extends AbstractGraphicsState
public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
{ {
if ((tx == 0) || (ty == 0)) if ((tx == 0) && (ty == 0))
{ {
directGfx.drawPolygon(xPoints, yPoints, nPoints); directGfx.drawPolygon(xPoints, yPoints, nPoints);
return; return;
...@@ -232,15 +232,11 @@ public class IntegerGraphicsState extends AbstractGraphicsState ...@@ -232,15 +232,11 @@ public class IntegerGraphicsState extends AbstractGraphicsState
throw new UnsupportedOperationException("translate not implemented"); throw new UnsupportedOperationException("translate not implemented");
} }
public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) public void fillPolygon (int[] xPoints, int[] yPoints, int nPoints)
{ {
if ((tx == 0) || (ty == 0)) // FIXME: remove tx & ty args once translation via AffineTransform
{ // is implemented.
directGfx.fillPolygon(xPoints, yPoints, nPoints); directGfx.fillPolygon (xPoints, yPoints, nPoints, tx, ty);
return;
}
throw new UnsupportedOperationException("translate not implemented");
} }
public boolean drawImage(Image image, int x, int y, public boolean drawImage(Image image, int x, int y,
......
/* Copyright (C) 2000 Free Software Foundation /* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -176,10 +176,10 @@ public class XGraphics implements Cloneable, DirectRasterGraphics ...@@ -176,10 +176,10 @@ public class XGraphics implements Cloneable, DirectRasterGraphics
throw new UnsupportedOperationException("not implemented"); throw new UnsupportedOperationException("not implemented");
} }
public void fillPolygon(int[] xPoints, int[] yPoints, int public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
nPoints) int translateX, int translateY)
{ {
throw new UnsupportedOperationException("not implemented"); context.fillPolygon(xPoints, yPoints, nPoints, translateX, translateY);
} }
public void drawString(String str, int x, int y) public void drawString(String str, int x, int y)
......
/* Copyright (C) 2000 Free Software Foundation /* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -84,6 +84,8 @@ public class GC implements Cloneable ...@@ -84,6 +84,8 @@ public class GC implements Cloneable
public native void drawRectangle(int x, int y, int w, int h); public native void drawRectangle(int x, int y, int w, int h);
public native void fillRectangle(int x, int y, int w, int h); public native void fillRectangle(int x, int y, int w, int h);
public native void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
int translateX, int translateY);
/** /**
* *
......
/* Copyright (C) 2000 Free Software Foundation /* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -11,6 +11,7 @@ details. */ ...@@ -11,6 +11,7 @@ details. */
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <gcj/cni.h> #include <gcj/cni.h>
#include <gcj/array.h>
#include <gnu/gcj/RawData.h> #include <gnu/gcj/RawData.h>
#include <java/lang/String.h> #include <java/lang/String.h>
#include <java/awt/Rectangle.h> #include <java/awt/Rectangle.h>
...@@ -154,6 +155,27 @@ void gnu::gcj::xlib::GC::fillRectangle(jint x, jint y, jint w, jint h) ...@@ -154,6 +155,27 @@ void gnu::gcj::xlib::GC::fillRectangle(jint x, jint y, jint w, jint h)
// no fast fail // no fast fail
} }
void gnu::gcj::xlib::GC::fillPolygon(jintArray xPoints, jintArray yPoints,
jint nPoints,
jint translateX, jint translateY)
{
Display* display = target->getDisplay();
::Display* dpy = (::Display*) (display->display);
::Drawable drawableXID = target->getXID();
::GC gc = (::GC) structure;
typedef ::XPoint xpoint;
std::vector<xpoint> points(nPoints+1);
for (int i=0; i<nPoints; i++)
{
points[i].x = elements(xPoints)[i] + translateX;
points[i].y = elements(yPoints)[i] + translateY;
}
points[nPoints] = points[0];
XFillPolygon(dpy, drawableXID, gc, &(points.front()), nPoints,
Complex, CoordModeOrigin);
// no fast fail
}
void gnu::gcj::xlib::GC::clearArea(jint x, jint y, jint w, jint h, void gnu::gcj::xlib::GC::clearArea(jint x, jint y, jint w, jint h,
jboolean exposures) jboolean exposures)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment