[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: graydon's awt fixes

Kaffe CVS cvs-commits at kaffe.org
Mon Feb 14 12:06:40 PST 2005


PatchSet 5538 
Date: 2005/02/14 20:01:18
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: graydon's awt fixes


2005-02-14  Dalibor Topic  <robilad at kaffe.org>

Resynced with GNU Classpath.

2005-02-12  Graydon Hoare  <graydon at redhat.com>

* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java: Add.

2005-02-12  Graydon Hoare  <graydon at redhat.com>

* gnu/java/awt/peer/gtk/GdkFontPeer.java
(getGlyphVector):
(getFontMetrics):
(getTextMetrics): New native methods.
* gnu/java/awt/peer/gtk/GdkFontMetrics.java: Remove native parts.
* gnu/java/awt/peer/gtk/GdkGlyphVector.java: Likewise.
* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
Hold reference to GtkToolkit.
* gnu/java/awt/peer/gtk/GdkGraphics2D.java
(cairoSetFont):
(cairoDrawGdkTextLayout):
(cairoDrawString):
(getPeerTextMetrics):
(getPeerFontMetrics): Remove.
(setFont): Don't call cairoSetFont.
(cairoDrawGlyphVector): Accept font peer argument.
(drawGlyphVector): Pass font peer to cairoDrawGlyphVector.
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
(finalize): Call finish from here.
(produce): Not from here.
* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java:
Hold reference to GdkGraphicsEnvironment.
* gnu/java/awt/peer/gtk/GtkToolkit.java:
(getFontMetrics): Change locking.
(getBounds): New method.
(getLocalGraphicsEnvironment): Pass reference to this.

* include/Makefile.am: Remove entries for GdkFontMetrics, GdkGlyphVector.
* include/gnu_java_awt_peer_gtk_GdkFontMetrics.h: Remove.
* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerate.
* include/gnu_java_awt_peer_gtk_GdkGlyphVector.h: Remove.
* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Regenerate.

* native/jni/gtk-peer/Makefile.am
Remove entries for GdkFontMetrics, GdkGlyphVector.
* native/jni/gtk-peer/gdkfont.h: Add #defines, remove struct glyphvec.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
(ensure_metrics_cairo):
(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFont):
(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawString):
(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics):
(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics):
(metrics_cairo):
(metrics_surface): Remove.
(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector):
Pass and install font peer.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c:
Release GDK lock while performing upcalls.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Remove.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics):
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics): New methods.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Remove.

Members: 
	ChangeLog:1.3582->1.3583 
	include/Makefile.am:1.90->1.91 
	include/Makefile.in:1.215->1.216 
	libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am:1.11->1.12 
	libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in:1.27->1.28 
	libraries/clib/awt/classpath-gtk/gtk-peer/gdkfont.h:1.3->1.4 
	libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c:1.4->1.5(DEAD) 
	libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:1.5->1.6 
	libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c:1.5->1.6(DEAD) 
	libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:1.10->1.11 
	libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c:1.7->1.8 
	libraries/javalib/Makefile.am:1.309->1.310 
	libraries/javalib/Makefile.in:1.395->1.396 
	libraries/javalib/all.files:1.89->1.90 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkFontMetrics.java:1.2->1.3 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkFontPeer.java:1.3->1.4 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkGlyphVector.java:1.4->1.5 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java:1.14->1.15 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java:INITIAL->1.1 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:1.5->1.6 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:1.5->1.6 
	libraries/javalib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java:1.1->1.2 
	libraries/javalib/gnu/java/awt/peer/gtk/GtkToolkit.java:1.12->1.13 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3582 kaffe/ChangeLog:1.3583
--- kaffe/ChangeLog:1.3582	Mon Feb 14 19:00:23 2005
+++ kaffe/ChangeLog	Mon Feb 14 20:01:18 2005
@@ -1,6 +1,71 @@
 2005-02-14  Dalibor Topic  <robilad at kaffe.org>
 
 	Resynced with GNU Classpath.
