commit-classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commit-cp] classpath ChangeLog gnu/java/awt/peer/gtk/Cairo...


From: Sven de Marothy
Subject: [commit-cp] classpath ChangeLog gnu/java/awt/peer/gtk/Cairo...
Date: Sat, 03 Jun 2006 22:47:03 +0000

CVSROOT:        /sources/classpath
Module name:    classpath
Changes by:     Sven de Marothy <smarothy>      06/06/03 22:47:03

Modified files:
        .              : ChangeLog 
        gnu/java/awt/peer/gtk: CairoGraphics2D.java 
        include        : gnu_java_awt_peer_gtk_CairoGraphics2D.h 
        native/jni/gtk-peer: gnu_java_awt_peer_gtk_CairoGraphics2D.c 

Log message:
        2006-06-02  Sven de Marothy  <address@hidden>
        
                * gnu/java/awt/peer/gtk/CairoGraphics2D.java
                (cairoPreserveClip, cairoResetClip): New methods.
                (setClip, clip): Reimplement.
                * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
                * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
                (cairoPreserveClip, cairoResetClip): New methods.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.7641&r2=1.7642
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java?cvsroot=classpath&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h?cvsroot=classpath&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c?cvsroot=classpath&r1=1.5&r2=1.6

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/classpath/classpath/ChangeLog,v
retrieving revision 1.7641
retrieving revision 1.7642
diff -u -b -r1.7641 -r1.7642
--- ChangeLog   3 Jun 2006 22:41:40 -0000       1.7641
+++ ChangeLog   3 Jun 2006 22:47:03 -0000       1.7642
@@ -1,5 +1,14 @@
 2006-06-02  Sven de Marothy  <address@hidden>
 
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (cairoPreserveClip, cairoResetClip): New methods.
+       (setClip, clip): Reimplement.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+       * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
+       (cairoPreserveClip, cairoResetClip): New methods.
+       
+2006-06-02  Sven de Marothy  <address@hidden>
+
        * gnu/java/awt/peer/gtk/VolatileImageGraphics.java
        * include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c

Index: gnu/java/awt/peer/gtk/CairoGraphics2D.java
===================================================================
RCS file: 
/sources/classpath/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- gnu/java/awt/peer/gtk/CairoGraphics2D.java  2 Jun 2006 22:57:31 -0000       
1.13
+++ gnu/java/awt/peer/gtk/CairoGraphics2D.java  3 Jun 2006 22:47:03 -0000       
1.14
@@ -411,6 +411,16 @@
   private native void cairoClip();
 
   /**
+   * Save clip
+   */
+  private native void cairoPreserveClip();
+
+  /** 
+   * Save clip
+   */
+  private native void cairoResetClip();
+
+  /**
    * Set interpolation types
    */
   private native void cairoSurfaceSetFilter(int filter);
@@ -518,32 +528,10 @@
 
   public void clip(Shape s)
   {
-    // update it
-    if (clip == null || s == null)
-      clip = s;
-    else if (s instanceof Rectangle2D && clip instanceof Rectangle2D)
-      {
-       Rectangle2D r = (Rectangle2D) s;
-       Rectangle2D curr = (Rectangle2D) clip;
-       clip = curr.createIntersection(r);
-      }
-    else
-      throw new UnsupportedOperationException();
-
-    // draw it
-    if (clip != null)
-      {
-       cairoNewPath();
-       if (clip instanceof Rectangle2D)
-         {
-           Rectangle2D r = (Rectangle2D) clip;
-           cairoRectangle(r.getX(), r.getY(), r.getWidth(), r.getHeight());
-         }
-       else
-         walkPath(clip.getPathIterator(null), false);
+    if( s == null )
+      setClip( originalClip );
 
-       cairoClip();
-      }
+    setClip(s);
   }
 
   public Paint getPaint()
@@ -706,17 +694,18 @@
 
   public void setClip(int x, int y, int width, int height)
   {
-    setClip(new Rectangle2D.Double((double) x, (double) y, (double) width,
-                                   (double) height));
+    if( width < 0 || height < 0 )
+      return;
+
+    setClip(new Rectangle2D.Double(x, y, width, height));
   }
 
   public void setClip(Shape s)
   {    
-    clip = s;
-
-    // The first time the clip is set, save it as the original clip to reset 
to on
-    // s == null. We can rely on this being non-null because the constructor 
in 
-    // subclasses is expected to set the initial clip properly.
+    // The first time the clip is set, save it as the original clip 
+    // to reset to on s == null. We can rely on this being non-null 
+    // because the constructor in subclasses is expected to set the 
+    // initial clip properly.
     if( firstClip )
       {
        originalClip = s;
@@ -725,6 +714,10 @@
 
     if (s == null)
       clip = originalClip;
+    else
+      clip = s;
+
+    cairoResetClip();
 
     cairoNewPath();
     if (clip instanceof Rectangle2D)
@@ -735,7 +728,6 @@
     else
       walkPath(clip.getPathIterator(null), false);
     
-    // cairoClosePath ();
     cairoClip();
   }
 

Index: include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
===================================================================
RCS file: 
/sources/classpath/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- include/gnu_java_awt_peer_gtk_CairoGraphics2D.h     29 May 2006 16:14:59 
-0000      1.1
+++ include/gnu_java_awt_peer_gtk_CairoGraphics2D.h     3 Jun 2006 22:47:03 
-0000       1.2
@@ -34,6 +34,8 @@
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoStroke 
(JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFill 
(JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip 
(JNIEnv *env, jobject);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip (JNIEnv *env, 
jobject);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip (JNIEnv *env, 
jobject);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter (JNIEnv *env, 
jobject, jint);
 
 #ifdef __cplusplus

Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
===================================================================
RCS file: 
/sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c 31 May 2006 
23:25:13 -0000      1.5
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c 3 Jun 2006 
22:47:03 -0000       1.6
@@ -590,11 +590,30 @@
 Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip 
    (JNIEnv *env, jobject obj)
 {
-  struct cairographics2d *gr = getPointer (env, obj);
+  struct cairographics2d *gr = getPointer( env, obj );
+  g_assert( gr != NULL );
+
+  cairo_clip( gr->cr );
+}
+
+JNIEXPORT void JNICALL 
+Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip 
+  (JNIEnv *env, jobject obj)
+{
+  struct cairographics2d *gr = getPointer( env, obj );
+  g_assert (gr != NULL);
+
+  cairo_reset_clip( gr->cr );
+}
+
+JNIEXPORT void JNICALL 
+Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip 
+(JNIEnv *env, jobject obj)
+{
+  struct cairographics2d *gr = getPointer( env, obj );
   g_assert (gr != NULL);
 
-  cairo_reset_clip (gr->cr);
-  cairo_clip (gr->cr);
+  cairo_clip_preserve( gr->cr );
 }
 
 JNIEXPORT void JNICALL




reply via email to

[Prev in Thread] Current Thread [Next in Thread]