+	
+	2005-02-12  Graydon Hoare  <graydon at redhat.com>
+
+	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java: Add.
+
+	2005-02-12  Graydon Hoare  <graydon at redhat.com>
+
+	* gnu/java/awt/peer/gtk/GdkFontPeer.java
+	(getGlyphVector):
+	(getFontMetrics):
+	(getTextMetrics): New native methods.
+	* gnu/java/awt/peer/gtk/GdkFontMetrics.java: Remove native parts.
+	* gnu/java/awt/peer/gtk/GdkGlyphVector.java: Likewise.
+	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java: 
+	Hold reference to GtkToolkit.
+	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
+	(cairoSetFont):
+	(cairoDrawGdkTextLayout):
+	(cairoDrawString): 
+	(getPeerTextMetrics):
+	(getPeerFontMetrics): Remove.
+	(setFont): Don't call cairoSetFont.
+	(cairoDrawGlyphVector): Accept font peer argument.
+	(drawGlyphVector): Pass font peer to cairoDrawGlyphVector.
+	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
+	(finalize): Call finish from here.
+	(produce): Not from here.
+	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java:
+	Hold reference to GdkGraphicsEnvironment.
+	* gnu/java/awt/peer/gtk/GtkToolkit.java:
+	(getFontMetrics): Change locking.
+	(getBounds): New method.
+	(getLocalGraphicsEnvironment): Pass reference to this.
+
+	* include/Makefile.am: Remove entries for GdkFontMetrics, GdkGlyphVector.
+	* include/gnu_java_awt_peer_gtk_GdkFontMetrics.h: Remove.
+	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerate.
+	* include/gnu_java_awt_peer_gtk_GdkGlyphVector.h: Remove.
+	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Regenerate.
+
+	* native/jni/gtk-peer/Makefile.am
+	Remove entries for GdkFontMetrics, GdkGlyphVector.
+	* native/jni/gtk-peer/gdkfont.h: Add #defines, remove struct glyphvec.
+	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
+	(ensure_metrics_cairo):
+	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFont):
+	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawString):
+	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics):
+	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics):
+	(metrics_cairo):
+	(metrics_surface): Remove.
+	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector):
+	Pass and install font peer.
+	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c:
+	Release GDK lock while performing upcalls.
+	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Remove.
+	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
+	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): 
+	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics): New methods.
+	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Remove.
+	
+2005-02-14  Dalibor Topic  <robilad at kaffe.org>
+
+	Resynced with GNU Classpath.
 
 	2005-02-11  Craig Black  <craig.black at aonix.com>
 
Index: kaffe/include/Makefile.am
diff -u kaffe/include/Makefile.am:1.90 kaffe/include/Makefile.am:1.91
--- kaffe/include/Makefile.am:1.90	Fri Feb 11 04:56:20 2005
+++ kaffe/include/Makefile.am	Mon Feb 14 20:01:21 2005
@@ -150,9 +150,7 @@
 	gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
 
 LIBGTKPEER_JNI_HDRS = \
-	gnu_java_awt_peer_gtk_GdkFontMetrics.h \
 	gnu_java_awt_peer_gtk_GdkFontPeer.h \
-	gnu_java_awt_peer_gtk_GdkGlyphVector.h \
 	gnu_java_awt_peer_gtk_GdkGraphics.h \
 	gnu_java_awt_peer_gtk_GdkGraphics2D.h \
 	gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \
Index: kaffe/include/Makefile.in
diff -u kaffe/include/Makefile.in:1.215 kaffe/include/Makefile.in:1.216
--- kaffe/include/Makefile.in:1.215	Sun Feb 13 21:55:25 2005
+++ kaffe/include/Makefile.in	Mon Feb 14 20:01:23 2005
@@ -505,9 +505,7 @@
 	gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
 
 LIBGTKPEER_JNI_HDRS = \
-	gnu_java_awt_peer_gtk_GdkFontMetrics.h \
 	gnu_java_awt_peer_gtk_GdkFontPeer.h \
-	gnu_java_awt_peer_gtk_GdkGlyphVector.h \
 	gnu_java_awt_peer_gtk_GdkGraphics.h \
 	gnu_java_awt_peer_gtk_GdkGraphics2D.h \
 	gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am:1.11 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am:1.12
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am:1.11	Sun Jan 23 18:48:38 2005
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am	Mon Feb 14 20:01:24 2005
@@ -3,7 +3,6 @@
 # Gtk/Cairo JNI sources.
 if GTK_CAIRO
 gtk_cairo_c_source_files = \
-	gnu_java_awt_peer_gtk_GdkGlyphVector.c \
 	gnu_java_awt_peer_gtk_GdkGraphics2D.c
 endif
 
@@ -12,7 +11,6 @@
 	gdkfont.h \
 	gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
 	gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h \
-	gnu_java_awt_peer_gtk_GdkFontMetrics.c \
 	gnu_java_awt_peer_gtk_GdkFontPeer.c \
 	gnu_java_awt_peer_gtk_GdkGraphics.c \
 	gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c \
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in:1.27 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in:1.28
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in:1.27	Sun Feb 13 21:56:01 2005
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in	Mon Feb 14 20:01:24 2005
@@ -78,11 +78,9 @@
 am__DEPENDENCIES_1 =  \
 	$(top_builddir)/libraries/clib/classpath/libclasspath.la
 am__libgtkpeer_la_SOURCES_DIST =  \
-	gnu_java_awt_peer_gtk_GdkGlyphVector.c \
 	gnu_java_awt_peer_gtk_GdkGraphics2D.c gdkfont.h \
 	gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
 	gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h \
-	gnu_java_awt_peer_gtk_GdkFontMetrics.c \
 	gnu_java_awt_peer_gtk_GdkFontPeer.c \
 	gnu_java_awt_peer_gtk_GdkGraphics.c \
 	gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c \
@@ -119,11 +117,9 @@
 	gnu_java_awt_peer_gtk_GtkToolkit.c \
 	gnu_java_awt_peer_gtk_GtkWindowPeer.c gthread-jni.c \
 	gthread-jni.h gtkpeer.h
- at GTK_CAIRO_TRUE@am__objects_1 = libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo \
- at GTK_CAIRO_TRUE@	libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo
+ at GTK_CAIRO_TRUE@am__objects_1 = libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo
 am_libgtkpeer_la_OBJECTS = $(am__objects_1) \
 	libgtkpeer_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo \
-	libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
 	libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo \
 	libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics.lo \
 	libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.lo \
@@ -455,7 +451,6 @@
 
 # Gtk/Cairo JNI sources.
 @GTK_CAIRO_TRUE at gtk_cairo_c_source_files = \
- at GTK_CAIRO_TRUE@	gnu_java_awt_peer_gtk_GdkGlyphVector.c \
 @GTK_CAIRO_TRUE@	gnu_java_awt_peer_gtk_GdkGraphics2D.c
 
 libgtkpeer_la_SOURCES = \
@@ -463,7 +458,6 @@
 	gdkfont.h \
 	gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
 	gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h \
-	gnu_java_awt_peer_gtk_GdkFontMetrics.c \
 	gnu_java_awt_peer_gtk_GdkFontPeer.c \
 	gnu_java_awt_peer_gtk_GdkGraphics.c \
 	gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c \
@@ -598,9 +592,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontPeer.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.Plo at am__quote@
@@ -659,13 +651,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
-libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo: gnu_java_awt_peer_gtk_GdkGlyphVector.c
- at am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -MT libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo -MD -MP -MF "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Tpo" -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo `test -f 'gnu_java_awt_peer_gtk_GdkGlyphVector.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GdkGlyphVector.c; \
- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Tpo" "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Plo"; else rm -f "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Tpo"; exit 1; fi
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gnu_java_awt_peer_gtk_GdkGlyphVector.c' object='libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo `test -f 'gnu_java_awt_peer_gtk_GdkGlyphVector.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GdkGlyphVector.c
-
 libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo: gnu_java_awt_peer_gtk_GdkGraphics2D.c
 @am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -MT libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo -MD -MP -MF "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.Tpo" -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo `test -f 'gnu_java_awt_peer_gtk_GdkGraphics2D.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GdkGraphics2D.c; \
 @am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.Tpo" "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.Plo"; else rm -f "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkGraphics2D.Tpo"; exit 1; fi
@@ -679,13 +664,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c' object='libgtkpeer_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo `test -f 'gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
-
-libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo: gnu_java_awt_peer_gtk_GdkFontMetrics.c
- at am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -MT libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo -MD -MP -MF "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Tpo" -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo `test -f 'gnu_java_awt_peer_gtk_GdkFontMetrics.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GdkFontMetrics.c; \
- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Tpo" "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Plo"; else rm -f "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Tpo"; exit 1; fi
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gnu_java_awt_peer_gtk_GdkFontMetrics.c' object='libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo `test -f 'gnu_java_awt_peer_gtk_GdkFontMetrics.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GdkFontMetrics.c
 
 libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo: gnu_java_awt_peer_gtk_GdkFontPeer.c
 @am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgtkpeer_la_CPPFLAGS) $(CPPFLAGS) $(libgtkpeer_la_CFLAGS) $(CFLAGS) -MT libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo -MD -MP -MF "$(DEPDIR)/libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontPeer.Tpo" -c -o libgtkpeer_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo `test -f 'gnu_java_awt_peer_gtk_GdkFontPeer.c' || echo '$(srcdir)/'`gnu_java_awt_peer_gtk_GdkFontPeer.c; \
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gdkfont.h
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gdkfont.h:1.3 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gdkfont.h:1.4
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gdkfont.h:1.3	Sun Oct 10 16:28:45 2004
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gdkfont.h	Mon Feb 14 20:01:24 2005
@@ -102,6 +102,21 @@
 #define TEXT_METRICS_Y_ADVANCE 5
 #define NUM_TEXT_METRICS 6
 
+#define NUM_GLYPH_METRICS 10
+
+#define GLYPH_LOG_X(i)      (NUM_GLYPH_METRICS * (i)    )
+#define GLYPH_LOG_Y(i)      (NUM_GLYPH_METRICS * (i) + 1)
+#define GLYPH_LOG_WIDTH(i)  (NUM_GLYPH_METRICS * (i) + 2)
+#define GLYPH_LOG_HEIGHT(i) (NUM_GLYPH_METRICS * (i) + 3)
+
+#define GLYPH_INK_X(i)      (NUM_GLYPH_METRICS * (i) + 4)
+#define GLYPH_INK_Y(i)      (NUM_GLYPH_METRICS * (i) + 5)
+#define GLYPH_INK_WIDTH(i)  (NUM_GLYPH_METRICS * (i) + 6)
+#define GLYPH_INK_HEIGHT(i) (NUM_GLYPH_METRICS * (i) + 7)
+
+#define GLYPH_POS_X(i)      (NUM_GLYPH_METRICS * (i) + 8)
+#define GLYPH_POS_Y(i)      (NUM_GLYPH_METRICS * (i) + 9)
+
 struct peerfont
 {
   PangoFont *font;
@@ -117,16 +132,6 @@
    * to invoke. 
    */
   void *graphics_resource;
-};
-
-struct glyphvec 
-{
-  /* the GList is list of PangoGlyphItems, each of which is a pair of 1
-     PangoItem and 1 PangoGlyphString. */
-  GList *glyphitems;
-  PangoFontDescription *desc;
-  PangoFont *font;
-  PangoContext *ctx;
 };
 
 struct textlayout
===================================================================
Checking out kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
RCS:  /home/cvs/kaffe/kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Attic/gnu_java_awt_peer_gtk_GdkFontMetrics.c,v
VERS: 1.4
***************
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c	Mon Feb 14 20:06:40 2005
+++ /dev/null	Sun Aug  4 19:57:58 2002
@@ -1,115 +0,0 @@
-/* gdkfontmetrics.c
-   Copyright (C) 1999, 2003, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-#include "gtkpeer.h"
-#include "gdkfont.h"
-
-#include "gnu_java_awt_peer_gtk_GdkFontMetrics.h"
-#include <gdk/gdkx.h>
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerFontMetrics
-   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font, jdoubleArray java_metrics)
-{
-  struct peerfont *pfont = NULL;
-  jdouble *native_metrics = NULL;
-  PangoFontMetrics *pango_metrics;
-
-  gdk_threads_enter();
-
-  pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
-  g_assert (pfont != NULL);
-
-  pango_metrics = pango_context_get_metrics (pfont->ctx, pfont->desc,
-                                             gtk_get_default_language ());
-
-  native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
-  g_assert (native_metrics != NULL);
-
-  native_metrics[FONT_METRICS_ASCENT] = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics));
-  native_metrics[FONT_METRICS_MAX_ASCENT] = native_metrics[FONT_METRICS_ASCENT];
-  native_metrics[FONT_METRICS_DESCENT] = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics));
-  if (native_metrics[FONT_METRICS_DESCENT] < 0)
-    native_metrics[FONT_METRICS_DESCENT] = - native_metrics[FONT_METRICS_DESCENT];
-  native_metrics[FONT_METRICS_MAX_DESCENT] = native_metrics[FONT_METRICS_DESCENT];
-  native_metrics[FONT_METRICS_MAX_ADVANCE] = PANGO_PIXELS (pango_font_metrics_get_approximate_char_width (pango_metrics));
-	 
-  (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
-
-  pango_font_metrics_unref (pango_metrics);
-
-  gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerTextMetrics
-   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font, jstring str, jdoubleArray java_metrics)
-{
-  struct peerfont *pfont = NULL;
-  const char *cstr = NULL;
-  jdouble *native_metrics = NULL;  
-  PangoRectangle log;
-
-  gdk_threads_enter();
-
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
-  g_assert (pfont != NULL);
-
-  cstr = (*env)->GetStringUTFChars (env, str, NULL);
-  g_assert(cstr != NULL);
-
-  pango_layout_set_text (pfont->layout, cstr, -1);
-  pango_layout_get_extents (pfont->layout, NULL, &log);
-
-  (*env)->ReleaseStringUTFChars (env, str, cstr);  
-  pango_layout_set_text (pfont->layout, "", -1);
-
-  native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
-  g_assert (native_metrics != NULL);
-
-  native_metrics[TEXT_METRICS_X_BEARING] = PANGO_PIXELS(log.x);
-  native_metrics[TEXT_METRICS_Y_BEARING] = PANGO_PIXELS(log.y);
-  native_metrics[TEXT_METRICS_WIDTH] = PANGO_PIXELS(log.width);
-  native_metrics[TEXT_METRICS_HEIGHT] = PANGO_PIXELS(log.height);
-  native_metrics[TEXT_METRICS_X_ADVANCE] = PANGO_PIXELS(log.x + log.width);
-  native_metrics[TEXT_METRICS_Y_ADVANCE] = PANGO_PIXELS(log.y + log.height);
-	 
-  (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
-
-  gdk_threads_leave();
-}
-
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:1.5 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:1.6
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:1.5	Mon Dec 20 02:34:53 2004
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c	Mon Feb 14 20:01:24 2005
@@ -40,23 +40,6 @@
 
 struct state_table *native_font_state_table;
 
-/*
-rough sketch of the mapping between java and 
-pango text objects:
-  
-  Font              <->    - PangoFont
-                           - PangoFontDescription
-                           - PangoContext
-                           - PangoLayout (for rendering and measuring)
-
-  GlyphVector       <->    - GList of PangoGlyphItem
-                           - PangoFontDescription
-                           - PangoContext
-
-  FontRenderContext <->    stays in plain java
-
-*/
-
 enum java_awt_font_style {
   java_awt_font_PLAIN = 0,
   java_awt_font_BOLD = 1,
@@ -69,11 +52,22 @@
   java_awt_font_HANGING_BASELINE = 2
 };
 
+static jmethodID glyphVector_ctor;
+static jclass glyphVector_class;
+static PangoAttrList *attrs = NULL;
+
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState 
   (JNIEnv *env, jclass clazz)
 {
   NSA_FONT_INIT (env, clazz);
+
+  glyphVector_class = (*env)->FindClass 
+    (env, "gnu/java/awt/peer/gtk/GdkGlyphVector");
+
+  glyphVector_ctor = (*env)->GetMethodID 
+    (env, glyphVector_class, "<init>", 
+     "([D[ILjava/awt/Font;Ljava/awt/font/FontRenderContext;)V");
 }
 
 JNIEXPORT void JNICALL
@@ -111,6 +105,223 @@
   gdk_threads_leave ();
 }
 
+
+JNIEXPORT jobject JNICALL
+Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector
+  (JNIEnv *env, jobject self, 
+   jstring chars,
+   jobject font, 
+   jobject fontRenderContext)
+{
+  struct peerfont *pfont = NULL;
+  GList *items = NULL, *i = NULL;
+  gchar *str = NULL;
+  int len, j;
+  double *native_extents;
+  int *native_codes;
+  jintArray java_codes = NULL;
+  jdoubleArray java_extents = NULL;
+
+  gdk_threads_enter ();
+
+  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self);
+  g_assert (pfont != NULL);
+
+  len = (*gdk_env())->GetStringUTFLength (env, chars);  
+  str = (gchar *)(*env)->GetStringUTFChars (env, chars, NULL);
+  g_assert (str != NULL);
+
+  if (attrs == NULL)
+    attrs = pango_attr_list_new ();
+
+  if (len > 0 && str[len-1] == '\0')
+    len--;
+  
+  items = pango_itemize (pfont->ctx, str, 0, len, attrs, NULL);
+
+  i = g_list_first (items);
+
+  if (i == NULL)       
+    {
+      java_extents = (*env)->NewDoubleArray (env, 0);
+      java_codes = (*env)->NewIntArray (env, 0);
+    }
+  else
+    { 
+      PangoGlyphString *glyphs;
+      PangoItem *item = (PangoItem *)i->data;
+
+      pango_context_set_font_description (pfont->ctx, pfont->desc);
+      pango_context_set_language (pfont->ctx, gtk_get_default_language());
+      pango_context_load_font (pfont->ctx, pfont->desc);
+
+      glyphs = pango_glyph_string_new ();
+      g_assert (glyphs != NULL);
+
+      pango_shape (str + item->offset, item->length, 
+		   &(item->analysis), glyphs);
+
+      if (glyphs->num_glyphs > 0)
+	{
+	  int x = 0;
+	  double scale = ((double) PANGO_SCALE);
+
+	  java_extents = (*env)->NewDoubleArray (env, glyphs->num_glyphs * NUM_GLYPH_METRICS);
+	  java_codes = (*env)->NewIntArray (env, glyphs->num_glyphs);
+	  native_extents = (*env)->GetDoubleArrayElements (env, java_extents, NULL);
+	  native_codes = (*env)->GetIntArrayElements (env, java_codes, NULL);
+
+	  for (j = 0; j < glyphs->num_glyphs; ++j)
+	    {
+	      PangoRectangle ink;
+	      PangoRectangle logical;
+	      PangoGlyphGeometry *geom = &glyphs->glyphs[j].geometry;
+
+	      pango_font_get_glyph_extents (pfont->font, 
+					    glyphs->glyphs[j].glyph,
+					    &ink, &logical);
+
+	      native_codes[j] = glyphs->glyphs[j].glyph;
+
+	      native_extents[ GLYPH_LOG_X(j)      ] = (logical.x)      / scale;
+	      native_extents[ GLYPH_LOG_Y(j)      ] = (- logical.y)    / scale;
+	      native_extents[ GLYPH_LOG_WIDTH(j)  ] = (logical.width)  / scale;
+	      native_extents[ GLYPH_LOG_HEIGHT(j) ] = (logical.height) / scale;
+
+	      native_extents[ GLYPH_INK_X(j)      ] = (ink.x)       / scale;
+	      native_extents[ GLYPH_INK_Y(j)      ] = (- ink.y)     / scale;
+	      native_extents[ GLYPH_INK_WIDTH(j)  ] = (ink.width)   / scale;
+	      native_extents[ GLYPH_INK_HEIGHT(j) ] = (ink.height)  / scale;
+
+	      native_extents[ GLYPH_POS_X(j)      ] = (x + geom->x_offset)  / scale;
+	      native_extents[ GLYPH_POS_Y(j)      ] = (  - geom->y_offset)  / scale;
+
+	      x += geom->width;
+	    }
+	  (*env)->ReleaseDoubleArrayElements (env, java_extents, native_extents, 0);
+	  (*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
+	}
+
+      pango_glyph_string_free (glyphs);
+    }
+
+  (*env)->ReleaseStringUTFChars (env, chars, str);
+  
+  for (i = g_list_first (items); i != NULL; i = g_list_next (i))
+    g_free (i->data);
+  
+  g_list_free (items);
+
+  gdk_threads_leave ();
+
+  return (*env)->NewObject (env, 
+			    glyphVector_class, 
+			    glyphVector_ctor, 
+			    java_extents, java_codes,
+			    font, fontRenderContext);
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics
+   (JNIEnv *env, jobject java_font, jdoubleArray java_metrics)
+{
+  struct peerfont *pfont = NULL;
+  jdouble *native_metrics = NULL;
+  PangoFontMetrics *pango_metrics;
+
+  gdk_threads_enter();
+
+  pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
+  g_assert (pfont != NULL);
+
+  pango_metrics 
+    = pango_context_get_metrics (pfont->ctx, pfont->desc,
+				 gtk_get_default_language ());
+
+  native_metrics 
+    = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
+
+  g_assert (native_metrics != NULL);
+
+  native_metrics[FONT_METRICS_ASCENT] 
+    = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics));
+
+  native_metrics[FONT_METRICS_MAX_ASCENT] 
+    = native_metrics[FONT_METRICS_ASCENT];
+
+  native_metrics[FONT_METRICS_DESCENT] 
+    = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics));
+
+  if (native_metrics[FONT_METRICS_DESCENT] < 0)
+    native_metrics[FONT_METRICS_DESCENT] 
+      = - native_metrics[FONT_METRICS_DESCENT];
+
+  native_metrics[FONT_METRICS_MAX_DESCENT] 
+    = native_metrics[FONT_METRICS_DESCENT];
+
+  native_metrics[FONT_METRICS_MAX_ADVANCE] 
+    = PANGO_PIXELS (pango_font_metrics_get_approximate_char_width 
+		    (pango_metrics));
+	 
+  (*env)->ReleaseDoubleArrayElements (env, 
+				      java_metrics, 
+				      native_metrics, 0);
+
+  pango_font_metrics_unref (pango_metrics);
+
+  gdk_threads_leave();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
+   (JNIEnv *env, jobject java_font, jstring str, jdoubleArray java_metrics)
+{
+  struct peerfont *pfont = NULL;
+  const char *cstr = NULL;
+  jdouble *native_metrics = NULL;  
+  PangoRectangle log;
+
+  gdk_threads_enter();
+
+  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
+  g_assert (pfont != NULL);
+
+  cstr = (*env)->GetStringUTFChars (env, str, NULL);
+  g_assert(cstr != NULL);
+
+  pango_layout_set_text (pfont->layout, cstr, -1);
+  pango_layout_get_extents (pfont->layout, NULL, &log);
+
+  (*env)->ReleaseStringUTFChars (env, str, cstr);  
+  pango_layout_set_text (pfont->layout, "", -1);
+
+  native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
+  g_assert (native_metrics != NULL);
+
+  native_metrics[TEXT_METRICS_X_BEARING] 
+    = PANGO_PIXELS( ((double)log.x) );
+
+  native_metrics[TEXT_METRICS_Y_BEARING] 
+    = PANGO_PIXELS( ((double)log.y) );
+
+  native_metrics[TEXT_METRICS_WIDTH] 
+    = PANGO_PIXELS( ((double)log.width) );
+
+  native_metrics[TEXT_METRICS_HEIGHT] 
+    = PANGO_PIXELS( ((double)log.height) );
+
+  native_metrics[TEXT_METRICS_X_ADVANCE] 
+    = PANGO_PIXELS( ((double) (log.x + log.width)) );
+
+  native_metrics[TEXT_METRICS_Y_ADVANCE] 
+    = PANGO_PIXELS( ((double) (log.y + log.height)) );
+	 
+  (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
+
+  gdk_threads_leave();
+}
+
+
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
   (JNIEnv *env, jobject self, jstring family_name_str, jint style_int, jint size, jboolean useGraphics2D)
@@ -142,7 +353,6 @@
   pango_font_description_set_family (pfont->desc, family_name);
   (*env)->ReleaseStringUTFChars(env, family_name_str, family_name);
 
-  pango_font_description_set_size (pfont->desc, size * dpi_conversion_factor);
 
   if (style & java_awt_font_BOLD)
     pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD);
@@ -152,6 +362,7 @@
 
   if (useGraphics2D)
     {
+      pango_font_description_set_size (pfont->desc, size * PANGO_SCALE);
       if (pfont->ctx == NULL)
 	{
 	  ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_for_display ());
@@ -160,6 +371,9 @@
     }
   else
     {
+      /* GDK uses a slightly different DPI setting. */
+      pango_font_description_set_size (pfont->desc, 
+				       size * dpi_conversion_factor);
       if (pfont->ctx == NULL)
 	pfont->ctx = gdk_pango_context_get();
     }
===================================================================
Checking out kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
RCS:  /home/cvs/kaffe/kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/Attic/gnu_java_awt_peer_gtk_GdkGlyphVector.c,v
VERS: 1.5
***************
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c	Mon Feb 14 20:06:40 2005
+++ /dev/null	Sun Aug  4 19:57:58 2002
@@ -1,696 +0,0 @@
-/* gdkglyphvector.c
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-   
-   This file is part of GNU Classpath.
-   
-   GNU Classpath is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-   
-   GNU Classpath is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with GNU Classpath; see the file COPYING.  If not, write to the
-   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.
-   
-   Linking this library statically or dynamically with other modules is
-   making a combined work based on this library.  Thus, the terms and
-   conditions of the GNU General Public License cover the whole
-   combination.
-   
-   As a special exception, the copyright holders of this library give you
-   permission to link this library with independent modules to produce an
-   executable, regardless of the license terms of these independent
-   modules, and to copy and distribute the resulting executable under
-   terms of your choice, provided that you also meet, for each linked
-   independent module, the terms and conditions of the license of that
-   module.  An independent module is a module which is not derived from
-   or based on this library.  If you modify this library, you may extend
-   this exception to your version of the library, but you are not
-   obligated to do so.  If you do not wish to do so, delete this
-   exception statement from your version. */
-
-#include "gdkfont.h"
-#include "gnu_java_awt_peer_gtk_GdkGlyphVector.h"
-
-struct state_table *native_glyphvector_state_table;
-
-typedef struct { 
-  double x;
-  double y;
-  double width;
-  double height;
-} rect_t;
-
-#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0))
-#define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0)
-#define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0))
-#define DOUBLE_FROM_16_16(t) ((double)(t) / 65536.0)
- 
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initStaticState 
-  (JNIEnv *env, jclass clazz)
-{
-  NSA_GV_INIT (env, clazz);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initState
-  (JNIEnv *env, jobject self, jobject font, jobject ctx __attribute__ ((unused)))
-{
-  struct glyphvec *vec = NULL;
-  struct peerfont *pfont = NULL;
-
-  gdk_threads_enter ();
-  g_assert (font != NULL);
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
-  g_assert (pfont != NULL);
-  g_assert (pfont->ctx != NULL);
-  g_assert (pfont->desc != NULL);
-
-  g_assert (self != NULL);
-  vec = (struct glyphvec *) g_malloc0 (sizeof (struct glyphvec));
-  g_assert (vec != NULL);
-
-  vec->desc = pango_font_describe (pfont->font); 
-  g_assert (vec->desc != NULL);
-
-  vec->font = pfont->font;
-  g_object_ref (vec->font);
-    
-  vec->ctx = pfont->ctx;
-  g_object_ref (vec->ctx);
-
-  NSA_SET_GV_PTR (env, self, vec);
-  gdk_threads_leave ();
-}
-
-static void free_glyphitems (GList *list)
-{
-  GList *i = NULL;
-  PangoGlyphItem *gi = NULL;
-
-  for (i = g_list_first (list); i != NULL; i = g_list_next (i))
-    {
-      g_assert (i->data != NULL);
-      gi = (PangoGlyphItem *)i->data;
-
-      if (gi->glyphs != NULL)
-	pango_glyph_string_free (gi->glyphs);
-
-      if (gi->item != NULL)
-	g_free (gi->item);
-    }      
-  g_list_free (list);
-}
-
-static void seek_glyphstring_idx (GList *list, int idx, 
-				  int *nidx, 
-				  PangoGlyphString **gs,
-				  PangoFont **fnt)
-{
-  GList *i = NULL;
-  PangoGlyphItem *gi = NULL;
-  int begin = 0;
-
-  g_assert (list != NULL);
-  g_assert (gs != NULL);
-  g_assert (nidx != NULL);
-
- 
-  for (i = g_list_first (list); i != NULL; i = g_list_next (i))
-    {
-      g_assert (i->data != NULL);
-      gi = (PangoGlyphItem *)i->data;
-
-      g_assert (gi->glyphs != NULL);
-      
-      if (begin <= idx && idx < begin + gi->glyphs->num_glyphs)
-	{	  
-	  *gs = gi->glyphs;
-	  *nidx = idx - begin;
-	  if (fnt && gi->item)
-	    *fnt = gi->item->analysis.font;
-	  return;
-	}
-      else
-	{
-	  begin += gi->glyphs->num_glyphs;
-	}
-    }
-  *gs = NULL;
-  *nidx = -1;
-}
-
-static void seek_glyph_idx (GList *list, int idx, 
-			    PangoGlyphInfo **g,
-			    PangoFont **fnt)
-{
-  PangoGlyphString *gs = NULL;
-  int nidx = -1;
-
-  g_assert (list != NULL);
-  g_assert (g != NULL);
-
-  seek_glyphstring_idx (list, idx, &nidx, &gs, fnt);
-
-  g_assert (gs != NULL);
-  g_assert (nidx != -1);
-  g_assert (nidx < gs->num_glyphs);
-  g_assert (gs->glyphs != NULL);
-
-  *g = gs->glyphs + nidx;
-}
-
-static void union_rects (rect_t *r1, 
-			 const rect_t *r2)
-{
-  rect_t r;
-
-  g_assert (r1 != NULL);
-  g_assert (r2 != NULL);
-
-  /* 
-     x is the left edge of the rect,
-     y is the top edge of the rect
-  */
-
-#ifndef min
-#define min(x,y) ((x) < (y) ? (x) : (y))
-#endif
-
-#ifndef max
-#define max(x,y) ((x) < (y) ? (y) : (x))
-#endif
-
-  r.x = min(r1->x, r2->x);
-
-  r.y = min(r1->y, r2->y);
-
-  r.width = max(r1->x + r1->width,
-		r2->x + r2->width) - r.x;
-
-  r.height = max(r1->y + r1->height,
-		 r2->y + r2->height) - r.y;
-
-  *r1 = r;  
-}
-
-static jdoubleArray rect_to_array (JNIEnv *env, const rect_t *r)
-{
-  /* We often return rectangles as arrays : { x, y, w, h } */
-  jdoubleArray ret;
-  double *rp = NULL;
-  g_assert (r != NULL);
-  ret = (*env)->NewDoubleArray (env, 4);
-  rp = (*env)->GetDoubleArrayElements (env, ret, NULL);
-  g_assert (rp != NULL);
-  rp[0] = r->x;
-  /* freetype and pango's view of space is upside down from java2d's */
-  rp[1] = r->y * -1;
-  rp[2] = r->width;
-  rp[3] = r->height;
-  (*env)->ReleaseDoubleArrayElements (env, ret, rp, 0);
-  return ret;

*** Patch too long, truncated ***




More information about the kaffe mailing list