--- a/jdk/make/sun/awt/FILES_export_windows.gmk Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/awt/FILES_export_windows.gmk Mon Oct 05 18:22:00 2009 -0700
@@ -1,249 +1,250 @@
-#
-# Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation. Sun designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Sun in the LICENSE file that accompanied this code.
-#
-# This code 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
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-# CA 95054 USA or visit www.sun.com if you need additional information or
-# have any questions.
-#
-
-# FILES_export definitions for Win32
-
-FILES_export = \
- java/awt/AlphaComposite.java \
- java/awt/MouseInfo.java \
- java/awt/Graphics.java \
- java/awt/Color.java \
- java/awt/Image.java \
- java/awt/Rectangle.java \
- java/awt/Event.java \
- java/awt/Font.java \
- java/awt/FontMetrics.java \
- java/awt/Toolkit.java \
- java/awt/Component.java \
- java/awt/Container.java \
- java/awt/Canvas.java \
- java/awt/Button.java \
- java/awt/List.java \
- java/awt/Adjustable.java \
- java/awt/Scrollbar.java \
- java/awt/ScrollPane.java \
- java/awt/ScrollPaneAdjustable.java \
- java/awt/Transparency.java \
- java/awt/Window.java \
- java/awt/TextField.java \
- java/awt/Label.java \
- java/awt/Choice.java \
- java/awt/TextComponent.java \
- java/awt/TextArea.java \
- java/awt/MenuBar.java \
- java/awt/Menu.java \
- java/awt/Dialog.java \
- java/awt/FileDialog.java \
- java/awt/MenuItem.java \
- java/awt/MenuComponent.java \
- java/awt/Checkbox.java \
- java/awt/CheckboxGroup.java \
- java/awt/CheckboxMenuItem.java \
- java/awt/Frame.java \
- java/awt/Insets.java \
- java/awt/Cursor.java \
- java/awt/Dimension.java \
- java/awt/PopupMenu.java \
- java/awt/AWTEvent.java \
- java/awt/AWTException.java \
- java/awt/AWTKeyStroke.java \
- java/awt/KeyboardFocusManager.java \
- java/awt/DisplayMode.java \
- java/awt/TrayIcon.java \
- java/awt/datatransfer/StringSelection.java \
- java/awt/datatransfer/Transferable.java \
- java/awt/dnd/DnDConstants.java \
- java/awt/event/ActionEvent.java \
- java/awt/event/AdjustmentEvent.java \
- java/awt/event/ComponentEvent.java \
- java/awt/event/FocusEvent.java \
- java/awt/event/ItemEvent.java \
- java/awt/event/InputEvent.java \
- java/awt/event/InvocationEvent.java \
- java/awt/event/KeyEvent.java \
- java/awt/event/MouseEvent.java \
- java/awt/event/MouseWheelEvent.java \
- java/awt/event/WindowEvent.java \
- java/awt/event/InputMethodEvent.java \
- java/awt/im/InputMethodHighlight.java \
- java/awt/im/spi/InputMethod.java \
- java/awt/font/TextHitInfo.java \
- java/text/AttributedCharacterIterator.java \
- java/text/AttributedString.java \
- java/awt/geom/PathIterator.java \
- java/awt/image/AffineTransformOp.java \
- java/awt/image/ImageConsumer.java \
- java/awt/image/ImageObserver.java \
- java/awt/image/BufferedImage.java \
- java/awt/image/ColorModel.java \
- java/awt/image/ConvolveOp.java \
- java/awt/image/DirectColorModel.java \
- java/awt/image/IndexColorModel.java \
- java/awt/image/Raster.java \
- java/awt/color/ColorSpace.java \
- java/awt/color/ICC_Profile.java \
- java/awt/peer/ComponentPeer.java \
- java/awt/peer/MenuComponentPeer.java \
- java/io/InputStream.java
-
-FILES_export2 = \
- sun/awt/im/InputMethodContext.java \
- sun/awt/EmbeddedFrame.java \
- sun/awt/KeyboardFocusManagerPeerImpl.java \
- sun/awt/windows/WEmbeddedFrame.java \
- sun/awt/windows/WEmbeddedFramePeer.java \
- sun/awt/Win32GraphicsEnvironment.java \
- sun/awt/Win32GraphicsDevice.java \
- sun/awt/Win32GraphicsConfig.java \
- sun/java2d/SunGraphicsEnvironment.java \
- sun/java2d/SunGraphics2D.java \
- sun/java2d/SurfaceData.java \
- sun/awt/image/IntegerComponentRaster.java \
- sun/awt/image/ImagingLib.java \
- sun/awt/image/BufImgSurfaceData.java \
- sun/awt/image/DataBufferNative.java \
- sun/awt/shell/Win32ShellFolder2.java \
- sun/java2d/windows/GDIBlitLoops.java \
- sun/java2d/windows/GDIRenderer.java \
- sun/java2d/windows/GDIWindowSurfaceData.java \
- sun/java2d/windows/WindowsFlags.java \
- sun/java2d/loops/Blit.java \
- sun/java2d/loops/BlitBg.java \
- sun/java2d/loops/ScaledBlit.java \
- sun/java2d/loops/FillRect.java \
- sun/java2d/loops/FillSpans.java \
- sun/java2d/loops/DrawGlyphList.java \
- sun/java2d/loops/DrawGlyphListAA.java \
- sun/java2d/loops/DrawGlyphListLCD.java \
- sun/java2d/loops/DrawLine.java \
- sun/java2d/loops/DrawRect.java \
- sun/java2d/loops/DrawPolygons.java \
- sun/java2d/loops/DrawPath.java \
- sun/java2d/loops/FillPath.java \
- sun/java2d/loops/MaskBlit.java \
- sun/java2d/loops/MaskFill.java \
- sun/java2d/loops/TransformHelper.java \
- sun/java2d/loops/GraphicsPrimitiveMgr.java \
- sun/java2d/loops/GraphicsPrimitive.java \
- sun/java2d/cmm/CMSManager.java \
- sun/java2d/cmm/PCMM.java \
- sun/java2d/cmm/ColorTransform.java \
- sun/awt/ScrollPaneWheelScroller.java \
- sun/awt/datatransfer/DataTransferer.java \
- sun/awt/datatransfer/SunClipboard.java \
- sun/awt/dnd/SunDragSourceContextPeer.java \
- sun/awt/windows/WToolkitThreadBlockedHandler.java
-
-FILES_export3 = \
- java/awt/CheckboxMenuItem.java \
- java/awt/Menu.java \
- java/awt/MenuBar.java \
- java/awt/MenuComponent.java \
- java/awt/MenuItem.java \
- sun/awt/PlatformFont.java \
- sun/awt/FontDescriptor.java \
- sun/awt/CharsetString.java \
- java/awt/image/DataBuffer.java \
- sun/awt/image/GifImageDecoder.java \
- sun/awt/image/ImageRepresentation.java \
- sun/awt/windows/WCustomCursor.java \
- sun/awt/windows/WDefaultFontCharset.java \
- sun/awt/windows/WButtonPeer.java \
- sun/awt/windows/WCanvasPeer.java \
- sun/awt/windows/WCheckboxPeer.java \
- sun/awt/windows/WCheckboxMenuItemPeer.java \
- sun/awt/windows/WChoicePeer.java \
- sun/awt/windows/WClipboard.java \
- sun/awt/windows/WColor.java \
- sun/awt/windows/WDataTransferer.java \
- sun/awt/windows/WDesktopPeer.java \
- sun/awt/windows/WDesktopProperties.java \
- sun/awt/windows/WDialogPeer.java \
- sun/awt/windows/WDragSourceContextPeer.java \
- sun/awt/windows/WDropTargetContextPeer.java \
- sun/awt/windows/WFileDialogPeer.java \
- sun/awt/windows/WFontPeer.java \
- sun/awt/windows/WFontMetrics.java \
- sun/awt/windows/WFramePeer.java \
- sun/awt/windows/WGlobalCursorManager.java \
- sun/awt/windows/WInputMethod.java \
- sun/awt/windows/WInputMethodDescriptor.java \
- sun/awt/windows/WComponentPeer.java \
- sun/awt/windows/WLabelPeer.java \
- sun/awt/windows/WListPeer.java \
- sun/awt/windows/WMenuBarPeer.java \
- sun/awt/windows/WMenuItemPeer.java \
- sun/awt/windows/WMenuPeer.java \
- sun/awt/windows/WObjectPeer.java \
- sun/awt/windows/WPopupMenuPeer.java \
- sun/awt/windows/WPrintDialog.java \
- sun/awt/windows/WPrintDialogPeer.java \
- sun/awt/windows/WPrinterJob.java \
- sun/awt/windows/WRobotPeer.java \
- sun/awt/windows/WScrollbarPeer.java \
- sun/awt/windows/WScrollPanePeer.java \
- sun/awt/windows/WTextAreaPeer.java \
- sun/awt/windows/WTextComponentPeer.java \
- sun/awt/windows/WTextFieldPeer.java \
- sun/awt/windows/WPanelPeer.java \
- sun/awt/windows/WToolkit.java \
- sun/awt/windows/WWindowPeer.java \
- sun/awt/windows/ThemeReader.java \
- sun/awt/windows/WBufferStrategy.java \
- sun/awt/windows/WTrayIconPeer.java \
- sun/awt/image/ImagingLib.java \
- sun/awt/ExtendedKeyCodes.java \
- sun/java2d/pipe/hw/AccelSurface.java \
- sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
- sun/java2d/pipe/hw/ContextCapabilities.java \
- sun/java2d/pipe/BufferedContext.java \
- sun/java2d/pipe/BufferedMaskBlit.java \
- sun/java2d/pipe/BufferedOpCodes.java \
- sun/java2d/pipe/BufferedPaints.java \
- sun/java2d/pipe/BufferedRenderPipe.java \
- sun/java2d/pipe/BufferedTextPipe.java \
- sun/java2d/pipe/RenderBuffer.java \
- sun/java2d/pipe/ShapeSpanIterator.java \
- sun/java2d/pipe/SpanClipRenderer.java \
- sun/java2d/pipe/RegionIterator.java \
- sun/java2d/opengl/OGLBlitLoops.java \
- sun/java2d/opengl/OGLContext.java \
- sun/java2d/opengl/OGLMaskFill.java \
- sun/java2d/opengl/OGLPaints.java \
- sun/java2d/opengl/OGLRenderQueue.java \
- sun/java2d/opengl/OGLRenderer.java \
- sun/java2d/opengl/OGLSurfaceData.java \
- sun/java2d/opengl/OGLTextRenderer.java \
- sun/java2d/opengl/WGLGraphicsConfig.java \
- sun/java2d/opengl/WGLSurfaceData.java \
- sun/java2d/d3d/D3DBlitLoops.java \
- sun/java2d/d3d/D3DGraphicsDevice.java \
- sun/java2d/d3d/D3DSurfaceData.java \
- sun/java2d/d3d/D3DMaskFill.java \
- sun/java2d/d3d/D3DPaints.java \
- sun/java2d/d3d/D3DRenderQueue.java \
- sun/java2d/d3d/D3DRenderer.java \
- sun/java2d/d3d/D3DTextRenderer.java \
- sun/java2d/d3d/D3DContext.java
+#
+# Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun in the LICENSE file that accompanied this code.
+#
+# This code 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
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# FILES_export definitions for Win32
+
+FILES_export = \
+ java/awt/AlphaComposite.java \
+ java/awt/MouseInfo.java \
+ java/awt/Graphics.java \
+ java/awt/Color.java \
+ java/awt/Image.java \
+ java/awt/Rectangle.java \
+ java/awt/Event.java \
+ java/awt/Font.java \
+ java/awt/FontMetrics.java \
+ java/awt/Toolkit.java \
+ java/awt/Component.java \
+ java/awt/Container.java \
+ java/awt/Canvas.java \
+ java/awt/Button.java \
+ java/awt/List.java \
+ java/awt/Adjustable.java \
+ java/awt/Scrollbar.java \
+ java/awt/ScrollPane.java \
+ java/awt/ScrollPaneAdjustable.java \
+ java/awt/Transparency.java \
+ java/awt/Window.java \
+ java/awt/TextField.java \
+ java/awt/Label.java \
+ java/awt/Choice.java \
+ java/awt/TextComponent.java \
+ java/awt/TextArea.java \
+ java/awt/MenuBar.java \
+ java/awt/Menu.java \
+ java/awt/Dialog.java \
+ java/awt/FileDialog.java \
+ java/awt/MenuItem.java \
+ java/awt/MenuComponent.java \
+ java/awt/Checkbox.java \
+ java/awt/CheckboxGroup.java \
+ java/awt/CheckboxMenuItem.java \
+ java/awt/Frame.java \
+ java/awt/Insets.java \
+ java/awt/Cursor.java \
+ java/awt/Dimension.java \
+ java/awt/PopupMenu.java \
+ java/awt/AWTEvent.java \
+ java/awt/AWTException.java \
+ java/awt/AWTKeyStroke.java \
+ java/awt/KeyboardFocusManager.java \
+ java/awt/DisplayMode.java \
+ java/awt/TrayIcon.java \
+ java/awt/datatransfer/StringSelection.java \
+ java/awt/datatransfer/Transferable.java \
+ java/awt/dnd/DnDConstants.java \
+ java/awt/event/ActionEvent.java \
+ java/awt/event/AdjustmentEvent.java \
+ java/awt/event/ComponentEvent.java \
+ java/awt/event/FocusEvent.java \
+ java/awt/event/ItemEvent.java \
+ java/awt/event/InputEvent.java \
+ java/awt/event/InvocationEvent.java \
+ java/awt/event/KeyEvent.java \
+ java/awt/event/MouseEvent.java \
+ java/awt/event/MouseWheelEvent.java \
+ java/awt/event/WindowEvent.java \
+ java/awt/event/InputMethodEvent.java \
+ java/awt/im/InputMethodHighlight.java \
+ java/awt/im/spi/InputMethod.java \
+ java/awt/font/TextHitInfo.java \
+ java/text/AttributedCharacterIterator.java \
+ java/text/AttributedString.java \
+ java/awt/geom/PathIterator.java \
+ java/awt/image/AffineTransformOp.java \
+ java/awt/image/ImageConsumer.java \
+ java/awt/image/ImageObserver.java \
+ java/awt/image/BufferedImage.java \
+ java/awt/image/ColorModel.java \
+ java/awt/image/ConvolveOp.java \
+ java/awt/image/DirectColorModel.java \
+ java/awt/image/IndexColorModel.java \
+ java/awt/image/Raster.java \
+ java/awt/color/ColorSpace.java \
+ java/awt/color/ICC_Profile.java \
+ java/awt/peer/ComponentPeer.java \
+ java/awt/peer/MenuComponentPeer.java \
+ java/io/InputStream.java
+
+FILES_export2 = \
+ sun/awt/im/InputMethodContext.java \
+ sun/awt/EmbeddedFrame.java \
+ sun/awt/KeyboardFocusManagerPeerImpl.java \
+ sun/awt/windows/WEmbeddedFrame.java \
+ sun/awt/windows/WEmbeddedFramePeer.java \
+ sun/awt/Win32FontManager.java \
+ sun/awt/Win32GraphicsEnvironment.java \
+ sun/awt/Win32GraphicsDevice.java \
+ sun/awt/Win32GraphicsConfig.java \
+ sun/java2d/SunGraphicsEnvironment.java \
+ sun/java2d/SunGraphics2D.java \
+ sun/java2d/SurfaceData.java \
+ sun/awt/image/IntegerComponentRaster.java \
+ sun/awt/image/ImagingLib.java \
+ sun/awt/image/BufImgSurfaceData.java \
+ sun/awt/image/DataBufferNative.java \
+ sun/awt/shell/Win32ShellFolder2.java \
+ sun/java2d/windows/GDIBlitLoops.java \
+ sun/java2d/windows/GDIRenderer.java \
+ sun/java2d/windows/GDIWindowSurfaceData.java \
+ sun/java2d/windows/WindowsFlags.java \
+ sun/java2d/loops/Blit.java \
+ sun/java2d/loops/BlitBg.java \
+ sun/java2d/loops/ScaledBlit.java \
+ sun/java2d/loops/FillRect.java \
+ sun/java2d/loops/FillSpans.java \
+ sun/java2d/loops/DrawGlyphList.java \
+ sun/java2d/loops/DrawGlyphListAA.java \
+ sun/java2d/loops/DrawGlyphListLCD.java \
+ sun/java2d/loops/DrawLine.java \
+ sun/java2d/loops/DrawRect.java \
+ sun/java2d/loops/DrawPolygons.java \
+ sun/java2d/loops/DrawPath.java \
+ sun/java2d/loops/FillPath.java \
+ sun/java2d/loops/MaskBlit.java \
+ sun/java2d/loops/MaskFill.java \
+ sun/java2d/loops/TransformHelper.java \
+ sun/java2d/loops/GraphicsPrimitiveMgr.java \
+ sun/java2d/loops/GraphicsPrimitive.java \
+ sun/java2d/cmm/CMSManager.java \
+ sun/java2d/cmm/PCMM.java \
+ sun/java2d/cmm/ColorTransform.java \
+ sun/awt/ScrollPaneWheelScroller.java \
+ sun/awt/datatransfer/DataTransferer.java \
+ sun/awt/datatransfer/SunClipboard.java \
+ sun/awt/dnd/SunDragSourceContextPeer.java \
+ sun/awt/windows/WToolkitThreadBlockedHandler.java
+
+FILES_export3 = \
+ java/awt/CheckboxMenuItem.java \
+ java/awt/Menu.java \
+ java/awt/MenuBar.java \
+ java/awt/MenuComponent.java \
+ java/awt/MenuItem.java \
+ sun/awt/PlatformFont.java \
+ sun/awt/FontDescriptor.java \
+ sun/awt/CharsetString.java \
+ java/awt/image/DataBuffer.java \
+ sun/awt/image/GifImageDecoder.java \
+ sun/awt/image/ImageRepresentation.java \
+ sun/awt/windows/WCustomCursor.java \
+ sun/awt/windows/WDefaultFontCharset.java \
+ sun/awt/windows/WButtonPeer.java \
+ sun/awt/windows/WCanvasPeer.java \
+ sun/awt/windows/WCheckboxPeer.java \
+ sun/awt/windows/WCheckboxMenuItemPeer.java \
+ sun/awt/windows/WChoicePeer.java \
+ sun/awt/windows/WClipboard.java \
+ sun/awt/windows/WColor.java \
+ sun/awt/windows/WDataTransferer.java \
+ sun/awt/windows/WDesktopPeer.java \
+ sun/awt/windows/WDesktopProperties.java \
+ sun/awt/windows/WDialogPeer.java \
+ sun/awt/windows/WDragSourceContextPeer.java \
+ sun/awt/windows/WDropTargetContextPeer.java \
+ sun/awt/windows/WFileDialogPeer.java \
+ sun/awt/windows/WFontPeer.java \
+ sun/awt/windows/WFontMetrics.java \
+ sun/awt/windows/WFramePeer.java \
+ sun/awt/windows/WGlobalCursorManager.java \
+ sun/awt/windows/WInputMethod.java \
+ sun/awt/windows/WInputMethodDescriptor.java \
+ sun/awt/windows/WComponentPeer.java \
+ sun/awt/windows/WLabelPeer.java \
+ sun/awt/windows/WListPeer.java \
+ sun/awt/windows/WMenuBarPeer.java \
+ sun/awt/windows/WMenuItemPeer.java \
+ sun/awt/windows/WMenuPeer.java \
+ sun/awt/windows/WObjectPeer.java \
+ sun/awt/windows/WPopupMenuPeer.java \
+ sun/awt/windows/WPrintDialog.java \
+ sun/awt/windows/WPrintDialogPeer.java \
+ sun/awt/windows/WPrinterJob.java \
+ sun/awt/windows/WRobotPeer.java \
+ sun/awt/windows/WScrollbarPeer.java \
+ sun/awt/windows/WScrollPanePeer.java \
+ sun/awt/windows/WTextAreaPeer.java \
+ sun/awt/windows/WTextComponentPeer.java \
+ sun/awt/windows/WTextFieldPeer.java \
+ sun/awt/windows/WPanelPeer.java \
+ sun/awt/windows/WToolkit.java \
+ sun/awt/windows/WWindowPeer.java \
+ sun/awt/windows/ThemeReader.java \
+ sun/awt/windows/WBufferStrategy.java \
+ sun/awt/windows/WTrayIconPeer.java \
+ sun/awt/image/ImagingLib.java \
+ sun/awt/ExtendedKeyCodes.java \
+ sun/java2d/pipe/hw/AccelSurface.java \
+ sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
+ sun/java2d/pipe/hw/ContextCapabilities.java \
+ sun/java2d/pipe/BufferedContext.java \
+ sun/java2d/pipe/BufferedMaskBlit.java \
+ sun/java2d/pipe/BufferedOpCodes.java \
+ sun/java2d/pipe/BufferedPaints.java \
+ sun/java2d/pipe/BufferedRenderPipe.java \
+ sun/java2d/pipe/BufferedTextPipe.java \
+ sun/java2d/pipe/RenderBuffer.java \
+ sun/java2d/pipe/ShapeSpanIterator.java \
+ sun/java2d/pipe/SpanClipRenderer.java \
+ sun/java2d/pipe/RegionIterator.java \
+ sun/java2d/opengl/OGLBlitLoops.java \
+ sun/java2d/opengl/OGLContext.java \
+ sun/java2d/opengl/OGLMaskFill.java \
+ sun/java2d/opengl/OGLPaints.java \
+ sun/java2d/opengl/OGLRenderQueue.java \
+ sun/java2d/opengl/OGLRenderer.java \
+ sun/java2d/opengl/OGLSurfaceData.java \
+ sun/java2d/opengl/OGLTextRenderer.java \
+ sun/java2d/opengl/WGLGraphicsConfig.java \
+ sun/java2d/opengl/WGLSurfaceData.java \
+ sun/java2d/d3d/D3DBlitLoops.java \
+ sun/java2d/d3d/D3DGraphicsDevice.java \
+ sun/java2d/d3d/D3DSurfaceData.java \
+ sun/java2d/d3d/D3DMaskFill.java \
+ sun/java2d/d3d/D3DPaints.java \
+ sun/java2d/d3d/D3DRenderQueue.java \
+ sun/java2d/d3d/D3DRenderer.java \
+ sun/java2d/d3d/D3DTextRenderer.java \
+ sun/java2d/d3d/D3DContext.java
--- a/jdk/make/sun/awt/make.depend Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/awt/make.depend Mon Oct 05 18:22:00 2009 -0700
@@ -1,351 +1,351 @@
-$(OBJDIR)/AccelGlyphCache.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/AlphaMacros.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AlphaMath.obj:: ../../../src/share/native/sun/java2d/loops/AlphaMath.h
-
-$(OBJDIR)/Any3Byte.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Any4Byte.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AnyByte.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AnyInt.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AnyShort.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/awt_AWTEvent.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_BitmapUtil.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Brush.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Button.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Canvas.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Checkbox.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Choice.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Clipboard.obj:: $(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Color.obj:: $(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Component.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Container.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Cursor.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DataTransferer.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Debug.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Desktop.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DesktopProperties.obj:: $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Dialog.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Dimension.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DnDDS.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DnDDT.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DrawingSurface.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Event.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_FileDialog.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Font.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Frame.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_GDIObject.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_IconCursor.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_ImageRep.obj:: $(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/awt_ImagingLib.obj:: $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
-
-$(OBJDIR)/awt_InputEvent.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_InputMethod.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_InputTextInfor.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Insets.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_KeyboardFocusManager.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_KeyEvent.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Label.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_List.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_MenuBar.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_MenuItem.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Menu.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Mlib.obj:: $(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_MouseEvent.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_new.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Object.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Palette.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Panel.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_parseImage.obj:: $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
-
-$(OBJDIR)/awt_Pen.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PopupMenu.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PrintControl.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PrintDialog.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PrintJob.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Rectangle.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Robot.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Scrollbar.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_ScrollPane.obj:: $(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TextArea.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TextComponent.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TextField.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Toolkit.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TrayIcon.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Win32GraphicsConfig.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Win32GraphicsDevice.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Win32GraphicsEnv.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Window.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/BlitBg.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Blit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/BufferedMaskBlit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/BufferedRenderPipe.obj:: $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/BufImgSurfaceData.obj:: $(CLASSHDRDIR)/sun_awt_image_BufImgSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/BufImgSurfaceData.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/img_util_md.h
-
-$(OBJDIR)/ByteBinary1Bit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary1Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteBinary2Bit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary2Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteBinary4Bit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary4Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteGray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteIndexed.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/CmdIDList.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/ComCtl32Util.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DBlitLoops.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DBufImgOps.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DContext.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DGlyphCache.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DGraphicsDevice.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DMaskBlit.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DMaskCache.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DMaskFill.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DPaints.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DPipelineManager.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DRenderQueue.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DResourceManager.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DTextRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DVertexCacher.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/DataBufferNative.obj:: $(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_assert.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_mem.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_trace.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_util.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/Devices.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/Disposer.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/dither.obj:: ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/windows/native/sun/windows/colordata.h
-
-$(OBJDIR)/DllUtil.obj:: ../../../src/windows/native/sun/windows/DllUtil.h
-
-$(OBJDIR)/DrawLine.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawLine.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/DrawPath.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/DrawPolygons.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPolygons.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/DrawRect.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FillPath.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FillRect.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FillSpans.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillSpans.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FourByteAbgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FourByteAbgrPre.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/GDIBlitLoops.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/GDIHashtable.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/GDIRenderer.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/GDIWindowSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/gifdecoder.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/GraphicsPrimitiveMgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Hashtable.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/imageInitIDs.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/img_colors.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/img_globals.obj:: $(CLASSHDRDIR)/java_awt_image_DirectColorModel.h $(CLASSHDRDIR)/java_awt_image_IndexColorModel.h $(CLASSHDRDIR)/java_awt_Transparency.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/windows/javavm/export/jni_md.h
-
-$(OBJDIR)/Index12Gray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Index8Gray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/initIDs.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/IntArgbBm.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntArgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntArgbPre.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntBgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntRgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntRgbx.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/MaskBlit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/MaskFill.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/MouseInfo.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/ObjectList.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/OGLBlitLoops.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLBufImgOps.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLContext.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLFuncs.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLMaskBlit.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLMaskFill.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLPaints.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLRenderQueue.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLTextRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLVertexCache.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/ProcessPath.obj:: $(CLASSHDRDIR)/java_awt_geom_PathIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Region.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/RenderBuffer.obj:: $(CLASSHDRDIR)/sun_java2d_pipe_RenderBuffer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/ScaledBlit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_ScaledBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ShapeSpanIterator.obj:: $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ShellFolder2.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/SpanClipRenderer.obj:: $(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/SurfaceData.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/ThemeReader.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/ThreeByteBgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Trace.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/TransformHelper.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort4444Argb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort555Rgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort555Rgbx.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort565Rgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/UshortGray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/UshortIndexed.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/WGLGraphicsConfig.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
-
-$(OBJDIR)/WGLSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
-
-$(OBJDIR)/WindowsFlags.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/WPrinterJob.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+$(OBJDIR)/AccelGlyphCache.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/AlphaMacros.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AlphaMath.obj:: ../../../src/share/native/sun/java2d/loops/AlphaMath.h
+
+$(OBJDIR)/Any3Byte.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Any4Byte.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyByte.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyInt.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyShort.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/awt_AWTEvent.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_BitmapUtil.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Brush.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Button.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Canvas.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Checkbox.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Choice.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Clipboard.obj:: $(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Color.obj:: $(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Component.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Container.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Cursor.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DataTransferer.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Debug.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Desktop.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DesktopProperties.obj:: $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Dialog.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Dimension.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DnDDS.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DnDDT.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DrawingSurface.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Event.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_FileDialog.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Font.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Frame.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_GDIObject.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_IconCursor.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ImageRep.obj:: $(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/awt_ImagingLib.obj:: $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
+
+$(OBJDIR)/awt_InputEvent.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_InputMethod.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_InputTextInfor.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Insets.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_KeyboardFocusManager.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_KeyEvent.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Label.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_List.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MenuBar.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MenuItem.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Menu.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Mlib.obj:: $(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MouseEvent.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_new.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Object.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Palette.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Panel.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_parseImage.obj:: $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
+
+$(OBJDIR)/awt_Pen.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PopupMenu.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintControl.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintDialog.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintJob.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Rectangle.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Robot.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Scrollbar.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ScrollPane.obj:: $(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextArea.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextComponent.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextField.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Toolkit.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TrayIcon.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsConfig.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsDevice.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsEnv.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_Win32FontManager.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Window.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/BlitBg.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Blit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BufferedMaskBlit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BufferedRenderPipe.obj:: $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/BufImgSurfaceData.obj:: $(CLASSHDRDIR)/sun_awt_image_BufImgSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/BufImgSurfaceData.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/img_util_md.h
+
+$(OBJDIR)/ByteBinary1Bit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary1Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteBinary2Bit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary2Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteBinary4Bit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary4Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteGray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteIndexed.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/CmdIDList.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ComCtl32Util.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DBlitLoops.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DBufImgOps.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DContext.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DGlyphCache.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DGraphicsDevice.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskBlit.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskCache.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskFill.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DPaints.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DPipelineManager.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DRenderQueue.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DResourceManager.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DTextRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DVertexCacher.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/DataBufferNative.obj:: $(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_assert.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_mem.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_trace.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_util.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/Devices.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/Disposer.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/dither.obj:: ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/windows/native/sun/windows/colordata.h
+
+$(OBJDIR)/DllUtil.obj:: ../../../src/windows/native/sun/windows/DllUtil.h
+
+$(OBJDIR)/DrawLine.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawLine.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawPath.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawPolygons.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPolygons.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawRect.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillPath.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillRect.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillSpans.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillSpans.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FourByteAbgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FourByteAbgrPre.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/GDIBlitLoops.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIHashtable.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIRenderer.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIWindowSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/gifdecoder.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/GraphicsPrimitiveMgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Hashtable.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/imageInitIDs.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/img_colors.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/img_globals.obj:: $(CLASSHDRDIR)/java_awt_image_DirectColorModel.h $(CLASSHDRDIR)/java_awt_image_IndexColorModel.h $(CLASSHDRDIR)/java_awt_Transparency.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/windows/javavm/export/jni_md.h
+
+$(OBJDIR)/Index12Gray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Index8Gray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/initIDs.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/IntArgbBm.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntArgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntArgbPre.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntBgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntRgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntRgbx.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MaskBlit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MaskFill.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MouseInfo.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ObjectList.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/OGLBlitLoops.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLBufImgOps.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLContext.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLFuncs.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLMaskBlit.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLMaskFill.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLPaints.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLRenderQueue.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLTextRenderer.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLVertexCache.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/ProcessPath.obj:: $(CLASSHDRDIR)/java_awt_geom_PathIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Region.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/RenderBuffer.obj:: $(CLASSHDRDIR)/sun_java2d_pipe_RenderBuffer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/ScaledBlit.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_ScaledBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ShapeSpanIterator.obj:: $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ShellFolder2.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/SpanClipRenderer.obj:: $(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/SurfaceData.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/ThemeReader.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ThreeByteBgr.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Trace.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/TransformHelper.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort4444Argb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort555Rgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort555Rgbx.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort565Rgb.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/UshortGray.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/UshortIndexed.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/WGLGraphicsConfig.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
+
+$(OBJDIR)/WGLSurfaceData.obj:: $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
+
+$(OBJDIR)/WindowsFlags.obj:: ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/WPrinterJob.obj:: $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
--- a/jdk/make/sun/awt/mapfile-mawt-vers Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/awt/mapfile-mawt-vers Mon Oct 05 18:22:00 2009 -0700
@@ -477,11 +477,11 @@
X11SurfaceData_GetOps;
getDefaultConfig;
- Java_sun_font_FontManager_getFontConfig;
- Java_sun_font_FontManager_getFontConfigAASettings;
- Java_sun_font_FontManager_getFontPath;
- Java_sun_font_FontManager_setNativeFontPath;
- Java_sun_font_FontManager_populateFontFileNameMap;
+ Java_sun_font_FontConfigManager_getFontConfig;
+ Java_sun_font_FontConfigManager_getFontConfigAASettings;
+ Java_sun_awt_X11FontManager_getFontPath;
+ Java_sun_awt_X11FontManager_setNativeFontPath;
+ Java_sun_font_SunFontManager_populateFontFileNameMap;
# CDE private entry point
Java_sun_awt_motif_XsessionWMcommand;
--- a/jdk/make/sun/awt/mapfile-vers-linux Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/awt/mapfile-vers-linux Mon Oct 05 18:22:00 2009 -0700
@@ -533,11 +533,11 @@
X11SurfaceData_GetOps;
getDefaultConfig;
- Java_sun_font_FontManager_getFontConfig;
- Java_sun_font_FontManager_getFontConfigAASettings;
- Java_sun_font_FontManager_getFontPath;
- Java_sun_font_FontManager_setNativeFontPath;
- Java_sun_font_FontManager_populateFontFileNameMap;
+ Java_sun_font_FontConfigManager_getFontConfig;
+ Java_sun_font_FontConfigManager_getFontConfigAASettings;
+ Java_sun_awt_X11FontManager_getFontPath;
+ Java_sun_awt_X11FontManager_setNativeFontPath;
+ Java_sun_font_SunFontManager_populateFontFileNameMap;
# CDE private entry point
Java_sun_awt_motif_XsessionWMcommand;
--- a/jdk/make/sun/font/Makefile Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/font/Makefile Mon Oct 05 18:22:00 2009 -0700
@@ -199,3 +199,7 @@
CPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows
endif
+# Make the Layout Engine build standalone
+CPPFLAGS += -DLE_STANDALONE
+
+
--- a/jdk/make/sun/font/mapfile-vers Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/font/mapfile-vers Mon Oct 05 18:22:00 2009 -0700
@@ -33,12 +33,7 @@
isNullScalerContext;
Java_sun_font_NullFontScaler_getNullScalerContext;
Java_sun_font_NullFontScaler_getGlyphImage;
- Java_sun_font_FontManager_getPlatformFontVar;
- Java_sun_font_FontManager_initIDs;
- Java_sun_font_FontManager_getFont2D;
- Java_sun_font_FontManager_setFont2D;
- Java_sun_font_FontManager_isCreatedFont;
- Java_sun_font_FontManager_setCreatedFont;
+ Java_sun_font_SunFontManager_initIDs;
Java_sun_font_StrikeCache_getGlyphCacheDescription;
Java_sun_font_StrikeCache_freeIntPointer;
Java_sun_font_StrikeCache_freeLongPointer;
--- a/jdk/make/sun/font/mapfile-vers.openjdk Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/font/mapfile-vers.openjdk Mon Oct 05 18:22:00 2009 -0700
@@ -35,12 +35,7 @@
isNullScalerContext;
Java_sun_font_NullFontScaler_getNullScalerContext;
Java_sun_font_NullFontScaler_getGlyphImage;
- Java_sun_font_FontManager_getPlatformFontVar;
- Java_sun_font_FontManager_initIDs;
- Java_sun_font_FontManager_getFont2D;
- Java_sun_font_FontManager_setFont2D;
- Java_sun_font_FontManager_isCreatedFont;
- Java_sun_font_FontManager_setCreatedFont;
+ Java_sun_font_SunFontManager_initIDs;
Java_sun_font_StrikeCache_getGlyphCacheDescription;
Java_sun_font_StrikeCache_freeIntPointer;
Java_sun_font_StrikeCache_freeLongPointer;
--- a/jdk/make/sun/headless/mapfile-vers Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/headless/mapfile-vers Mon Oct 05 18:22:00 2009 -0700
@@ -59,12 +59,10 @@
X11SurfaceData_GetOps;
Java_java_awt_Font_initIDs;
- Java_sun_font_FontManager_getFontConfig;
- Java_sun_font_FontManager_getFontConfigVersion;
- Java_sun_font_FontManager_getFontConfigAASettings;
- Java_sun_font_FontManager_getFontPath;
- Java_sun_font_FontManager_setNativeFontPath;
- Java_sun_font_FontManager_populateFontFileNameMap;
+ Java_sun_font_FontConfigManager_getFontConfig;
+ Java_sun_font_FontConfigManager_getFontConfigAASettings;
+ Java_sun_font_FontConfigManager_getFontConfigVersion;
+ Java_sun_awt_X11FontManager_getFontPath;
Java_sun_awt_FontDescriptor_initIDs;
Java_sun_awt_PlatformFont_initIDs;
--- a/jdk/make/sun/xawt/mapfile-vers Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/make/sun/xawt/mapfile-vers Mon Oct 05 18:22:00 2009 -0700
@@ -182,12 +182,11 @@
Java_java_awt_ScrollPane_initIDs;
Java_java_awt_TextField_initIDs;
Java_java_awt_TrayIcon_initIDs;
- Java_sun_font_FontManager_getFontConfig;
- Java_sun_font_FontManager_getFontConfigVersion;
- Java_sun_font_FontManager_getFontConfigAASettings;
- Java_sun_font_FontManager_getFontPath;
- Java_sun_font_FontManager_setNativeFontPath;
- Java_sun_font_FontManager_populateFontFileNameMap;
+ Java_sun_font_FontConfigManager_getFontConfig;
+ Java_sun_font_FontConfigManager_getFontConfigAASettings;
+ Java_sun_font_FontConfigManager_getFontConfigVersion;
+ Java_sun_awt_X11FontManager_getFontPath;
+ Java_sun_font_X11FontManager_setNativeFontPath;
Java_sun_awt_X11GraphicsEnvironment_initDisplay;
Java_sun_awt_X11GraphicsEnvironment_initGLX;
Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,7 +29,9 @@
import java.awt.geom.AffineTransform;
import javax.swing.plaf.FontUIResource;
import java.util.StringTokenizer;
-import sun.font.FontManager;
+
+import sun.font.FontConfigManager;
+import sun.font.FontUtilities;
/**
* @author Shannon Hickey
@@ -193,13 +195,13 @@
}
String fcFamilyLC = family.toLowerCase();
- if (FontManager.mapFcName(fcFamilyLC) != null) {
+ if (FontUtilities.mapFcName(fcFamilyLC) != null) {
/* family is a Fc/Pango logical font which we need to expand. */
- return FontManager.getFontConfigFUIR(fcFamilyLC, style, size);
+ return FontUtilities.getFontConfigFUIR(fcFamilyLC, style, size);
} else {
/* It's a physical font which we will create with a fallback */
Font font = new FontUIResource(family, style, size);
- return FontManager.getCompositeFontUIResource(font);
+ return FontUtilities.getCompositeFontUIResource(font);
}
}
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java Mon Oct 05 18:22:00 2009 -0700
@@ -63,7 +63,7 @@
import sun.awt.SunToolkit;
import sun.awt.OSInfo;
import sun.awt.shell.ShellFolder;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
import sun.security.action.GetPropertyAction;
import sun.swing.DefaultLayoutStyle;
@@ -2289,13 +2289,14 @@
font.getStyle(), size);
}
}
- if (FontManager.fontSupportsDefaultEncoding(font)) {
+
+ if (FontUtilities.fontSupportsDefaultEncoding(font)) {
if (!(font instanceof UIResource)) {
font = new FontUIResource(font);
}
}
else {
- font = FontManager.getCompositeFontUIResource(font);
+ font = FontUtilities.getCompositeFontUIResource(font);
}
return font;
--- a/jdk/src/share/classes/java/awt/AWTEvent.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/AWTEvent.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,9 +30,8 @@
import java.awt.peer.ComponentPeer;
import java.awt.peer.LightweightPeer;
import java.lang.reflect.Field;
-import java.util.logging.Logger;
-import java.util.logging.Level;
import sun.awt.AWTAccessor;
+import sun.util.logging.PlatformLogger;
/**
* The root event class for all AWT events.
@@ -76,7 +75,7 @@
* @since 1.1
*/
public abstract class AWTEvent extends EventObject {
- private static final Logger log = Logger.getLogger("java.awt.AWTEvent");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.AWTEvent");
private byte bdata[];
/**
@@ -252,12 +251,12 @@
field.setAccessible(true);
return field;
} catch (SecurityException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "AWTEvent.get_InputEvent_CanAccessSystemClipboard() got SecurityException ", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("AWTEvent.get_InputEvent_CanAccessSystemClipboard() got SecurityException ", e);
}
} catch (NoSuchFieldException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "AWTEvent.get_InputEvent_CanAccessSystemClipboard() got NoSuchFieldException ", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("AWTEvent.get_InputEvent_CanAccessSystemClipboard() got NoSuchFieldException ", e);
}
}
return null;
@@ -549,8 +548,8 @@
boolean b = field.getBoolean(this);
field.setBoolean(that, b);
} catch(IllegalAccessException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "AWTEvent.copyPrivateDataInto() got IllegalAccessException ", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("AWTEvent.copyPrivateDataInto() got IllegalAccessException ", e);
}
}
}
@@ -564,8 +563,8 @@
try {
field.setBoolean(this, false);
} catch(IllegalAccessException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "AWTEvent.dispatched() got IllegalAccessException ", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("AWTEvent.dispatched() got IllegalAccessException ", e);
}
}
}
--- a/jdk/src/share/classes/java/awt/AttributeValue.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/AttributeValue.java Mon Oct 05 18:22:00 2009 -0700
@@ -25,21 +25,21 @@
package java.awt;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
abstract class AttributeValue {
- private static final Logger log = Logger.getLogger("java.awt.AttributeValue");
-
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.AttributeValue");
private final int value;
private final String[] names;
protected AttributeValue(int value, String[] names) {
- if (log.isLoggable(Level.FINEST)) {
- log.log(Level.FINEST, "value = " + value + ", names = " + names);
+ if (log.isLoggable(PlatformLogger.FINEST)) {
+ log.finest("value = " + value + ", names = " + names);
}
- if (log.isLoggable(Level.FINER)) {
+
+ if (log.isLoggable(PlatformLogger.FINER)) {
if ((value < 0) || (names == null) || (value >= names.length)) {
- log.log(Level.FINER, "Assertion failed");
+ log.finer("Assertion failed");
}
}
this.value = value;
--- a/jdk/src/share/classes/java/awt/Component.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Component.java Mon Oct 05 18:22:00 2009 -0700
@@ -60,7 +60,6 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import javax.accessibility.*;
-import java.util.logging.*;
import java.applet.Applet;
import sun.security.action.GetPropertyAction;
@@ -74,6 +73,9 @@
import sun.awt.EmbeddedFrame;
import sun.awt.dnd.SunDropTargetEvent;
import sun.awt.im.CompositionArea;
+import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.SunFontManager;
import sun.java2d.SunGraphics2D;
import sun.java2d.pipe.Region;
import sun.awt.image.VSyncedBSManager;
@@ -81,6 +83,7 @@
import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.*;
import sun.awt.RequestFocusController;
import sun.java2d.SunGraphicsEnvironment;
+import sun.util.logging.PlatformLogger;
/**
* A <em>component</em> is an object having a graphical representation
@@ -175,10 +178,10 @@
Serializable
{
- private static final Logger log = Logger.getLogger("java.awt.Component");
- private static final Logger eventLog = Logger.getLogger("java.awt.event.Component");
- private static final Logger focusLog = Logger.getLogger("java.awt.focus.Component");
- private static final Logger mixingLog = Logger.getLogger("java.awt.mixing.Component");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Component");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.Component");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.Component");
+ private static final PlatformLogger mixingLog = PlatformLogger.getLogger("java.awt.mixing.Component");
/**
* The peer of the component. The peer implements the component's
@@ -2848,8 +2851,12 @@
* @since JDK1.0
*/
public FontMetrics getFontMetrics(Font font) {
- // REMIND: PlatformFont flag should be obsolete soon...
- if (sun.font.FontManager.usePlatformFontMetrics()) {
+ // This is an unsupported hack, but left in for a customer.
+ // Do not remove.
+ FontManager fm = FontManagerFactory.getInstance();
+ if (fm instanceof SunFontManager
+ && ((SunFontManager) fm).usePlatformFontMetrics()) {
+
if (peer != null &&
!(peer instanceof LightweightPeer)) {
return peer.getFontMetrics(font);
@@ -4471,13 +4478,13 @@
// Check that this component belongs to this app-context
AppContext compContext = appContext;
if (compContext != null && !compContext.equals(AppContext.getAppContext())) {
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "Event " + e + " is being dispatched on the wrong AppContext");
- }
- }
-
- if (eventLog.isLoggable(Level.FINEST)) {
- eventLog.log(Level.FINEST, "{0}", e);
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("Event " + e + " is being dispatched on the wrong AppContext");
+ }
+ }
+
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+ eventLog.finest("{0}", e);
}
/*
@@ -4512,8 +4519,8 @@
return;
}
}
- if ((e instanceof FocusEvent) && focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "" + e);
+ if ((e instanceof FocusEvent) && focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("" + e);
}
// MouseWheel may need to be retargeted here so that
// AWTEventListener sees the event go to the correct
@@ -4570,8 +4577,8 @@
if (inputContext != null) {
inputContext.dispatchEvent(e);
if (e.isConsumed()) {
- if ((e instanceof FocusEvent) && focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "3579: Skipping " + e);
+ if ((e instanceof FocusEvent) && focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("3579: Skipping " + e);
}
return;
}
@@ -4605,8 +4612,8 @@
if (p != null) {
p.preProcessKeyEvent((KeyEvent)e);
if (e.isConsumed()) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Pre-process consumed event");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Pre-process consumed event");
}
return;
}
@@ -4738,9 +4745,9 @@
// position relative to its parent.
MouseWheelEvent newMWE;
- if (eventLog.isLoggable(Level.FINEST)) {
- eventLog.log(Level.FINEST, "dispatchMouseWheelToAncestor");
- eventLog.log(Level.FINEST, "orig event src is of " + e.getSource().getClass());
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+ eventLog.finest("dispatchMouseWheelToAncestor");
+ eventLog.finest("orig event src is of " + e.getSource().getClass());
}
/* parent field for Window refers to the owning Window.
@@ -4761,8 +4768,8 @@
}
}
- if (eventLog.isLoggable(Level.FINEST)) {
- eventLog.log(Level.FINEST, "new event src is " + anc.getClass());
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+ eventLog.finest("new event src is " + anc.getClass());
}
if (anc != null && anc.eventEnabled(e)) {
@@ -5257,11 +5264,11 @@
// Should only be called while holding the tree lock
int numListening(long mask) {
// One mask or the other, but not neither or both.
- if (eventLog.isLoggable(Level.FINE)) {
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
if ((mask != AWTEvent.HIERARCHY_EVENT_MASK) &&
(mask != AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK))
{
- eventLog.log(Level.FINE, "Assertion failed");
+ eventLog.fine("Assertion failed");
}
}
if ((mask == AWTEvent.HIERARCHY_EVENT_MASK &&
@@ -5298,9 +5305,9 @@
break;
case HierarchyEvent.ANCESTOR_MOVED:
case HierarchyEvent.ANCESTOR_RESIZED:
- if (eventLog.isLoggable(Level.FINE)) {
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
if (changeFlags != 0) {
- eventLog.log(Level.FINE, "Assertion (changeFlags == 0) failed");
+ eventLog.fine("Assertion (changeFlags == 0) failed");
}
}
if (hierarchyBoundsListener != null ||
@@ -5314,8 +5321,8 @@
break;
default:
// assert false
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "This code must never be reached");
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("This code must never be reached");
}
break;
}
@@ -7376,8 +7383,8 @@
CausedFocusEvent.Cause cause)
{
if (!isRequestFocusAccepted(temporary, focusedWindowChangeAllowed, cause)) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "requestFocus is not accepted");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("requestFocus is not accepted");
}
return false;
}
@@ -7388,8 +7395,8 @@
Component window = this;
while ( (window != null) && !(window instanceof Window)) {
if (!window.isVisible()) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "component is recurively invisible");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("component is recurively invisible");
}
return false;
}
@@ -7400,15 +7407,15 @@
Component heavyweight = (peer instanceof LightweightPeer)
? getNativeContainer() : this;
if (heavyweight == null || !heavyweight.isVisible()) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Component is not a part of visible hierarchy");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Component is not a part of visible hierarchy");
}
return false;
}
peer = heavyweight.peer;
if (peer == null) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Peer is null");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Peer is null");
}
return false;
}
@@ -7420,12 +7427,12 @@
if (!success) {
KeyboardFocusManager.getCurrentKeyboardFocusManager
(appContext).dequeueKeyEvents(time, this);
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Peer request failed");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Peer request failed");
}
} else {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Pass for " + this);
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Pass for " + this);
}
}
return success;
@@ -7436,24 +7443,24 @@
CausedFocusEvent.Cause cause)
{
if (!isFocusable() || !isVisible()) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Not focusable or not visible");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Not focusable or not visible");
}
return false;
}
ComponentPeer peer = this.peer;
if (peer == null) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "peer is null");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("peer is null");
}
return false;
}
Window window = getContainingWindow();
if (window == null || !((Window)window).isFocusableWindow()) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Component doesn't have toplevel");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Component doesn't have toplevel");
}
return false;
}
@@ -7474,8 +7481,8 @@
// Controller is supposed to verify focus transfers and for this it
// should know both from and to components. And it shouldn't verify
// transfers from when these components are equal.
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "focus owner is null or this");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("focus owner is null or this");
}
return true;
}
@@ -7487,8 +7494,8 @@
// most recent focus owner. But most recent focus owner can be
// changed by requestFocsuXXX() call only, so this transfer has
// been already approved.
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "cause is activation");
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("cause is activation");
}
return true;
}
@@ -7498,8 +7505,8 @@
temporary,
focusedWindowChangeAllowed,
cause);
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "RequestFocusController returns {0}", ret);
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("RequestFocusController returns {0}", ret);
}
return ret;
@@ -7590,7 +7597,7 @@
}
boolean transferFocus(boolean clearOnFailure) {
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("clearOnFailure = " + clearOnFailure);
}
Component toFocus = getNextFocusCandidate();
@@ -7599,12 +7606,12 @@
res = toFocus.requestFocusInWindow(CausedFocusEvent.Cause.TRAVERSAL_FORWARD);
}
if (clearOnFailure && !res) {
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("clear global focus owner");
}
KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
}
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("returning result: " + res);
}
return res;
@@ -7619,19 +7626,19 @@
comp = rootAncestor;
rootAncestor = comp.getFocusCycleRootAncestor();
}
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("comp = " + comp + ", root = " + rootAncestor);
}
Component candidate = null;
if (rootAncestor != null) {
FocusTraversalPolicy policy = rootAncestor.getFocusTraversalPolicy();
Component toFocus = policy.getComponentAfter(rootAncestor, comp);
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("component after is " + toFocus);
}
if (toFocus == null) {
toFocus = policy.getDefaultComponent(rootAncestor);
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("default component is " + toFocus);
}
}
@@ -7643,7 +7650,7 @@
}
candidate = toFocus;
}
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("Focus transfer candidate: " + candidate);
}
return candidate;
@@ -7680,12 +7687,12 @@
}
}
if (!res) {
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("clear global focus owner");
}
KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
}
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("returning result: " + res);
}
return res;
@@ -9441,7 +9448,7 @@
checkTreeLock();
if (!areBoundsValid()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
}
return;
@@ -9477,7 +9484,7 @@
}
this.compoundShape = shape;
Point compAbsolute = getLocationOnWindow();
- if (mixingLog.isLoggable(Level.FINER)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINER)) {
mixingLog.fine("this = " + this +
"; compAbsolute=" + compAbsolute + "; shape=" + shape);
}
@@ -9611,7 +9618,7 @@
checkTreeLock();
Region s = getNormalShape();
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this + "; normalShape=" + s);
}
@@ -9645,7 +9652,7 @@
}
}
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("currentShape=" + s);
}
@@ -9655,12 +9662,12 @@
void applyCurrentShape() {
checkTreeLock();
if (!areBoundsValid()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
}
return; // Because applyCompoundShape() ignores such components anyway
}
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this);
}
applyCompoundShape(calculateCurrentShape());
@@ -9669,7 +9676,7 @@
final void subtractAndApplyShape(Region s) {
checkTreeLock();
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this + "; s=" + s);
}
@@ -9716,7 +9723,7 @@
void mixOnShowing() {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this);
}
if (!isMixingNeeded()) {
@@ -9734,7 +9741,7 @@
// We cannot be sure that the peer exists at this point, so we need the argument
// to find out whether the hiding component is (well, actually was) a LW or a HW.
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this + "; isLightweight = " + isLightweight);
}
if (!isMixingNeeded()) {
@@ -9748,7 +9755,7 @@
void mixOnReshaping() {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this);
}
if (!isMixingNeeded()) {
@@ -9767,7 +9774,7 @@
boolean becameHigher = newZorder < oldZorder;
Container parent = getContainer();
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this +
"; oldZorder=" + oldZorder + "; newZorder=" + newZorder + "; parent=" + parent);
}
@@ -9811,13 +9818,13 @@
final boolean isMixingNeeded() {
if (SunToolkit.getSunAwtDisableMixing()) {
- if (mixingLog.isLoggable(Level.FINEST)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINEST)) {
mixingLog.finest("this = " + this + "; Mixing disabled via sun.awt.disableMixing");
}
return false;
}
if (!areBoundsValid()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
}
return false;
@@ -9825,7 +9832,7 @@
Window window = getContainingWindow();
if (window != null) {
if (!window.hasHeavyweightDescendants() || !window.hasLightweightDescendants()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("containing window = " + window +
"; has h/w descendants = " + window.hasHeavyweightDescendants() +
"; has l/w descendants = " + window.hasLightweightDescendants());
@@ -9833,8 +9840,8 @@
return false;
}
} else {
- if (mixingLog.isLoggable(Level.FINE)) {
- mixingLog.finest("this = " + this + "; containing window is null");
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
+ mixingLog.fine("this = " + this + "; containing window is null");
}
return false;
}
--- a/jdk/src/share/classes/java/awt/Container.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Container.java Mon Oct 05 18:22:00 2009 -0700
@@ -46,10 +46,10 @@
import java.util.HashSet;
import java.util.Set;
-import java.util.logging.*;
-
import javax.accessibility.*;
+import sun.util.logging.PlatformLogger;
+
import sun.awt.AppContext;
import sun.awt.CausedFocusEvent;
import sun.awt.PeerEvent;
@@ -85,8 +85,8 @@
*/
public class Container extends Component {
- private static final Logger log = Logger.getLogger("java.awt.Container");
- private static final Logger eventLog = Logger.getLogger("java.awt.event.Container");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Container");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.Container");
private static final Component[] EMPTY_ARRAY = new Component[0];
@@ -201,7 +201,7 @@
private transient int numOfHWComponents = 0;
private transient int numOfLWComponents = 0;
- private static final Logger mixingLog = Logger.getLogger("java.awt.mixing.Container");
+ private static final PlatformLogger mixingLog = PlatformLogger.getLogger("java.awt.mixing.Container");
/**
* @serialField ncomponents int
@@ -1287,33 +1287,33 @@
int superListening = super.numListening(mask);
if (mask == AWTEvent.HIERARCHY_EVENT_MASK) {
- if (eventLog.isLoggable(Level.FINE)) {
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
// Verify listeningChildren is correct
int sum = 0;
for (Component comp : component) {
sum += comp.numListening(mask);
}
if (listeningChildren != sum) {
- eventLog.log(Level.FINE, "Assertion (listeningChildren == sum) failed");
+ eventLog.fine("Assertion (listeningChildren == sum) failed");
}
}
return listeningChildren + superListening;
} else if (mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) {
- if (eventLog.isLoggable(Level.FINE)) {
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
// Verify listeningBoundsChildren is correct
int sum = 0;
for (Component comp : component) {
sum += comp.numListening(mask);
}
if (listeningBoundsChildren != sum) {
- eventLog.log(Level.FINE, "Assertion (listeningBoundsChildren == sum) failed");
+ eventLog.fine("Assertion (listeningBoundsChildren == sum) failed");
}
}
return listeningBoundsChildren + superListening;
} else {
// assert false;
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "This code must never be reached");
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("This code must never be reached");
}
return superListening;
}
@@ -1321,13 +1321,13 @@
// Should only be called while holding tree lock
void adjustListeningChildren(long mask, int num) {
- if (eventLog.isLoggable(Level.FINE)) {
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
boolean toAssert = (mask == AWTEvent.HIERARCHY_EVENT_MASK ||
mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK ||
mask == (AWTEvent.HIERARCHY_EVENT_MASK |
AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK));
if (!toAssert) {
- eventLog.log(Level.FINE, "Assertion failed");
+ eventLog.fine("Assertion failed");
}
}
@@ -1362,14 +1362,14 @@
// Should only be called while holding tree lock
int countHierarchyMembers() {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
// Verify descendantsCount is correct
int sum = 0;
for (Component comp : component) {
sum += comp.countHierarchyMembers();
}
if (descendantsCount != sum) {
- log.log(Level.FINE, "Assertion (descendantsCount == sum) failed");
+ log.fine("Assertion (descendantsCount == sum) failed");
}
}
return descendantsCount + 1;
@@ -3924,7 +3924,7 @@
final void recursiveSubtractAndApplyShape(Region shape, int fromZorder, int toZorder) {
checkTreeLock();
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this +
"; shape=" + shape + "; fromZ=" + fromZorder + "; toZ=" + toZorder);
}
@@ -3961,7 +3961,7 @@
final void recursiveApplyCurrentShape(int fromZorder, int toZorder) {
checkTreeLock();
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this +
"; fromZ=" + fromZorder + "; toZ=" + toZorder);
}
@@ -4065,7 +4065,7 @@
@Override
void mixOnShowing() {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this);
}
@@ -4090,7 +4090,7 @@
@Override
void mixOnHiding(boolean isLightweight) {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this +
"; isLightweight=" + isLightweight);
}
@@ -4104,7 +4104,7 @@
@Override
void mixOnReshaping() {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this);
}
@@ -4139,7 +4139,7 @@
@Override
void mixOnZOrderChanging(int oldZorder, int newZorder) {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this +
"; oldZ=" + oldZorder + "; newZ=" + newZorder);
}
@@ -4160,7 +4160,7 @@
@Override
void mixOnValidating() {
synchronized (getTreeLock()) {
- if (mixingLog.isLoggable(Level.FINE)) {
+ if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("this = " + this);
}
@@ -4206,7 +4206,7 @@
*/
private static final int LWD_MOUSE_DRAGGED_OVER = 1500;
- private static final Logger eventLog = Logger.getLogger("java.awt.event.LightweightDispatcher");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.LightweightDispatcher");
LightweightDispatcher(Container nativeContainer) {
this.nativeContainer = nativeContainer;
@@ -4348,10 +4348,10 @@
// This may send it somewhere that doesn't have MouseWheelEvents
// enabled. In this case, Component.dispatchEventImpl() will
// retarget the event to a parent that DOES have the events enabled.
- if (eventLog.isLoggable(Level.FINEST) && (mouseOver != null)) {
- eventLog.log(Level.FINEST, "retargeting mouse wheel to " +
- mouseOver.getName() + ", " +
- mouseOver.getClass());
+ if (eventLog.isLoggable(PlatformLogger.FINEST) && (mouseOver != null)) {
+ eventLog.finest("retargeting mouse wheel to " +
+ mouseOver.getName() + ", " +
+ mouseOver.getClass());
}
retargetMouseEvent(mouseOver, id, e);
break;
--- a/jdk/src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java Mon Oct 05 18:22:00 2009 -0700
@@ -24,9 +24,9 @@
*/
package java.awt;
-import java.util.logging.*;
import java.util.List;
import java.util.ArrayList;
+import sun.util.logging.PlatformLogger;
/**
* A FocusTraversalPolicy that determines traversal order based on the order
@@ -60,7 +60,7 @@
public class ContainerOrderFocusTraversalPolicy extends FocusTraversalPolicy
implements java.io.Serializable
{
- private static final Logger log = Logger.getLogger("java.awt.ContainerOrderFocusTraversalPolicy");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.ContainerOrderFocusTraversalPolicy");
final private int FORWARD_TRAVERSAL = 0;
final private int BACKWARD_TRAVERSAL = 1;
@@ -165,7 +165,7 @@
if (getImplicitDownCycleTraversal()) {
retComp = cont.getFocusTraversalPolicy().getDefaultComponent(cont);
- if (retComp != null && log.isLoggable(Level.FINE)) {
+ if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Transfered focus down-cycle to " + retComp +
" in the focus cycle root " + cont);
}
@@ -177,7 +177,7 @@
cont.getFocusTraversalPolicy().getDefaultComponent(cont) :
cont.getFocusTraversalPolicy().getLastComponent(cont));
- if (retComp != null && log.isLoggable(Level.FINE)) {
+ if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Transfered focus to " + retComp + " in the FTP provider " + cont);
}
}
@@ -208,7 +208,7 @@
* aComponent is null
*/
public Component getComponentAfter(Container aContainer, Component aComponent) {
- if (log.isLoggable(Level.FINE)) log.fine("### Searching in " + aContainer + " for component after " + aComponent);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Searching in " + aContainer + " for component after " + aComponent);
if (aContainer == null || aComponent == null) {
throw new IllegalArgumentException("aContainer and aComponent cannot be null");
@@ -236,7 +236,7 @@
// See if the component is inside of policy provider.
Container provider = getTopmostProvider(aContainer, aComponent);
if (provider != null) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Asking FTP " + provider + " for component after " + aComponent);
}
@@ -247,7 +247,7 @@
// Null result means that we overstepped the limit of the FTP's cycle.
// In that case we must quit the cycle, otherwise return the component found.
if (afterComp != null) {
- if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + afterComp);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + afterComp);
return afterComp;
}
aComponent = provider;
@@ -255,12 +255,12 @@
List<Component> cycle = getFocusTraversalCycle(aContainer);
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
int index = getComponentIndex(cycle, aComponent);
if (index < 0) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
}
return getFirstComponent(aContainer);
@@ -325,7 +325,7 @@
// See if the component is inside of policy provider.
Container provider = getTopmostProvider(aContainer, aComponent);
if (provider != null) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Asking FTP " + provider + " for component after " + aComponent);
}
@@ -336,7 +336,7 @@
// Null result means that we overstepped the limit of the FTP's cycle.
// In that case we must quit the cycle, otherwise return the component found.
if (beforeComp != null) {
- if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + beforeComp);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + beforeComp);
return beforeComp;
}
aComponent = provider;
@@ -349,12 +349,12 @@
List<Component> cycle = getFocusTraversalCycle(aContainer);
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
int index = getComponentIndex(cycle, aComponent);
if (index < 0) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
}
return getLastComponent(aContainer);
@@ -401,7 +401,7 @@
public Component getFirstComponent(Container aContainer) {
List<Component> cycle;
- if (log.isLoggable(Level.FINE)) log.fine("### Getting first component in " + aContainer);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting first component in " + aContainer);
if (aContainer == null) {
throw new IllegalArgumentException("aContainer cannot be null");
@@ -420,10 +420,10 @@
}
if (cycle.size() == 0) {
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
return null;
}
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
for (Component comp : cycle) {
if (accept(comp)) {
@@ -451,7 +451,7 @@
*/
public Component getLastComponent(Container aContainer) {
List<Component> cycle;
- if (log.isLoggable(Level.FINE)) log.fine("### Getting last component in " + aContainer);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting last component in " + aContainer);
if (aContainer == null) {
throw new IllegalArgumentException("aContainer cannot be null");
@@ -470,10 +470,10 @@
}
if (cycle.size() == 0) {
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
return null;
}
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
for (int i= cycle.size() - 1; i >= 0; i--) {
Component comp = cycle.get(i);
--- a/jdk/src/share/classes/java/awt/Cursor.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Cursor.java Mon Oct 05 18:22:00 2009 -0700
@@ -36,9 +36,9 @@
import java.util.Properties;
import java.util.StringTokenizer;
-import java.util.logging.*;
+import java.security.AccessController;
-import java.security.AccessController;
+import sun.util.logging.PlatformLogger;
/**
* A class to encapsulate the bitmap representation of the mouse cursor.
@@ -191,7 +191,7 @@
*/
private static final long serialVersionUID = 8028237497568985504L;
- private static final Logger log = Logger.getLogger("java.awt.Cursor");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Cursor");
static {
/* ensure that the necessary native libraries are loaded */
@@ -298,8 +298,8 @@
String key = prefix + DotFileSuffix;
if (!systemCustomCursorProperties.containsKey(key)) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "Cursor.getSystemCustomCursor(" + name + ") returned null");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("Cursor.getSystemCustomCursor(" + name + ") returned null");
}
return null;
}
@@ -353,8 +353,8 @@
}
if (cursor == null) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "Cursor.getSystemCustomCursor(" + name + ") returned null");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("Cursor.getSystemCustomCursor(" + name + ") returned null");
}
} else {
systemCustomCursors.put(name, cursor);
--- a/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -35,8 +35,7 @@
import java.util.ListIterator;
import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.AppContext;
import sun.awt.SunToolkit;
@@ -62,7 +61,7 @@
* @since 1.4
*/
public class DefaultKeyboardFocusManager extends KeyboardFocusManager {
- private static final Logger focusLog = Logger.getLogger("java.awt.focus.DefaultKeyboardFocusManager");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.DefaultKeyboardFocusManager");
// null weak references to not create too many objects
private static final WeakReference<Window> NULL_WINDOW_WR =
@@ -275,7 +274,7 @@
* <code>false</code> otherwise
*/
public boolean dispatchEvent(AWTEvent e) {
- if (focusLog.isLoggable(Level.FINE) && (e instanceof WindowEvent || e instanceof FocusEvent)) focusLog.fine("" + e);
+ if (focusLog.isLoggable(PlatformLogger.FINE) && (e instanceof WindowEvent || e instanceof FocusEvent)) focusLog.fine("" + e);
switch (e.getID()) {
case WindowEvent.WINDOW_GAINED_FOCUS: {
WindowEvent we = (WindowEvent)e;
@@ -378,9 +377,9 @@
// The component which last has the focus when this window was focused
// should receive focus first
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "tempLost {0}, toFocus {1}",
- new Object[]{tempLost, toFocus});
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("tempLost {0}, toFocus {1}",
+ tempLost, toFocus);
}
if (tempLost != null) {
tempLost.requestFocusInWindow(CausedFocusEvent.Cause.ACTIVATION);
@@ -447,8 +446,8 @@
Component oldFocusOwner = getGlobalFocusOwner();
Component newFocusOwner = fe.getComponent();
if (oldFocusOwner == newFocusOwner) {
- if (focusLog.isLoggable(Level.FINE)) {
- focusLog.log(Level.FINE, "Skipping {0} because focus owner is the same", new Object[] {e});
+ if (focusLog.isLoggable(PlatformLogger.FINE)) {
+ focusLog.fine("Skipping {0} because focus owner is the same", e);
}
// We can't just drop the event - there could be
// type-ahead markers associated with it.
@@ -565,16 +564,16 @@
FocusEvent fe = (FocusEvent)e;
Component currentFocusOwner = getGlobalFocusOwner();
if (currentFocusOwner == null) {
- if (focusLog.isLoggable(Level.FINE)) focusLog.log(Level.FINE, "Skipping {0} because focus owner is null",
- new Object[] {e});
+ if (focusLog.isLoggable(PlatformLogger.FINE))
+ focusLog.fine("Skipping {0} because focus owner is null", e);
break;
}
// Ignore cases where a Component loses focus to itself.
// If we make a mistake because of retargeting, then the
// FOCUS_GAINED handler will correct it.
if (currentFocusOwner == fe.getOppositeComponent()) {
- if (focusLog.isLoggable(Level.FINE)) focusLog.log(Level.FINE, "Skipping {0} because current focus owner is equal to opposite",
- new Object[] {e});
+ if (focusLog.isLoggable(PlatformLogger.FINE))
+ focusLog.fine("Skipping {0} because current focus owner is equal to opposite", e);
break;
}
@@ -642,9 +641,10 @@
Window losingFocusWindow = we.getWindow();
Window activeWindow = getGlobalActiveWindow();
Window oppositeWindow = we.getOppositeWindow();
- if (focusLog.isLoggable(Level.FINE)) focusLog.log(Level.FINE, "Active {0}, Current focused {1}, losing focus {2} opposite {3}",
- new Object[] {activeWindow, currentFocusedWindow,
- losingFocusWindow, oppositeWindow});
+ if (focusLog.isLoggable(PlatformLogger.FINE))
+ focusLog.fine("Active {0}, Current focused {1}, losing focus {2} opposite {3}",
+ activeWindow, currentFocusedWindow,
+ losingFocusWindow, oppositeWindow);
if (currentFocusedWindow == null) {
break;
}
@@ -828,7 +828,7 @@
}
}
if (ke != null) {
- focusLog.log(Level.FINER, "Pumping approved event {0}", new Object[] {ke});
+ focusLog.finer("Pumping approved event {0}", ke);
enqueuedKeyEvents.removeFirst();
}
}
@@ -843,14 +843,14 @@
* Dumps the list of type-ahead queue markers to stderr
*/
void dumpMarkers() {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, ">>> Markers dump, time: {0}", System.currentTimeMillis());
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest(">>> Markers dump, time: {0}", System.currentTimeMillis());
synchronized (this) {
if (typeAheadMarkers.size() != 0) {
Iterator iter = typeAheadMarkers.iterator();
while (iter.hasNext()) {
TypeAheadMarker marker = (TypeAheadMarker)iter.next();
- focusLog.log(Level.FINEST, " {0}", marker);
+ focusLog.finest(" {0}", marker);
}
}
}
@@ -878,7 +878,7 @@
// The fix is rolled out.
if (ke.getWhen() > marker.after) {
- focusLog.log(Level.FINER, "Storing event {0} because of marker {1}", new Object[] {ke, marker});
+ focusLog.finer("Storing event {0} because of marker {1}", ke, marker);
enqueuedKeyEvents.addLast(ke);
return true;
}
@@ -890,7 +890,7 @@
}
case FocusEvent.FOCUS_GAINED:
- focusLog.log(Level.FINEST, "Markers before FOCUS_GAINED on {0}", new Object[] {target});
+ focusLog.finest("Markers before FOCUS_GAINED on {0}", target);
dumpMarkers();
// Search the marker list for the first marker tied to
// the Component which just gained focus. Then remove
@@ -919,10 +919,10 @@
}
} else {
// Exception condition - event without marker
- focusLog.log(Level.FINER, "Event without marker {0}", e);
+ focusLog.finer("Event without marker {0}", e);
}
}
- focusLog.log(Level.FINEST, "Markers after FOCUS_GAINED");
+ focusLog.finest("Markers after FOCUS_GAINED");
dumpMarkers();
redispatchEvent(target, e);
@@ -1159,8 +1159,8 @@
return;
}
- focusLog.log(Level.FINER, "Enqueue at {0} for {1}",
- new Object[] {after, untilFocused});
+ focusLog.finer("Enqueue at {0} for {1}",
+ after, untilFocused);
int insertionIndex = 0,
i = typeAheadMarkers.size();
@@ -1199,8 +1199,8 @@
return;
}
- focusLog.log(Level.FINER, "Dequeue at {0} for {1}",
- new Object[] {after, untilFocused});
+ focusLog.finer("Dequeue at {0} for {1}",
+ after, untilFocused);
TypeAheadMarker marker;
ListIterator iter = typeAheadMarkers.listIterator
--- a/jdk/src/share/classes/java/awt/EventDispatchThread.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/EventDispatchThread.java Mon Oct 05 18:22:00 2009 -0700
@@ -36,7 +36,7 @@
import sun.awt.SunToolkit;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.dnd.SunDragSourceContextPeer;
import sun.awt.EventQueueDelegate;
@@ -61,7 +61,7 @@
* @since 1.1
*/
class EventDispatchThread extends Thread {
- private static final Logger eventLog = Logger.getLogger("java.awt.event.EventDispatchThread");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventDispatchThread");
private EventQueue theQueue;
private boolean doDispatch = true;
@@ -275,8 +275,8 @@
}
while (eventOK == false);
- if (eventLog.isLoggable(Level.FINEST)) {
- eventLog.log(Level.FINEST, "Dispatching: " + event);
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+ eventLog.finest("Dispatching: " + event);
}
Object handle = null;
@@ -308,8 +308,8 @@
}
private void processException(Throwable e) {
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "Processing exception: " + e);
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("Processing exception: " + e);
}
getUncaughtExceptionHandler().uncaughtException(this, e);
// don't rethrow the exception to avoid EDT recreation
--- a/jdk/src/share/classes/java/awt/EventQueue.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/EventQueue.java Mon Oct 05 18:22:00 2009 -0700
@@ -36,7 +36,7 @@
import java.security.PrivilegedAction;
import java.util.EmptyStackException;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.AppContext;
import sun.awt.AWTAutoShutdown;
@@ -153,7 +153,7 @@
private final String name = "AWT-EventQueue-" + nextThreadNum();
- private static final Logger eventLog = Logger.getLogger("java.awt.event.EventQueue");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
static {
AWTAccessor.setEventQueueAccessor(
@@ -707,8 +707,8 @@
* @since 1.2
*/
public synchronized void push(EventQueue newEventQueue) {
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "EventQueue.push(" + newEventQueue + ")");
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("EventQueue.push(" + newEventQueue + ")");
}
if (nextQueue != null) {
@@ -722,8 +722,8 @@
try {
newEventQueue.postEventPrivate(getNextEvent());
} catch (InterruptedException ie) {
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "Interrupted push", ie);
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("Interrupted push", ie);
}
}
}
@@ -766,8 +766,8 @@
* @since 1.2
*/
protected void pop() throws EmptyStackException {
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "EventQueue.pop(" + this + ")");
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("EventQueue.pop(" + this + ")");
}
// To prevent deadlock, we lock on the previous EventQueue before
@@ -790,8 +790,8 @@
try {
previousQueue.postEventPrivate(getNextEvent());
} catch (InterruptedException ie) {
- if (eventLog.isLoggable(Level.FINE)) {
- eventLog.log(Level.FINE, "Interrupted pop", ie);
+ if (eventLog.isLoggable(PlatformLogger.FINE)) {
+ eventLog.fine("Interrupted pop", ie);
}
}
}
--- a/jdk/src/share/classes/java/awt/Font.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Font.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,7 +30,6 @@
import java.awt.font.LineMetrics;
import java.awt.font.TextAttribute;
import java.awt.font.TextLayout;
-import java.awt.font.TransformAttribute;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
@@ -42,21 +41,21 @@
import java.text.AttributedCharacterIterator.Attribute;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
-import java.util.HashMap;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Map;
import sun.font.StandardGlyphVector;
-import sun.java2d.FontSupport;
import sun.font.AttributeMap;
import sun.font.AttributeValues;
-import sun.font.EAttribute;
import sun.font.CompositeFont;
import sun.font.CreatedFontTracker;
import sun.font.Font2D;
import sun.font.Font2DHandle;
+import sun.font.FontAccess;
import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
import sun.font.GlyphLayout;
import sun.font.FontLineMetrics;
import sun.font.CoreMetrics;
@@ -223,10 +222,29 @@
*/
public class Font implements java.io.Serializable
{
+ private static class FontAccessImpl extends FontAccess {
+ public Font2D getFont2D(Font font) {
+ return font.getFont2D();
+ }
+
+ public void setFont2D(Font font, Font2DHandle handle) {
+ font.font2DHandle = handle;
+ }
+
+ public void setCreatedFont(Font font) {
+ font.createdFont = true;
+ }
+
+ public boolean isCreatedFont(Font font) {
+ return font.createdFont;
+ }
+ }
+
static {
/* ensure that the necessary native libraries are loaded */
Toolkit.loadLibraries();
initIDs();
+ FontAccess.setFontAccess(new FontAccessImpl());
}
/**
@@ -464,16 +482,17 @@
}
private Font2D getFont2D() {
- if (FontManager.usingPerAppContextComposites &&
+ FontManager fm = FontManagerFactory.getInstance();
+ if (fm.usingPerAppContextComposites() &&
font2DHandle != null &&
font2DHandle.font2D instanceof CompositeFont &&
((CompositeFont)(font2DHandle.font2D)).isStdComposite()) {
- return FontManager.findFont2D(name, style,
+ return fm.findFont2D(name, style,
FontManager.LOGICAL_FALLBACK);
} else if (font2DHandle == null) {
font2DHandle =
- FontManager.findFont2D(name, style,
- FontManager.LOGICAL_FALLBACK).handle;
+ fm.findFont2D(name, style,
+ FontManager.LOGICAL_FALLBACK).handle;
}
/* Do not cache the de-referenced font2D. It must be explicitly
* de-referenced to pick up a valid font in the event that the
@@ -570,8 +589,8 @@
if (created) {
if (handle.font2D instanceof CompositeFont &&
handle.font2D.getStyle() != style) {
- this.font2DHandle =
- FontManager.getNewComposite(null, style, handle);
+ FontManager fm = FontManagerFactory.getInstance();
+ this.font2DHandle = fm.getNewComposite(null, style, handle);
} else {
this.font2DHandle = handle;
}
@@ -586,9 +605,9 @@
/* Font2D instances created by this method track their font file
* so that when the Font2D is GC'd it can also remove the file.
*/
- this.font2DHandle =
- FontManager.createFont2D(fontFile, fontFormat,
- isCopy, tracker).handle;
+ FontManager fm = FontManagerFactory.getInstance();
+ this.font2DHandle = fm.createFont2D(fontFile, fontFormat, isCopy,
+ tracker).handle;
this.name = this.font2DHandle.font2D.getFontName(Locale.getDefault());
this.style = Font.PLAIN;
this.size = 1;
@@ -640,8 +659,9 @@
}
if (handle.font2D instanceof CompositeFont) {
if (newStyle != -1 || newName != null) {
+ FontManager fm = FontManagerFactory.getInstance();
this.font2DHandle =
- FontManager.getNewComposite(newName, newStyle, handle);
+ fm.getNewComposite(newName, newStyle, handle);
}
} else if (newName != null) {
this.createdFont = false;
@@ -852,7 +872,6 @@
throw new IllegalArgumentException ("font format not recognized");
}
boolean copiedFontData = false;
-
try {
final File tFile = AccessController.doPrivileged(
new PrivilegedExceptionAction<File>() {
@@ -2320,7 +2339,7 @@
(values.getKerning() == 0 && values.getLigatures() == 0 &&
values.getBaselineTransform() == null);
if (simple) {
- simple = !FontManager.isComplexText(chars, beginIndex, limit);
+ simple = ! FontUtilities.isComplexText(chars, beginIndex, limit);
}
if (simple) {
--- a/jdk/src/share/classes/java/awt/GraphicsEnvironment.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,9 +27,14 @@
package java.awt;
import java.awt.image.BufferedImage;
+import java.security.AccessController;
import java.util.Locale;
+
+import sun.font.FontManager;
+import sun.font.FontManagerFactory;
import sun.java2d.HeadlessGraphicsEnvironment;
import sun.java2d.SunGraphicsEnvironment;
+import sun.security.action.GetPropertyAction;
/**
*
@@ -73,35 +78,53 @@
*/
public static synchronized GraphicsEnvironment getLocalGraphicsEnvironment() {
if (localEnv == null) {
- String nm = (String) java.security.AccessController.doPrivileged
- (new sun.security.action.GetPropertyAction
- ("java.awt.graphicsenv", null));
-
- try {
-// long t0 = System.currentTimeMillis();
- ClassLoader cl = ClassLoader.getSystemClassLoader();
- Class geCls = Class.forName(nm, true, cl);
- localEnv = (GraphicsEnvironment)geCls.newInstance();
-// long t1 = System.currentTimeMillis();
-// System.out.println("GE creation took " + (t1-t0)+ "ms.");
- if (isHeadless()) {
- localEnv = new HeadlessGraphicsEnvironment(localEnv);
- }
- } catch (ClassNotFoundException e) {
- throw new Error("Could not find class: "+nm);
- } catch (InstantiationException e) {
- throw new Error("Could not instantiate Graphics Environment: "
- + nm);
- } catch (IllegalAccessException e) {
- throw new Error ("Could not access Graphics Environment: "
- + nm);
- }
+ localEnv = createGE();
}
return localEnv;
}
/**
+ * Creates and returns the GraphicsEnvironment, according to the
+ * system property 'java.awt.graphicsenv'.
+ *
+ * @return the graphics environment
+ */
+ private static GraphicsEnvironment createGE() {
+ GraphicsEnvironment ge;
+ String nm = AccessController.doPrivileged(new GetPropertyAction("java.awt.graphicsenv", null));
+ try {
+// long t0 = System.currentTimeMillis();
+ Class geCls;
+ try {
+ // First we try if the bootclassloader finds the requested
+ // class. This way we can avoid to run in a privileged block.
+ geCls = Class.forName(nm);
+ } catch (ClassNotFoundException ex) {
+ // If the bootclassloader fails, we try again with the
+ // application classloader.
+ ClassLoader cl = ClassLoader.getSystemClassLoader();
+ geCls = Class.forName(nm, true, cl);
+ }
+ ge = (GraphicsEnvironment) geCls.newInstance();
+// long t1 = System.currentTimeMillis();
+// System.out.println("GE creation took " + (t1-t0)+ "ms.");
+ if (isHeadless()) {
+ localEnv = new HeadlessGraphicsEnvironment(localEnv);
+ }
+ } catch (ClassNotFoundException e) {
+ throw new Error("Could not find class: "+nm);
+ } catch (InstantiationException e) {
+ throw new Error("Could not instantiate Graphics Environment: "
+ + nm);
+ } catch (IllegalAccessException e) {
+ throw new Error ("Could not access Graphics Environment: "
+ + nm);
+ }
+ return ge;
+ }
+
+ /**
* Tests whether or not a display, keyboard, and mouse can be
* supported in this environment. If this method returns true,
* a HeadlessException is thrown from areas of the Toolkit
@@ -333,7 +356,8 @@
if (font == null) {
throw new NullPointerException("font cannot be null.");
}
- return sun.font.FontManager.registerFont(font);
+ FontManager fm = FontManagerFactory.getInstance();
+ return fm.registerFont(font);
}
/**
@@ -357,10 +381,8 @@
* @since 1.5
*/
public void preferLocaleFonts() {
- if (!(this instanceof SunGraphicsEnvironment)) {
- return;
- }
- sun.font.FontManager.preferLocaleFonts();
+ FontManager fm = FontManagerFactory.getInstance();
+ fm.preferLocaleFonts();
}
/**
@@ -380,10 +402,8 @@
* @since 1.5
*/
public void preferProportionalFonts() {
- if (!(this instanceof SunGraphicsEnvironment)) {
- return;
- }
- sun.font.FontManager.preferProportionalFonts();
+ FontManager fm = FontManagerFactory.getInstance();
+ fm.preferProportionalFonts();
}
/**
--- a/jdk/src/share/classes/java/awt/KeyboardFocusManager.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/KeyboardFocusManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -53,8 +53,7 @@
import java.util.StringTokenizer;
import java.util.WeakHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.AppContext;
import sun.awt.HeadlessToolkit;
@@ -111,7 +110,7 @@
{
// Shared focus engine logger
- private static final Logger focusLog = Logger.getLogger("java.awt.focus.KeyboardFocusManager");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.KeyboardFocusManager");
static {
/* ensure that the necessary native libraries are loaded */
@@ -154,7 +153,7 @@
*/
private static native void initIDs();
- private static final Logger log = Logger.getLogger("java.awt.KeyboardFocusManager");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.KeyboardFocusManager");
/**
* The identifier for the Forward focus traversal keys.
@@ -504,8 +503,8 @@
if (this == getCurrentKeyboardFocusManager()) {
return focusOwner;
} else {
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
}
throw new SecurityException(notPrivileged);
}
@@ -609,9 +608,9 @@
}
void setNativeFocusOwner(Component comp) {
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Calling peer {0} setCurrentFocusOwner for {1}",
- new Object[] {peer, comp});
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Calling peer {0} setCurrentFocusOwner for {1}",
+ peer, comp);
}
peer.setCurrentFocusOwner(comp);
}
@@ -673,8 +672,8 @@
if (this == getCurrentKeyboardFocusManager()) {
return permanentFocusOwner;
} else {
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
}
throw new SecurityException(notPrivileged);
}
@@ -781,8 +780,8 @@
if (this == getCurrentKeyboardFocusManager()) {
return focusedWindow;
} else {
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
}
throw new SecurityException(notPrivileged);
}
@@ -885,8 +884,8 @@
if (this == getCurrentKeyboardFocusManager()) {
return activeWindow;
} else {
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
}
throw new SecurityException(notPrivileged);
}
@@ -919,8 +918,8 @@
Window oldActiveWindow;
synchronized (KeyboardFocusManager.class) {
oldActiveWindow = getActiveWindow();
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "Setting global active window to " + activeWindow + ", old active " + oldActiveWindow);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("Setting global active window to " + activeWindow + ", old active " + oldActiveWindow);
}
try {
@@ -1215,8 +1214,8 @@
if (this == getCurrentKeyboardFocusManager()) {
return currentFocusCycleRoot;
} else {
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
}
throw new SecurityException(notPrivileged);
}
@@ -2149,9 +2148,9 @@
HeavyweightFocusRequest(Component heavyweight, Component descendant,
boolean temporary, CausedFocusEvent.Cause cause) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (heavyweight == null) {
- log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+ log.fine("Assertion (heavyweight != null) failed");
}
}
@@ -2161,12 +2160,12 @@
}
boolean addLightweightRequest(Component descendant,
boolean temporary, CausedFocusEvent.Cause cause) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (this == HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) {
- log.log(Level.FINE, "Assertion (this != HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) failed");
+ log.fine("Assertion (this != HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) failed");
}
if (descendant == null) {
- log.log(Level.FINE, "Assertion (descendant != null) failed");
+ log.fine("Assertion (descendant != null) failed");
}
}
@@ -2339,12 +2338,12 @@
(Component heavyweight, Component descendant, boolean temporary,
boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
{
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (heavyweight == null) {
- log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+ log.fine("Assertion (heavyweight != null) failed");
}
if (time == 0) {
- log.log(Level.FINE, "Assertion (time != 0) failed");
+ log.fine("Assertion (time != 0) failed");
}
}
@@ -2361,31 +2360,31 @@
Component currentFocusOwner = thisManager.getGlobalFocusOwner();
Component nativeFocusOwner = thisManager.getNativeFocusOwner();
Window nativeFocusedWindow = thisManager.getNativeFocusedWindow();
- if (focusLog.isLoggable(Level.FINER)) {
- focusLog.log(Level.FINER, "SNFH for {0} in {1}",
- new Object[] {descendant, heavyweight});
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
+ focusLog.finer("SNFH for {0} in {1}",
+ descendant, heavyweight);
}
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "0. Current focus owner {0}",
- currentFocusOwner);
- focusLog.log(Level.FINEST, "0. Native focus owner {0}",
- nativeFocusOwner);
- focusLog.log(Level.FINEST, "0. Native focused window {0}",
- nativeFocusedWindow);
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("0. Current focus owner {0}",
+ currentFocusOwner);
+ focusLog.finest("0. Native focus owner {0}",
+ nativeFocusOwner);
+ focusLog.finest("0. Native focused window {0}",
+ nativeFocusedWindow);
}
synchronized (heavyweightRequests) {
HeavyweightFocusRequest hwFocusRequest = getLastHWRequest();
- if (focusLog.isLoggable(Level.FINEST)) {
- focusLog.log(Level.FINEST, "Request {0}", hwFocusRequest);
+ if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+ focusLog.finest("Request {0}", hwFocusRequest);
}
if (hwFocusRequest == null &&
heavyweight == nativeFocusOwner)
{
if (descendant == currentFocusOwner) {
// Redundant request.
- if (focusLog.isLoggable(Level.FINEST))
- focusLog.log(Level.FINEST, "1. SNFH_FAILURE for {0}",
- descendant);
+ if (focusLog.isLoggable(PlatformLogger.FINEST))
+ focusLog.finest("1. SNFH_FAILURE for {0}",
+ descendant);
return SNFH_FAILURE;
}
@@ -2417,8 +2416,8 @@
// SunToolkit.postPriorityEvent(newFocusOwnerEvent);
SunToolkit.postEvent(descendant.appContext, newFocusOwnerEvent);
- if (focusLog.isLoggable(Level.FINEST))
- focusLog.log(Level.FINEST, "2. SNFH_HANDLED for {0}", descendant);
+ if (focusLog.isLoggable(PlatformLogger.FINEST))
+ focusLog.finest("2. SNFH_HANDLED for {0}", descendant);
return SNFH_SUCCESS_HANDLED;
} else if (hwFocusRequest != null &&
hwFocusRequest.heavyweight == heavyweight) {
@@ -2431,7 +2430,7 @@
manager.enqueueKeyEvents(time, descendant);
}
- if (focusLog.isLoggable(Level.FINEST))
+ if (focusLog.isLoggable(PlatformLogger.FINEST))
focusLog.finest("3. SNFH_HANDLED for lightweight" +
descendant + " in " + heavyweight);
return SNFH_SUCCESS_HANDLED;
@@ -2454,7 +2453,7 @@
(hwFocusRequest != null)
? hwFocusRequest.heavyweight
: nativeFocusedWindow)) {
- if (focusLog.isLoggable(Level.FINEST))
+ if (focusLog.isLoggable(PlatformLogger.FINEST))
focusLog.finest("4. SNFH_FAILURE for " + descendant);
return SNFH_FAILURE;
}
@@ -2464,7 +2463,7 @@
heavyweightRequests.add
(new HeavyweightFocusRequest(heavyweight, descendant,
temporary, cause));
- if (focusLog.isLoggable(Level.FINEST))
+ if (focusLog.isLoggable(PlatformLogger.FINEST))
focusLog.finest("5. SNFH_PROCEED for " + descendant);
return SNFH_SUCCESS_PROCEED;
}
@@ -2855,13 +2854,13 @@
}
KeyboardFocusManager manager = getCurrentKeyboardFocusManager();
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
if (event instanceof FocusEvent || event instanceof WindowEvent) {
- focusLog.log(Level.FINER, ">>> {0}", new Object[] {event});
+ focusLog.finer(">>> {0}", event);
}
- if (focusLog.isLoggable(Level.FINER) && event instanceof KeyEvent) {
- focusLog.log(Level.FINER, " focus owner is {0}", new Object[] {manager.getGlobalFocusOwner()});
- focusLog.log(Level.FINER, ">>> {0}", new Object[] {event});
+ if (focusLog.isLoggable(PlatformLogger.FINER) && event instanceof KeyEvent) {
+ focusLog.finer(" focus owner is {0}", manager.getGlobalFocusOwner());
+ focusLog.finer(">>> {0}", event);
}
}
@@ -2945,9 +2944,9 @@
}
}
static void removeLastFocusRequest(Component heavyweight) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (heavyweight == null) {
- log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+ log.fine("Assertion (heavyweight != null) failed");
}
}
--- a/jdk/src/share/classes/java/awt/SplashScreen.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/SplashScreen.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,8 +29,7 @@
import java.net.URL;
import java.net.URLConnection;
import java.io.File;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
import sun.awt.image.SunWritableRaster;
/**
@@ -204,8 +203,8 @@
}
}
catch(java.net.MalformedURLException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "MalformedURLException caught in the getImageURL() method", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("MalformedURLException caught in the getImageURL() method", e);
}
}
}
@@ -355,7 +354,7 @@
*/
private static SplashScreen theInstance = null;
- private static final Logger log = Logger.getLogger("java.awt.SplashScreen");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.SplashScreen");
private native static void _update(long splashPtr, int[] data, int x, int y, int width, int height, int scanlineStride);
private native static boolean _isVisible(long splashPtr);
--- a/jdk/src/share/classes/java/awt/Toolkit.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Toolkit.java Mon Oct 05 18:22:00 2009 -0700
@@ -48,7 +48,7 @@
import java.io.FileInputStream;
import java.util.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
@@ -1956,7 +1956,7 @@
*/
public abstract boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType);
- private static final Logger log = Logger.getLogger("java.awt.Toolkit");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Toolkit");
private static final int LONG_BITS = 64;
private int[] calls = new int[LONG_BITS];
@@ -2123,9 +2123,9 @@
}
synchronized int countAWTEventListeners(long eventMask) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (eventMask == 0) {
- log.log(Level.FINE, "Assertion (eventMask != 0) failed");
+ log.fine("Assertion (eventMask != 0) failed");
}
}
--- a/jdk/src/share/classes/java/awt/Window.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Window.java Mon Oct 05 18:22:00 2009 -0700
@@ -48,8 +48,6 @@
import java.util.ResourceBundle;
import java.util.Set;
import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.accessibility.*;
import sun.awt.AWTAccessor;
@@ -61,6 +59,7 @@
import sun.java2d.pipe.Region;
import sun.security.action.GetPropertyAction;
import sun.security.util.SecurityConstants;
+import sun.util.logging.PlatformLogger;
/**
* A <code>Window</code> object is a top-level window with no borders and no
@@ -324,7 +323,7 @@
*/
private static final long serialVersionUID = 4497834738069338734L;
- private static final Logger log = Logger.getLogger("java.awt.Window");
+ private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Window");
private static final boolean locationByPlatformProp;
@@ -2985,7 +2984,7 @@
}
synchronized (getTreeLock()) {
super.setGraphicsConfiguration(gc);
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("+ Window.setGraphicsConfiguration(): new GC is \n+ " + getGraphicsConfiguration_NoClientCode() + "\n+ this is " + this);
}
}
--- a/jdk/src/share/classes/java/awt/event/InputEvent.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/java/awt/event/InputEvent.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,8 +29,7 @@
import java.awt.Component;
import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
import java.util.Arrays;
/**
@@ -55,7 +54,7 @@
* @since 1.1
*/
public abstract class InputEvent extends ComponentEvent {
- private static final Logger log = Logger.getLogger("java.awt.event.InputEvent");
+ private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent");
/**
* The Shift key modifier constant.
@@ -344,8 +343,8 @@
sm.checkSystemClipboardAccess();
b = true;
} catch (SecurityException se) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "InputEvent.canAccessSystemClipboard() got SecurityException ", se);
+ if (logger.isLoggable(PlatformLogger.FINE)) {
+ logger.fine("InputEvent.canAccessSystemClipboard() got SecurityException ", se);
}
}
} else {
--- a/jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -32,7 +32,6 @@
import java.lang.ref.WeakReference;
import java.security.AccessController;
import java.util.*;
-import java.util.logging.*;
import com.sun.java.swing.SwingUtilities3;
@@ -41,6 +40,7 @@
import sun.security.action.GetPropertyAction;
import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
import sun.awt.SunToolkit;
+import sun.util.logging.PlatformLogger;
/**
* A PaintManager implementation that uses a BufferStrategy for
@@ -78,7 +78,7 @@
private static Method COMPONENT_CREATE_BUFFER_STRATEGY_METHOD;
private static Method COMPONENT_GET_BUFFER_STRATEGY_METHOD;
- private static final Logger LOGGER = Logger.getLogger(
+ private static final PlatformLogger LOGGER = PlatformLogger.getLogger(
"javax.swing.BufferStrategyPaintManager");
/**
@@ -222,9 +222,9 @@
}
private void dispose(java.util.List<BufferInfo> bufferInfos) {
- if (LOGGER.isLoggable(Level.FINER)) {
- LOGGER.log(Level.FINER, "BufferStrategyPaintManager disposed",
- new RuntimeException());
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+ LOGGER.finer("BufferStrategyPaintManager disposed",
+ new RuntimeException());
}
if (bufferInfos != null) {
for (BufferInfo bufferInfo : bufferInfos) {
@@ -305,7 +305,7 @@
}
}
// Invalid root, do what Swing has always done.
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("prepare failed");
}
return super.paint(paintingComponent, bufferComponent, g, x, y, w, h);
@@ -335,7 +335,7 @@
}
accumulate(x + xOffset + deltaX, y + yOffset + deltaY, w, h);
} else {
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("copyArea: prepare failed or not in sync");
}
// Prepare failed, or not in sync. By calling super.copyArea
@@ -363,7 +363,7 @@
}
}
}
- if (LOGGER.isLoggable(Level.FINEST)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINEST)) {
LOGGER.finest("beginPaint");
}
// Reset the area that needs to be painted.
@@ -371,7 +371,7 @@
}
public void endPaint() {
- if (LOGGER.isLoggable(Level.FINEST)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINEST)) {
LOGGER.finest("endPaint: region " + accumulatedX + " " +
accumulatedY + " " + accumulatedMaxX + " " +
accumulatedMaxY);
@@ -420,7 +420,7 @@
contentsLost = bufferStrategy.contentsLost();
}
if (contentsLost) {
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("endPaint: contents lost");
}
// Shown region was bogus, mark buffer as out of sync.
@@ -514,7 +514,7 @@
contentsLost = true;
bufferInfo = new BufferInfo(root);
bufferInfos.add(bufferInfo);
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("prepare: new BufferInfo: " + root);
}
}
@@ -525,7 +525,7 @@
bsg = bufferStrategy.getDrawGraphics();
if (bufferStrategy.contentsRestored()) {
contentsLost = true;
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer(
"prepare: contents restored in prepare");
}
@@ -539,7 +539,7 @@
if (bufferInfo.getContentsLostDuringExpose()) {
contentsLost = true;
bufferInfo.setContentsLostDuringExpose(false);
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("prepare: contents lost on expose");
}
}
@@ -642,7 +642,7 @@
if (biRoot == null) {
// Window gc'ed
bufferInfos.remove(counter);
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("BufferInfo pruned, root null");
}
}
@@ -748,7 +748,7 @@
if (bs != null) {
weakBS = new WeakReference<BufferStrategy>(bs);
}
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("getBufferStrategy: created bs: " + bs);
}
}
@@ -806,7 +806,7 @@
BufferStrategy bs = null;
if (SwingUtilities3.isVsyncRequested(root)) {
bs = createBufferStrategy(root, true);
- if (LOGGER.isLoggable(Level.FINER)) {
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
LOGGER.finer("createBufferStrategy: using vsynced strategy");
}
}
@@ -848,9 +848,9 @@
invoke(root);
} catch (InvocationTargetException ite) {
// Type is not supported
- if (LOGGER.isLoggable(Level.FINER)) {
- LOGGER.log(Level.FINER, "createBufferStratety failed",
- ite);
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+ LOGGER.finer("createBufferStratety failed",
+ ite);
}
} catch (IllegalArgumentException iae) {
assert false;
@@ -864,9 +864,9 @@
bs = ((Window)root).getBufferStrategy();
} catch (AWTException e) {
// Type not supported
- if (LOGGER.isLoggable(Level.FINER)) {
- LOGGER.log(Level.FINER, "createBufferStratety failed",
- e);
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+ LOGGER.finer("createBufferStratety failed",
+ e);
}
}
}
@@ -878,8 +878,8 @@
*/
public void dispose() {
Container root = getRoot();
- if (LOGGER.isLoggable(Level.FINER)) {
- LOGGER.log(Level.FINER, "disposed BufferInfo for: " + root);
+ if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+ LOGGER.finer("disposed BufferInfo for: " + root);
}
if (root != null) {
root.removeComponentListener(this);
--- a/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,7 +29,7 @@
import java.awt.Window;
import java.util.*;
import java.awt.FocusTraversalPolicy;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/**
* A FocusTraversalPolicy that determines traversal order by sorting the
@@ -64,7 +64,7 @@
private Comparator<? super Component> comparator;
private boolean implicitDownCycleTraversal = true;
- private Logger log = Logger.getLogger("javax.swing.SortingFocusTraversalPolicy");
+ private PlatformLogger log = PlatformLogger.getLogger("javax.swing.SortingFocusTraversalPolicy");
/**
* Used by getComponentAfter and getComponentBefore for efficiency. In
@@ -115,8 +115,8 @@
try {
index = Collections.binarySearch(cycle, aComponent, comparator);
} catch (ClassCastException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "### During the binary search for " + aComponent + " the exception occured: ", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("### During the binary search for " + aComponent + " the exception occured: ", e);
}
return -1;
}
@@ -193,7 +193,7 @@
if (getImplicitDownCycleTraversal()) {
retComp = cont.getFocusTraversalPolicy().getDefaultComponent(cont);
- if (retComp != null && log.isLoggable(Level.FINE)) {
+ if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Transfered focus down-cycle to " + retComp +
" in the focus cycle root " + cont);
}
@@ -205,7 +205,7 @@
cont.getFocusTraversalPolicy().getDefaultComponent(cont) :
cont.getFocusTraversalPolicy().getLastComponent(cont));
- if (retComp != null && log.isLoggable(Level.FINE)) {
+ if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Transfered focus to " + retComp + " in the FTP provider " + cont);
}
}
@@ -236,7 +236,7 @@
* aComponent is null
*/
public Component getComponentAfter(Container aContainer, Component aComponent) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Searching in " + aContainer + " for component after " + aComponent);
}
@@ -260,7 +260,7 @@
// See if the component is inside of policy provider.
Container provider = getTopmostProvider(aContainer, aComponent);
if (provider != null) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Asking FTP " + provider + " for component after " + aComponent);
}
@@ -271,7 +271,7 @@
// Null result means that we overstepped the limit of the FTP's cycle.
// In that case we must quit the cycle, otherwise return the component found.
if (afterComp != null) {
- if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + afterComp);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + afterComp);
return afterComp;
}
aComponent = provider;
@@ -279,12 +279,12 @@
List<Component> cycle = getFocusTraversalCycle(aContainer);
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
int index = getComponentIndex(cycle, aComponent);
if (index < 0) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
}
return getFirstComponent(aContainer);
@@ -349,7 +349,7 @@
// See if the component is inside of policy provider.
Container provider = getTopmostProvider(aContainer, aComponent);
if (provider != null) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Asking FTP " + provider + " for component after " + aComponent);
}
@@ -360,7 +360,7 @@
// Null result means that we overstepped the limit of the FTP's cycle.
// In that case we must quit the cycle, otherwise return the component found.
if (beforeComp != null) {
- if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + beforeComp);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + beforeComp);
return beforeComp;
}
aComponent = provider;
@@ -373,12 +373,12 @@
List<Component> cycle = getFocusTraversalCycle(aContainer);
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
int index = getComponentIndex(cycle, aComponent);
if (index < 0) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
}
return getLastComponent(aContainer);
@@ -424,7 +424,7 @@
public Component getFirstComponent(Container aContainer) {
List<Component> cycle;
- if (log.isLoggable(Level.FINE)) log.fine("### Getting first component in " + aContainer);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting first component in " + aContainer);
if (aContainer == null) {
throw new IllegalArgumentException("aContainer cannot be null");
}
@@ -436,10 +436,10 @@
}
if (cycle.size() == 0) {
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
return null;
}
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
for (Component comp : cycle) {
if (accept(comp)) {
@@ -466,7 +466,7 @@
*/
public Component getLastComponent(Container aContainer) {
List<Component> cycle;
- if (log.isLoggable(Level.FINE)) log.fine("### Getting last component in " + aContainer);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting last component in " + aContainer);
if (aContainer == null) {
throw new IllegalArgumentException("aContainer cannot be null");
@@ -479,10 +479,10 @@
}
if (cycle.size() == 0) {
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
return null;
}
- if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
for (int i= cycle.size() - 1; i >= 0; i--) {
Component comp = cycle.get(i);
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template Mon Oct 05 18:22:00 2009 -0700
@@ -26,7 +26,7 @@
import javax.swing.Painter;
import java.awt.Graphics;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
import sun.swing.plaf.synth.DefaultSynthStyle;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
@@ -131,7 +131,7 @@
//regions and their states that this class will use for later lookup.
//Additional regions can be registered later by 3rd party components.
//These are simply the default registrations.
- defaultFont = FontManager.getFontConfigFUIR("sans", Font.PLAIN, 12);
+ defaultFont = FontUtilities.getFontConfigFUIR("sans", Font.PLAIN, 12);
defaultStyle = new DefaultSynthStyle();
defaultStyle.setFont(defaultFont);
--- a/jdk/src/share/classes/javax/swing/text/StyleContext.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java Mon Oct 05 18:22:00 2009 -0700
@@ -35,7 +35,7 @@
import java.lang.ref.WeakReference;
import java.util.WeakHashMap;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
/**
* A pool of styles and their associated resources. This class determines
@@ -263,8 +263,8 @@
if (f == null) {
f = new Font(family, style, size);
}
- if (! FontManager.fontSupportsDefaultEncoding(f)) {
- f = FontManager.getCompositeFontUIResource(f);
+ if (! FontUtilities.fontSupportsDefaultEncoding(f)) {
+ f = FontUtilities.getCompositeFontUIResource(f);
}
FontKey key = new FontKey(family, style, size);
fontTable.put(key, f);
--- a/jdk/src/share/classes/sun/awt/AWTAutoShutdown.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/AWTAutoShutdown.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,7 +30,7 @@
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.Map;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
/**
* This class is to let AWT shutdown automatically when a user is done
@@ -363,7 +363,7 @@
}
}
- final void dumpPeers(final Logger aLog) {
+ final void dumpPeers(final PlatformLogger aLog) {
synchronized (activationLock) {
synchronized (mainLock) {
aLog.fine("Mapped peers:");
--- a/jdk/src/share/classes/sun/awt/AppContext.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/AppContext.java Mon Oct 05 18:22:00 2009 -0700
@@ -40,10 +40,9 @@
import java.util.Map;
import java.util.Set;
import java.util.HashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeListener;
+import sun.util.logging.PlatformLogger;
/**
* The AppContext is a table referenced by ThreadGroup which stores
@@ -128,7 +127,7 @@
* @author Fred Ecks
*/
public final class AppContext {
- private static final Logger log = Logger.getLogger("sun.awt.AppContext");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.AppContext");
/* Since the contents of an AppContext are unique to each Java
* session, this class should never be serialized. */
@@ -380,9 +379,7 @@
try {
w.dispose();
} catch (Throwable t) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "exception occured while disposing app context", t);
- }
+ log.finer("exception occured while disposing app context", t);
}
}
AccessController.doPrivileged(new PrivilegedAction() {
--- a/jdk/src/share/classes/sun/awt/ComponentAccessor.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/ComponentAccessor.java Mon Oct 05 18:22:00 2009 -0700
@@ -39,8 +39,7 @@
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -78,7 +77,7 @@
private static Method methodGetCursorNoClientCode;
private static Method methodLocationNoClientCode;
- private static final Logger log = Logger.getLogger("sun.awt.ComponentAccessor");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.ComponentAccessor");
private ComponentAccessor() {
}
@@ -136,13 +135,13 @@
methodLocationNoClientCode.setAccessible(true);
}
catch (NoSuchFieldException e) {
- log.log(Level.FINE, "Unable to initialize ComponentAccessor", e);
+ log.fine("Unable to initialize ComponentAccessor", e);
}
catch (ClassNotFoundException e) {
- log.log(Level.FINE, "Unable to initialize ComponentAccessor", e);
+ log.fine("Unable to initialize ComponentAccessor", e);
}
catch (NoSuchMethodException e) {
- log.log(Level.FINE, "Unable to initialize ComponentAccessor", e);
+ log.fine("Unable to initialize ComponentAccessor", e);
}
// to please javac
return null;
@@ -157,7 +156,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -168,7 +167,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -179,7 +178,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -190,7 +189,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -204,7 +203,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -214,7 +213,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return 0;
}
@@ -225,7 +224,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return 0;
}
@@ -236,7 +235,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return 0;
}
@@ -247,7 +246,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return 0;
}
@@ -258,7 +257,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return false;
}
@@ -271,10 +270,10 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
return parent;
@@ -288,10 +287,10 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
return font;
@@ -307,10 +306,10 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
}
@@ -322,10 +321,10 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
}
@@ -336,7 +335,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -348,7 +347,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return color;
}
@@ -361,7 +360,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return color;
}
@@ -372,7 +371,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -384,7 +383,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return f;
}
@@ -396,7 +395,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return peer;
}
@@ -406,7 +405,7 @@
fieldPeer.set(c, peer);
} catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
}
@@ -415,7 +414,7 @@
return fieldIgnoreRepaint.getBoolean(comp);
}
catch (IllegalAccessException e) {
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return false;
@@ -427,7 +426,7 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
return false;
}
@@ -439,10 +438,10 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
return enabled;
}
@@ -455,10 +454,10 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
return cursor;
@@ -472,12 +471,13 @@
}
catch (IllegalAccessException e)
{
- log.log(Level.FINE, "Unable to access the Component object", e);
+ log.fine("Unable to access the Component object", e);
}
catch (InvocationTargetException e) {
- log.log(Level.FINE, "Unable to invoke on the Component object", e);
+ log.fine("Unable to invoke on the Component object", e);
}
return loc;
}
+
}
--- a/jdk/src/share/classes/sun/awt/DebugSettings.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/DebugSettings.java Mon Oct 05 18:22:00 2009 -0700
@@ -28,7 +28,7 @@
import java.io.*;
import java.util.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/*
* Internal class that manages sun.awt.Debug settings.
@@ -72,7 +72,7 @@
* the fix for 4638447).
*/
final class DebugSettings {
- private static final Logger log = Logger.getLogger("sun.awt.debug.DebugSettings");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.debug.DebugSettings");
/* standard debug property key names */
static final String PREFIX = "awtdebug";
@@ -128,8 +128,8 @@
});
// echo the initial property settings to stdout
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "DebugSettings:\n{0}", this);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("DebugSettings:\n{0}" + this);
}
}
@@ -258,8 +258,8 @@
}
private void println(Object object) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, object.toString());
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer(object.toString());
}
}
--- a/jdk/src/share/classes/sun/awt/FontConfiguration.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/FontConfiguration.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,7 +30,6 @@
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -38,7 +37,6 @@
import java.nio.charset.CharsetEncoder;
import java.security.AccessController;
import java.security.PrivilegedAction;
-import java.util.logging.Logger;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
@@ -49,7 +47,10 @@
import java.util.Set;
import java.util.Vector;
import sun.font.CompositeFontDescriptor;
-import sun.java2d.SunGraphicsEnvironment;
+import sun.font.SunFontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
+import sun.util.logging.PlatformLogger;
/**
* Provides the definitions of the five logical fonts: Serif, SansSerif,
@@ -65,10 +66,10 @@
protected static Locale startupLocale = null;
protected static Hashtable localeMap = null;
private static FontConfiguration fontConfig;
- private static Logger logger;
+ private static PlatformLogger logger;
protected static boolean isProperties = true;
- protected SunGraphicsEnvironment environment;
+ protected SunFontManager fontManager;
protected boolean preferLocaleFonts;
protected boolean preferPropFonts;
@@ -80,11 +81,11 @@
/* A default FontConfiguration must be created before an alternate
* one to ensure proper static initialisation takes place.
*/
- public FontConfiguration(SunGraphicsEnvironment environment) {
- if (SunGraphicsEnvironment.debugFonts && logger == null) {
- logger = Logger.getLogger("sun.awt.FontConfiguration");
+ public FontConfiguration(SunFontManager fm) {
+ if (FontUtilities.debugFonts() && logger == null) {
+ logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
}
- this.environment = environment;
+ fontManager = fm;
setOsNameAndVersion(); /* static initialization */
setEncoding(); /* static initialization */
/* Separating out the file location from the rest of the
@@ -106,10 +107,10 @@
return true;
}
- public FontConfiguration(SunGraphicsEnvironment environment,
+ public FontConfiguration(SunFontManager fm,
boolean preferLocaleFonts,
boolean preferPropFonts) {
- this.environment = environment;
+ fontManager = fm;
this.preferLocaleFonts = preferLocaleFonts;
this.preferPropFonts = preferPropFonts;
/* fontConfig should be initialised by default constructor, and
@@ -198,17 +199,17 @@
loadBinary(in);
}
in.close();
- if (SunGraphicsEnvironment.debugFonts) {
+ if (FontUtilities.debugFonts()) {
logger.config("Read logical font configuration from " + f);
}
} catch (IOException e) {
- if (SunGraphicsEnvironment.debugFonts) {
+ if (FontUtilities.debugFonts()) {
logger.config("Failed to read logical font configuration from " + f);
}
}
}
String version = getVersion();
- if (!"1".equals(version) && SunGraphicsEnvironment.debugFonts) {
+ if (!"1".equals(version) && FontUtilities.debugFonts()) {
logger.config("Unsupported fontconfig version: " + version);
}
}
@@ -219,8 +220,8 @@
File fallbackDir = new File(fallbackDirName);
if (fallbackDir.exists() && fallbackDir.isDirectory()) {
- String[] ttfs = fallbackDir.list(SunGraphicsEnvironment.ttFilter);
- String[] t1s = fallbackDir.list(SunGraphicsEnvironment.t1Filter);
+ String[] ttfs = fallbackDir.list(fontManager.getTrueTypeFilter());
+ String[] t1s = fallbackDir.list(fontManager.getType1Filter());
int numTTFs = (ttfs == null) ? 0 : ttfs.length;
int numT1s = (t1s == null) ? 0 : t1s.length;
int len = numTTFs + numT1s;
@@ -236,7 +237,7 @@
installedFallbackFontFiles[i+numTTFs] =
fallbackDir + File.separator + t1s[i];
}
- environment.registerFontsInDir(fallbackDirName);
+ fontManager.registerFontsInDir(fallbackDirName);
}
}
@@ -365,7 +366,7 @@
stringTable = new StringBuilder(4096);
if (verbose && logger == null) {
- logger = Logger.getLogger("sun.awt.FontConfiguration");
+ logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
}
new PropertiesHandler().load(in);
@@ -465,7 +466,7 @@
nameIDs[index] = getComponentFontID(coreScripts[index],
fontIndex, styleIndex);
if (preferLocaleFonts && localeMap != null &&
- sun.font.FontManager.usingAlternateFontforJALocales()) {
+ fontManager.usingAlternateFontforJALocales()) {
nameIDs[index] = remapLocaleMap(fontIndex, styleIndex,
coreScripts[index], nameIDs[index]);
}
@@ -480,7 +481,7 @@
short id = getComponentFontID(fallbackScripts[i],
fontIndex, styleIndex);
if (preferLocaleFonts && localeMap != null &&
- sun.font.FontManager.usingAlternateFontforJALocales()) {
+ fontManager.usingAlternateFontforJALocales()) {
id = remapLocaleMap(fontIndex, styleIndex, fallbackScripts[i], id);
}
if (preferPropFonts) {
@@ -973,8 +974,8 @@
public CompositeFontDescriptor[] get2DCompositeFontInfo() {
CompositeFontDescriptor[] result =
new CompositeFontDescriptor[NUM_FONTS * NUM_STYLES];
- String defaultFontFile = environment.getDefaultFontFile();
- String defaultFontFaceName = environment.getDefaultFontFaceName();
+ String defaultFontFile = fontManager.getDefaultFontFile();
+ String defaultFontFaceName = fontManager.getDefaultFontFaceName();
for (int fontIndex = 0; fontIndex < NUM_FONTS; fontIndex++) {
String fontName = publicFontNames[fontIndex];
@@ -1121,7 +1122,7 @@
*/
HashMap<String, Boolean> existsMap;
public boolean needToSearchForFile(String fileName) {
- if (!environment.isLinux) {
+ if (!FontUtilities.isLinux) {
return false;
} else if (existsMap == null) {
existsMap = new HashMap<String, Boolean>();
@@ -1139,7 +1140,7 @@
} else {
exists = Boolean.valueOf((new File(fileName)).exists());
existsMap.put(fileName, exists);
- if (SunGraphicsEnvironment.debugFonts &&
+ if (FontUtilities.debugFonts() &&
exists == Boolean.FALSE) {
logger.warning("Couldn't locate font file " + fileName);
}
@@ -2067,7 +2068,8 @@
throw new Exception();
}
} catch (Exception e) {
- if (SunGraphicsEnvironment.debugFonts && logger != null) {
+ if (FontUtilities.debugFonts() &&
+ logger != null) {
logger.config("Failed parsing " + key +
" property of font configuration.");
--- a/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java Mon Oct 05 18:22:00 2009 -0700
@@ -39,12 +39,11 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
public abstract class KeyboardFocusManagerPeerImpl implements KeyboardFocusManagerPeer {
- private static final Logger focusLog = Logger.getLogger("sun.awt.focus.KeyboardFocusManagerPeerImpl");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.focus.KeyboardFocusManagerPeerImpl");
private static AWTAccessor.KeyboardFocusManagerAccessor kfmAccessor =
AWTAccessor.getKeyboardFocusManagerAccessor();
@@ -64,7 +63,8 @@
public void clearGlobalFocusOwner(Window activeWindow) {
if (activeWindow != null) {
Component focusOwner = activeWindow.getFocusOwner();
- if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Clearing global focus owner " + focusOwner);
+ if (focusLog.isLoggable(PlatformLogger.FINE))
+ focusLog.fine("Clearing global focus owner " + focusOwner);
if (focusOwner != null) {
FocusEvent fl = new CausedFocusEvent(focusOwner, FocusEvent.FOCUS_LOST, false, null,
CausedFocusEvent.Cause.CLEAR_GLOBAL_FOCUS_OWNER);
@@ -130,14 +130,16 @@
FocusEvent fl = new CausedFocusEvent(currentOwner, FocusEvent.FOCUS_LOST,
false, lightweightChild, cause);
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Posting focus event: " + fl);
+ if (focusLog.isLoggable(PlatformLogger.FINER))
+ focusLog.finer("Posting focus event: " + fl);
SunToolkit.postPriorityEvent(fl);
}
FocusEvent fg = new CausedFocusEvent(lightweightChild, FocusEvent.FOCUS_GAINED,
false, currentOwner, cause);
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Posting focus event: " + fg);
+ if (focusLog.isLoggable(PlatformLogger.FINER))
+ focusLog.finer("Posting focus event: " + fg);
SunToolkit.postPriorityEvent(fg);
return true;
}
--- a/jdk/src/share/classes/sun/awt/ScrollPaneWheelScroller.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/ScrollPaneWheelScroller.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,7 +30,7 @@
import java.awt.Adjustable;
import java.awt.event.MouseWheelEvent;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/*
* ScrollPaneWheelScroller is a helper class for implmenenting mouse wheel
@@ -39,7 +39,7 @@
*/
public abstract class ScrollPaneWheelScroller {
- private static final Logger log = Logger.getLogger("sun.awt.ScrollPaneWheelScroller");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.ScrollPaneWheelScroller");
private ScrollPaneWheelScroller() {}
@@ -47,8 +47,8 @@
* Called from ScrollPane.processMouseWheelEvent()
*/
public static void handleWheelScrolling(ScrollPane sp, MouseWheelEvent e) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "x = " + e.getX() + ", y = " + e.getY() + ", src is " + e.getSource());
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("x = " + e.getX() + ", y = " + e.getY() + ", src is " + e.getSource());
}
int increment = 0;
@@ -56,8 +56,8 @@
Adjustable adj = getAdjustableToScroll(sp);
if (adj != null) {
increment = getIncrementFromAdjustable(adj, e);
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "increment from adjustable(" + adj.getClass() + ") : " + increment);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("increment from adjustable(" + adj.getClass() + ") : " + increment);
}
scrollAdjustable(adj, increment);
}
@@ -74,8 +74,8 @@
// if policy is display always or never, use vert
if (policy == ScrollPane.SCROLLBARS_ALWAYS ||
policy == ScrollPane.SCROLLBARS_NEVER) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "using vertical scrolling due to scrollbar policy");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("using vertical scrolling due to scrollbar policy");
}
return sp.getVAdjustable();
@@ -85,31 +85,31 @@
Insets ins = sp.getInsets();
int vertScrollWidth = sp.getVScrollbarWidth();
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "insets: l = " + ins.left + ", r = " + ins.right +
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("insets: l = " + ins.left + ", r = " + ins.right +
", t = " + ins.top + ", b = " + ins.bottom);
- log.log(Level.FINER, "vertScrollWidth = " + vertScrollWidth);
+ log.finer("vertScrollWidth = " + vertScrollWidth);
}
// Check if scrollbar is showing by examining insets of the
// ScrollPane
if (ins.right >= vertScrollWidth) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "using vertical scrolling because scrollbar is present");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("using vertical scrolling because scrollbar is present");
}
return sp.getVAdjustable();
}
else {
int horizScrollHeight = sp.getHScrollbarHeight();
if (ins.bottom >= horizScrollHeight) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "using horiz scrolling because scrollbar is present");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("using horiz scrolling because scrollbar is present");
}
return sp.getHAdjustable();
}
else {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "using NO scrollbar becsause neither is present");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("using NO scrollbar becsause neither is present");
}
return null;
}
@@ -124,9 +124,9 @@
*/
public static int getIncrementFromAdjustable(Adjustable adj,
MouseWheelEvent e) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (adj == null) {
- log.log(Level.FINE, "Assertion (adj != null) failed");
+ log.fine("Assertion (adj != null) failed");
}
}
@@ -146,19 +146,19 @@
* bounds and sets the new value to the Adjustable.
*/
public static void scrollAdjustable(Adjustable adj, int amount) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (adj == null) {
- log.log(Level.FINE, "Assertion (adj != null) failed");
+ log.fine("Assertion (adj != null) failed");
}
if (amount == 0) {
- log.log(Level.FINE, "Assertion (amount != 0) failed");
+ log.fine("Assertion (amount != 0) failed");
}
}
int current = adj.getValue();
int upperLimit = adj.getMaximum() - adj.getVisibleAmount();
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "doScrolling by " + amount);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("doScrolling by " + amount);
}
if (amount > 0 && current < upperLimit) { // still some room to scroll
--- a/jdk/src/share/classes/sun/awt/SunDisplayChanger.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/SunDisplayChanger.java Mon Oct 05 18:22:00 2009 -0700
@@ -33,7 +33,7 @@
import java.util.HashMap;
import java.util.WeakHashMap;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/**
* This class is used to aid in keeping track of DisplayChangedListeners and
@@ -54,7 +54,7 @@
* screen to another on a system equipped with multiple displays.
*/
public class SunDisplayChanger {
- private static final Logger log = Logger.getLogger("sun.awt.multiscreen.SunDisplayChanger");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.multiscreen.SunDisplayChanger");
// Create a new synchronizedMap with initial capacity of one listener.
// It is asserted that the most common case is to have one GraphicsDevice
@@ -68,13 +68,13 @@
* notified when the display is changed.
*/
public void add(DisplayChangedListener theListener) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (theListener == null) {
- log.log(Level.FINE, "Assertion (theListener != null) failed");
+ log.fine("Assertion (theListener != null) failed");
}
}
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "Adding listener: " + theListener);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("Adding listener: " + theListener);
}
listeners.put(theListener, null);
}
@@ -83,13 +83,13 @@
* Remove the given DisplayChangeListener from this SunDisplayChanger.
*/
public void remove(DisplayChangedListener theListener) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (theListener == null) {
- log.log(Level.FINE, "Assertion (theListener != null) failed");
+ log.fine("Assertion (theListener != null) failed");
}
}
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "Removing listener: " + theListener);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("Removing listener: " + theListener);
}
listeners.remove(theListener);
}
@@ -99,8 +99,8 @@
* taken place by calling their displayChanged() methods.
*/
public void notifyListeners() {
- if (log.isLoggable(Level.FINEST)) {
- log.log(Level.FINEST, "notifyListeners");
+ if (log.isLoggable(PlatformLogger.FINEST)) {
+ log.finest("notifyListeners");
}
// This method is implemented by making a clone of the set of listeners,
// and then iterating over the clone. This is because during the course
@@ -126,8 +126,8 @@
DisplayChangedListener current =
(DisplayChangedListener) itr.next();
try {
- if (log.isLoggable(Level.FINEST)) {
- log.log(Level.FINEST, "displayChanged for listener: " + current);
+ if (log.isLoggable(PlatformLogger.FINEST)) {
+ log.finest("displayChanged for listener: " + current);
}
current.displayChanged();
} catch (IllegalComponentStateException e) {
@@ -146,7 +146,7 @@
* taken place by calling their paletteChanged() methods.
*/
public void notifyPaletteChanged() {
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("notifyPaletteChanged");
}
// This method is implemented by making a clone of the set of listeners,
@@ -172,8 +172,8 @@
DisplayChangedListener current =
(DisplayChangedListener) itr.next();
try {
- if (log.isLoggable(Level.FINEST)) {
- log.log(Level.FINEST, "paletteChanged for listener: " + current);
+ if (log.isLoggable(PlatformLogger.FINEST)) {
+ log.finest("paletteChanged for listener: " + current);
}
current.paletteChanged();
} catch (IllegalComponentStateException e) {
--- a/jdk/src/share/classes/sun/awt/SunGraphicsCallback.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/SunGraphicsCallback.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,14 +27,14 @@
import java.awt.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
public abstract class SunGraphicsCallback {
public static final int HEAVYWEIGHTS = 0x1;
public static final int LIGHTWEIGHTS = 0x2;
public static final int TWO_PASSES = 0x4;
- private static final Logger log = Logger.getLogger("sun.awt.SunGraphicsCallback");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.SunGraphicsCallback");
public abstract void run(Component comp, Graphics cg);
@@ -87,11 +87,11 @@
int ncomponents = comps.length;
Shape clip = g.getClip();
- if (log.isLoggable(Level.FINER) && (clip != null)) {
+ if (log.isLoggable(PlatformLogger.FINER) && (clip != null)) {
Rectangle newrect = clip.getBounds();
- log.log(Level.FINER, "x = " + newrect.x + ", y = " + newrect.y +
- ", width = " + newrect.width +
- ", height = " + newrect.height);
+ log.finer("x = " + newrect.x + ", y = " + newrect.y +
+ ", width = " + newrect.width +
+ ", height = " + newrect.height);
}
// A seriously sad hack--
--- a/jdk/src/share/classes/sun/awt/SunToolkit.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java Mon Oct 05 18:22:00 2009 -0700
@@ -40,8 +40,7 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.misc.SoftCache;
import sun.font.FontDesignMetrics;
import sun.awt.im.InputContext;
@@ -61,7 +60,7 @@
implements WindowClosingSupport, WindowClosingListener,
ComponentFactory, InputMethodSupport, KeyboardFocusManagerPeerProvider {
- private static final Logger log = Logger.getLogger("sun.awt.SunToolkit");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.SunToolkit");
/* Load debug settings for native code */
static {
@@ -986,9 +985,9 @@
//with scale factors x1, x3/4, x2/3, xN, x1/N.
Image im = i.next();
if (im == null) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "SunToolkit.getScaledIconImage: " +
- "Skipping the image passed into Java because it's null.");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("SunToolkit.getScaledIconImage: " +
+ "Skipping the image passed into Java because it's null.");
}
continue;
}
@@ -1002,9 +1001,9 @@
iw = im.getWidth(null);
ih = im.getHeight(null);
} catch (Exception e){
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "SunToolkit.getScaledIconImage: " +
- "Perhaps the image passed into Java is broken. Skipping this icon.");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("SunToolkit.getScaledIconImage: " +
+ "Perhaps the image passed into Java is broken. Skipping this icon.");
}
continue;
}
@@ -1077,8 +1076,8 @@
try {
int x = (width - bestWidth) / 2;
int y = (height - bestHeight) / 2;
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "WWindowPeer.getScaledIconData() result : " +
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("WWindowPeer.getScaledIconData() result : " +
"w : " + width + " h : " + height +
" iW : " + bestImage.getWidth(null) + " iH : " + bestImage.getHeight(null) +
" sim : " + bestSimilarity + " sf : " + bestScaleFactor +
@@ -1095,9 +1094,9 @@
public static DataBufferInt getScaledIconData(java.util.List<Image> imageList, int width, int height) {
BufferedImage bimage = getScaledIconImage(imageList, width, height);
if (bimage == null) {
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "SunToolkit.getScaledIconData: " +
- "Perhaps the image passed into Java is broken. Skipping this icon.");
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("SunToolkit.getScaledIconData: " +
+ "Perhaps the image passed into Java is broken. Skipping this icon.");
}
return null;
}
@@ -1913,7 +1912,7 @@
}
}
- protected static void dumpPeers(final Logger aLog) {
+ protected static void dumpPeers(final PlatformLogger aLog) {
AWTAutoShutdown.getInstance().dumpPeers(aLog);
}
--- a/jdk/src/share/classes/sun/awt/WindowAccessor.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/WindowAccessor.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,8 +29,7 @@
import java.lang.reflect.Field;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -41,7 +40,7 @@
private static Field fieldIsAutoRequestFocus;
private static Field fieldIsTrayIconWindow;
- private static final Logger log = Logger.getLogger("sun.awt.WindowAccessor");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.WindowAccessor");
private WindowAccessor() {
}
@@ -57,9 +56,9 @@
fieldIsTrayIconWindow.setAccessible(true);
} catch (NoSuchFieldException e) {
- log.log(Level.FINE, "Unable to initialize WindowAccessor: ", e);
+ log.fine("Unable to initialize WindowAccessor: ", e);
} catch (ClassNotFoundException e) {
- log.log(Level.FINE, "Unable to initialize WindowAccessor: ", e);
+ log.fine("Unable to initialize WindowAccessor: ", e);
}
return null;
}
@@ -71,7 +70,7 @@
return fieldIsAutoRequestFocus.getBoolean(w);
} catch (IllegalAccessException e) {
- log.log(Level.FINE, "Unable to access the Window object", e);
+ log.fine("Unable to access the Window object", e);
}
return true;
}
@@ -81,7 +80,7 @@
return fieldIsTrayIconWindow.getBoolean(w);
} catch (IllegalAccessException e) {
- log.log(Level.FINE, "Unable to access the Window object", e);
+ log.fine("Unable to access the Window object", e);
}
return false;
}
@@ -91,7 +90,7 @@
fieldIsTrayIconWindow.set(w, isTrayIconWindow);
} catch (IllegalAccessException e) {
- log.log(Level.FINE, "Unable to access the Window object", e);
+ log.fine("Unable to access the Window object", e);
}
}
}
--- a/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java Mon Oct 05 18:22:00 2009 -0700
@@ -89,7 +89,7 @@
import java.util.TreeMap;
import java.util.TreeSet;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.AppContext;
import sun.awt.SunToolkit;
@@ -222,7 +222,7 @@
*/
private static DataTransferer transferer;
- private static final Logger dtLog = Logger.getLogger("sun.awt.datatransfer.DataTransfer");
+ private static final PlatformLogger dtLog = PlatformLogger.getLogger("sun.awt.datatransfer.DataTransfer");
static {
Class tCharArrayClass = null, tByteArrayClass = null;
@@ -382,9 +382,9 @@
* "text".
*/
public static boolean doesSubtypeSupportCharset(DataFlavor flavor) {
- if (dtLog.isLoggable(Level.FINE)) {
+ if (dtLog.isLoggable(PlatformLogger.FINE)) {
if (!"text".equals(flavor.getPrimaryType())) {
- dtLog.log(Level.FINE, "Assertion (\"text\".equals(flavor.getPrimaryType())) failed");
+ dtLog.fine("Assertion (\"text\".equals(flavor.getPrimaryType())) failed");
}
}
--- a/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -48,7 +48,7 @@
import java.util.Map;
import java.util.Arrays;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import java.io.IOException;
import java.io.InputStream;
@@ -99,7 +99,7 @@
protected static final Object _globalLock = new Object();
- private static final Logger dndLog = Logger.getLogger("sun.awt.dnd.SunDropTargetContextPeer");
+ private static final PlatformLogger dndLog = PlatformLogger.getLogger("sun.awt.dnd.SunDropTargetContextPeer");
/*
* a primitive mechanism for advertising intra-JVM Transferables
@@ -845,8 +845,8 @@
void registerEvent(SunDropTargetEvent e) {
handler.lock();
- if (!eventSet.add(e) && dndLog.isLoggable(Level.FINE)) {
- dndLog.log(Level.FINE, "Event is already registered: " + e);
+ if (!eventSet.add(e) && dndLog.isLoggable(PlatformLogger.FINE)) {
+ dndLog.fine("Event is already registered: " + e);
}
handler.unlock();
}
--- a/jdk/src/share/classes/sun/awt/im/InputContext.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/im/InputContext.java Mon Oct 05 18:22:00 2009 -0700
@@ -50,9 +50,9 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
-import java.util.logging.*;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
+import sun.util.logging.PlatformLogger;
import sun.awt.SunToolkit;
/**
@@ -67,7 +67,7 @@
public class InputContext extends java.awt.im.InputContext
implements ComponentListener, WindowListener {
- private static final Logger log = Logger.getLogger("sun.awt.im.InputContext");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.im.InputContext");
// The current input method is represented by two objects:
// a locator is used to keep information about the selected
// input method and locale until we actually need a real input
@@ -386,7 +386,7 @@
}
previousInputMethod = null;
- if (log.isLoggable(Level.FINE)) log.fine("Current client component " + currentClientComponent);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Current client component " + currentClientComponent);
if (inputMethod instanceof InputMethodAdapter) {
((InputMethodAdapter) inputMethod).setClientComponent(currentClientComponent);
}
@@ -889,7 +889,7 @@
{inputMethodLocator.getDescriptor().getInputMethodDisplayName(null, Locale.getDefault()),
throwable.getLocalizedMessage()};
MessageFormat mf = new MessageFormat(errorTextFormat);
- Logger logger = Logger.getLogger("sun.awt.im");
+ PlatformLogger logger = PlatformLogger.getLogger("sun.awt.im");
logger.config(mf.format(args));
}
--- a/jdk/src/share/classes/sun/font/CMap.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/CMap.java Mon Oct 05 18:22:00 2009 -0700
@@ -232,7 +232,7 @@
* fonts are using gb2312 encoding, have to use this
* workaround to make Solaris zh_CN locale work. -sherman
*/
- if (FontManager.isSolaris && font.platName != null &&
+ if (FontUtilities.isSolaris && font.platName != null &&
(font.platName.startsWith(
"/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType") ||
font.platName.startsWith(
@@ -407,8 +407,8 @@
subtableLength = buffer.getInt(offset+4) & INTMASK;
}
if (offset+subtableLength > buffer.capacity()) {
- if (FontManager.logging) {
- FontManager.logger.warning("Cmap subtable overflows buffer.");
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().warning("Cmap subtable overflows buffer.");
}
}
switch (subtableFormat) {
--- a/jdk/src/share/classes/sun/font/CompositeFont.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/CompositeFont.java Mon Oct 05 18:22:00 2009 -0700
@@ -60,7 +60,7 @@
public CompositeFont(String name, String[] compFileNames,
String[] compNames, int metricsSlotCnt,
int[] exclRanges, int[] maxIndexes,
- boolean defer) {
+ boolean defer, SunFontManager fm) {
handle = new Font2DHandle(this);
fullName = name;
@@ -85,13 +85,13 @@
* The caller could be responsible for this, but for now it seems
* better that it is handled internally to the CompositeFont class.
*/
- if (FontManager.eudcFont != null) {
+ if (fm.getEUDCFont() != null) {
numSlots++;
if (componentNames != null) {
componentNames = new String[numSlots];
System.arraycopy(compNames, 0, componentNames, 0, numSlots-1);
componentNames[numSlots-1] =
- FontManager.eudcFont.getFontName(null);
+ fm.getEUDCFont().getFontName(null);
}
if (componentFileNames != null) {
componentFileNames = new String[numSlots];
@@ -99,7 +99,7 @@
componentFileNames, 0, numSlots-1);
}
components = new PhysicalFont[numSlots];
- components[numSlots-1] = FontManager.eudcFont;
+ components[numSlots-1] = fm.getEUDCFont();
deferredInitialisation = new boolean[numSlots];
if (defer) {
for (int i=0; i<numSlots-1; i++) {
@@ -165,7 +165,7 @@
* it is harmless that we do not know a slot is already initialised
* and just need to discover that and mark it so.
*/
- synchronized (FontManager.class) {
+ synchronized (FontManagerFactory.getInstance()) {
components = new PhysicalFont[numSlots];
components[0] = physFont;
System.arraycopy(compFont.components, 0,
@@ -235,7 +235,8 @@
* This global lock is rarely likely to be an issue as there
* are only going to be a few calls into this code.
*/
- synchronized (FontManager.class) {
+ SunFontManager fm = SunFontManager.getInstance();
+ synchronized (fm) {
if (componentNames == null) {
componentNames = new String[numSlots];
}
@@ -251,22 +252,21 @@
*/
if (componentFileNames != null &&
componentFileNames[slot] != null) {
- components[slot] = FontManager.initialiseDeferredFont
- (componentFileNames[slot]);
+ components[slot] =
+ fm.initialiseDeferredFont(componentFileNames[slot]);
}
if (components[slot] == null) {
- components[slot] = FontManager.getDefaultPhysicalFont();
+ components[slot] = fm.getDefaultPhysicalFont();
}
String name = components[slot].getFontName(null);
if (componentNames[slot] == null) {
componentNames[slot] = name;
} else if (!componentNames[slot].equalsIgnoreCase(name)) {
components[slot] =
- (PhysicalFont)
- FontManager.findFont2D(componentNames[slot],
- style,
- FontManager.PHYSICAL_FALLBACK);
+ (PhysicalFont) fm.findFont2D(componentNames[slot],
+ style,
+ FontManager.PHYSICAL_FALLBACK);
}
}
deferredInitialisation[slot] = false;
@@ -333,21 +333,22 @@
if (deferredInitialisation[slot]) {
doDeferredInitialisation(slot);
}
+ SunFontManager fm = SunFontManager.getInstance();
try {
PhysicalFont font = components[slot];
if (font == null) {
try {
- font = (PhysicalFont)FontManager.
+ font = (PhysicalFont) fm.
findFont2D(componentNames[slot], style,
FontManager.PHYSICAL_FALLBACK);
components[slot] = font;
} catch (ClassCastException cce) {
- font = FontManager.getDefaultPhysicalFont();
+ font = fm.getDefaultPhysicalFont();
}
}
return font;
} catch (Exception e) {
- return FontManager.getDefaultPhysicalFont();
+ return fm.getDefaultPhysicalFont();
}
}
--- a/jdk/src/share/classes/sun/font/CompositeGlyphMapper.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/CompositeGlyphMapper.java Mon Oct 05 18:22:00 2009 -0700
@@ -211,10 +211,10 @@
glyphs[i] = convertToGlyph(code);
}
- if (code < FontManager.MIN_LAYOUT_CHARCODE) {
+ if (code < FontUtilities.MIN_LAYOUT_CHARCODE) {
continue;
}
- else if (FontManager.isComplexCharCode(code)) {
+ else if (FontUtilities.isComplexCharCode(code)) {
return true;
}
else if (code >= 0x10000) {
--- a/jdk/src/share/classes/sun/font/FileFont.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FileFont.java Mon Oct 05 18:22:00 2009 -0700
@@ -158,7 +158,8 @@
* rare maybe it is not worth doing this last part.
*/
synchronized void deregisterFontAndClearStrikeCache() {
- FontManager.deRegisterBadFont(this);
+ SunFontManager fm = SunFontManager.getInstance();
+ fm.deRegisterBadFont(this);
for (Reference strikeRef : strikeCache.values()) {
if (strikeRef != null) {
@@ -172,14 +173,14 @@
}
}
scaler.dispose();
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
}
StrikeMetrics getFontMetrics(long pScalerContext) {
try {
return getScaler().getFontMetrics(pScalerContext);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getFontMetrics(pScalerContext);
}
}
@@ -188,7 +189,7 @@
try {
return getScaler().getGlyphAdvance(pScalerContext, glyphCode);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getGlyphAdvance(pScalerContext, glyphCode);
}
}
@@ -197,7 +198,7 @@
try {
getScaler().getGlyphMetrics(pScalerContext, glyphCode, metrics);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
getGlyphMetrics(pScalerContext, glyphCode, metrics);
}
}
@@ -206,7 +207,7 @@
try {
return getScaler().getGlyphImage(pScalerContext, glyphCode);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getGlyphImage(pScalerContext, glyphCode);
}
}
@@ -215,7 +216,7 @@
try {
return getScaler().getGlyphOutlineBounds(pScalerContext, glyphCode);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getGlyphOutlineBounds(pScalerContext, glyphCode);
}
}
@@ -224,7 +225,7 @@
try {
return getScaler().getGlyphOutline(pScalerContext, glyphCode, x, y);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getGlyphOutline(pScalerContext, glyphCode, x, y);
}
}
@@ -233,7 +234,7 @@
try {
return getScaler().getGlyphVectorOutline(pScalerContext, glyphs, numGlyphs, x, y);
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getGlyphVectorOutline(pScalerContext, glyphs, numGlyphs, x, y);
}
}
@@ -275,7 +276,8 @@
*/
fontFile.delete();
/* remove from delete on exit hook list : */
- FontManager.tmpFontFiles.remove(fontFile);
+ // FIXME: still need to be refactored
+ SunFontManager.getInstance().tmpFontFiles.remove(fontFile);
} catch (Exception e) {
}
}
--- a/jdk/src/share/classes/sun/font/FileFontStrike.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FileFontStrike.java Mon Oct 05 18:22:00 2009 -0700
@@ -114,7 +114,7 @@
private static native boolean initNative();
private static boolean isXPorLater = false;
static {
- if (FontManager.isWindows && !FontManager.useT2K &&
+ if (FontUtilities.isWindows && !FontUtilities.useT2K &&
!GraphicsEnvironment.isHeadless()) {
isXPorLater = initNative();
}
@@ -201,7 +201,7 @@
this.disposer = new FontStrikeDisposer(fileFont, desc);
initGlyphCache();
pScalerContext = NullFontScaler.getNullScalerContext();
- FontManager.deRegisterBadFont(fileFont);
+ SunFontManager.getInstance().deRegisterBadFont(fileFont);
return;
}
/* First, see if native code should be used to create the glyph.
@@ -211,8 +211,8 @@
* except that the advance returned by GDI is always overwritten by
* the JDK rasteriser supplied one (see getGlyphImageFromWindows()).
*/
- if (FontManager.isWindows && isXPorLater &&
- !FontManager.useT2K &&
+ if (FontUtilities.isWindows && isXPorLater &&
+ !FontUtilities.useT2K &&
!GraphicsEnvironment.isHeadless() &&
!fileFont.useJavaRasterizer &&
(desc.aaHint == INTVAL_TEXT_ANTIALIAS_LCD_HRGB ||
@@ -241,8 +241,8 @@
}
}
}
- if (FontManager.logging && FontManager.isWindows) {
- FontManager.logger.info
+ if (FontUtilities.isLogging() && FontUtilities.isWindows) {
+ FontUtilities.getLogger().info
("Strike for " + fileFont + " at size = " + intPtSize +
" use natives = " + useNatives +
" useJavaRasteriser = " + fileFont.useJavaRasterizer +
@@ -298,7 +298,7 @@
}
long getGlyphImageFromNative(int glyphCode) {
- if (FontManager.isWindows) {
+ if (FontUtilities.isWindows) {
return getGlyphImageFromWindows(glyphCode);
} else {
return getGlyphImageFromX11(glyphCode);
@@ -366,8 +366,8 @@
} else {
if (useNatives) {
glyphPtr = getGlyphImageFromNative(glyphCode);
- if (glyphPtr == 0L && FontManager.logging) {
- FontManager.logger.info
+ if (glyphPtr == 0L && FontUtilities.isLogging()) {
+ FontUtilities.getLogger().info
("Strike for " + fileFont +
" at size = " + intPtSize +
" couldn't get native glyph for code = " + glyphCode);
@@ -528,7 +528,7 @@
if (segmentedCache) {
int numSegments = (numGlyphs + SEGSIZE-1)/SEGSIZE;
- if (FontManager.longAddresses) {
+ if (longAddresses) {
glyphCacheFormat = SEGLONGARRAY;
segLongGlyphImages = new long[numSegments][];
this.disposer.segLongGlyphImages = segLongGlyphImages;
@@ -538,7 +538,7 @@
this.disposer.segIntGlyphImages = segIntGlyphImages;
}
} else {
- if (FontManager.longAddresses) {
+ if (longAddresses) {
glyphCacheFormat = LONGARRAY;
longGlyphImages = new long[numGlyphs];
this.disposer.longGlyphImages = longGlyphImages;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontAccess.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+
+public abstract class FontAccess {
+
+ private static FontAccess access;
+ public static synchronized void setFontAccess(FontAccess acc) {
+ if (access != null) {
+ throw new InternalError("Attempt to set FontAccessor twice");
+ }
+ access = acc;
+ }
+
+ public static synchronized FontAccess getFontAccess() {
+ return access;
+ }
+
+ public abstract Font2D getFont2D(Font f);
+ public abstract void setFont2D(Font f, Font2DHandle h);
+ public abstract void setCreatedFont(Font f);
+ public abstract boolean isCreatedFont(Font f);
+}
--- a/jdk/src/share/classes/sun/font/FontDesignMetrics.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontDesignMetrics.java Mon Oct 05 18:22:00 2009 -0700
@@ -261,8 +261,9 @@
* Note that currently Swing native L&F composites are not handled
* by this code as they use the metrics of the physical anyway.
*/
- if (FontManager.maybeUsingAlternateCompositeFonts() &&
- FontManager.getFont2D(font) instanceof CompositeFont) {
+ SunFontManager fm = SunFontManager.getInstance();
+ if (fm.maybeUsingAlternateCompositeFonts() &&
+ FontUtilities.getFont2D(font) instanceof CompositeFont) {
return new FontDesignMetrics(font, frc);
}
@@ -353,7 +354,7 @@
private void initMatrixAndMetrics() {
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
fontStrike = font2D.getStrike(font, frc);
StrikeMetrics metrics = fontStrike.getFontMetrics();
this.ascent = metrics.getAscent();
@@ -473,7 +474,7 @@
char ch = str.charAt(i);
if (ch < 0x100) {
width += getLatinCharWidth(ch);
- } else if (FontManager.isNonSimpleChar(ch)) {
+ } else if (FontUtilities.isNonSimpleChar(ch)) {
width = new TextLayout(str, font, frc).getAdvance();
break;
} else {
@@ -504,7 +505,7 @@
char ch = data[i];
if (ch < 0x100) {
width += getLatinCharWidth(ch);
- } else if (FontManager.isNonSimpleChar(ch)) {
+ } else if (FontUtilities.isNonSimpleChar(ch)) {
String str = new String(data, off, len);
width = new TextLayout(str, font, frc).getAdvance();
break;
--- a/jdk/src/share/classes/sun/font/FontFamily.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontFamily.java Mon Oct 05 18:22:00 2009 -0700
@@ -107,8 +107,9 @@
public void setFont(Font2D font, int style) {
if (font.getRank() > familyRank) {
- if (FontManager.logging) {
- FontManager.logger.warning("Rejecting adding " + font +
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .warning("Rejecting adding " + font +
" of lower rank " + font.getRank() +
" to family " + this +
" of rank " + familyRank);
--- a/jdk/src/share/classes/sun/font/FontManager.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -22,3831 +22,124 @@
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
-
package sun.font;
import java.awt.Font;
-import java.awt.GraphicsEnvironment;
import java.awt.FontFormatException;
import java.io.File;
-import java.io.FilenameFilter;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
import java.util.Locale;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
import java.util.TreeMap;
-import java.util.Vector;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
import javax.swing.plaf.FontUIResource;
-import sun.awt.AppContext;
-import sun.awt.FontConfiguration;
-import sun.awt.SunHints;
-import sun.awt.SunToolkit;
-import sun.java2d.HeadlessGraphicsEnvironment;
-import sun.java2d.SunGraphicsEnvironment;
-
-import java.awt.geom.GeneralPath;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-
-import java.lang.reflect.Constructor;
-
-import sun.java2d.Disposer;
-
-/*
+/**
* Interface between Java Fonts (java.awt.Font) and the underlying
* font files/native font resources and the Java and native font scalers.
*/
-public final class FontManager {
-
- public static final int FONTFORMAT_NONE = -1;
- public static final int FONTFORMAT_TRUETYPE = 0;
- public static final int FONTFORMAT_TYPE1 = 1;
- public static final int FONTFORMAT_T2K = 2;
- public static final int FONTFORMAT_TTC = 3;
- public static final int FONTFORMAT_COMPOSITE = 4;
- public static final int FONTFORMAT_NATIVE = 5;
-
- public static final int NO_FALLBACK = 0;
- public static final int PHYSICAL_FALLBACK = 1;
- public static final int LOGICAL_FALLBACK = 2;
-
- public static final int QUADPATHTYPE = 1;
- public static final int CUBICPATHTYPE = 2;
-
- /* Pool of 20 font file channels chosen because some UTF-8 locale
- * composite fonts can use up to 16 platform fonts (including the
- * Lucida fall back). This should prevent channel thrashing when
- * dealing with one of these fonts.
- * The pool array stores the fonts, rather than directly referencing
- * the channels, as the font needs to do the open/close work.
- */
- private static final int CHANNELPOOLSIZE = 20;
- private static int lastPoolIndex = 0;
- private static FileFont fontFileCache[] = new FileFont[CHANNELPOOLSIZE];
-
- /* Need to implement a simple linked list scheme for fast
- * traversal and lookup.
- * Also want to "fast path" dialog so there's minimal overhead.
- */
- /* There are at exactly 20 composite fonts: 5 faces (but some are not
- * usually different), in 4 styles. The array may be auto-expanded
- * later if more are needed, eg for user-defined composites or locale
- * variants.
- */
- private static int maxCompFont = 0;
- private static CompositeFont [] compFonts = new CompositeFont[20];
- private static ConcurrentHashMap<String, CompositeFont>
- compositeFonts = new ConcurrentHashMap<String, CompositeFont>();
- private static ConcurrentHashMap<String, PhysicalFont>
- physicalFonts = new ConcurrentHashMap<String, PhysicalFont>();
- private static ConcurrentHashMap<String, PhysicalFont>
- registeredFontFiles = new ConcurrentHashMap<String, PhysicalFont>();
-
- /* given a full name find the Font. Remind: there's duplication
- * here in that this contains the content of compositeFonts +
- * physicalFonts.
- */
- private static ConcurrentHashMap<String, Font2D>
- fullNameToFont = new ConcurrentHashMap<String, Font2D>();
-
- /* TrueType fonts have localised names. Support searching all
- * of these before giving up on a name.
- */
- private static HashMap<String, TrueTypeFont> localeFullNamesToFont;
-
- private static PhysicalFont defaultPhysicalFont;
-
- /* deprecated, unsupported hack - actually invokes a bug! */
- private static boolean usePlatformFontMetrics = false;
-
- public static Logger logger = null;
- public static boolean logging;
- static boolean longAddresses;
- static String osName;
- static boolean useT2K;
- static boolean isWindows;
- static boolean isSolaris;
- public static boolean isSolaris8; // needed to check for JA wavedash fix.
- public static boolean isSolaris9; // needed to check for songti font usage.
- private static boolean loaded1dot0Fonts = false;
- static SunGraphicsEnvironment sgEnv;
- static boolean loadedAllFonts = false;
- static boolean loadedAllFontFiles = false;
- static TrueTypeFont eudcFont;
- static HashMap<String,String> jreFontMap;
- static HashSet<String> jreLucidaFontFiles;
- static String[] jreOtherFontFiles;
- static boolean noOtherJREFontFiles = false; // initial assumption.
- static boolean fontConfigFailed = false;
-
- /* Used to indicate required return type from toArray(..); */
- private static String[] STR_ARRAY = new String[0];
-
- private static void initJREFontMap() {
-
- /* Key is familyname+style value as an int.
- * Value is filename containing the font.
- * If no mapping exists, it means there is no font file for the style
- * If the mapping exists but the file doesn't exist in the deferred
- * list then it means its not installed.
- * This looks like a lot of code and strings but if it saves even
- * a single file being opened at JRE start-up there's a big payoff.
- * Lucida Sans is probably the only important case as the others
- * are rarely used. Consider removing the other mappings if there's
- * no evidence they are useful in practice.
- */
- jreFontMap = new HashMap<String,String>();
- jreLucidaFontFiles = new HashSet<String>();
- if (SunGraphicsEnvironment.isOpenJDK()) {
- return;
- }
- /* Lucida Sans Family */
- jreFontMap.put("lucida sans0", "LucidaSansRegular.ttf");
- jreFontMap.put("lucida sans1", "LucidaSansDemiBold.ttf");
- /* Lucida Sans full names (map Bold and DemiBold to same file) */
- jreFontMap.put("lucida sans regular0", "LucidaSansRegular.ttf");
- jreFontMap.put("lucida sans regular1", "LucidaSansDemiBold.ttf");
- jreFontMap.put("lucida sans bold1", "LucidaSansDemiBold.ttf");
- jreFontMap.put("lucida sans demibold1", "LucidaSansDemiBold.ttf");
-
- /* Lucida Sans Typewriter Family */
- jreFontMap.put("lucida sans typewriter0",
- "LucidaTypewriterRegular.ttf");
- jreFontMap.put("lucida sans typewriter1", "LucidaTypewriterBold.ttf");
- /* Typewriter full names (map Bold and DemiBold to same file) */
- jreFontMap.put("lucida sans typewriter regular0",
- "LucidaTypewriter.ttf");
- jreFontMap.put("lucida sans typewriter regular1",
- "LucidaTypewriterBold.ttf");
- jreFontMap.put("lucida sans typewriter bold1",
- "LucidaTypewriterBold.ttf");
- jreFontMap.put("lucida sans typewriter demibold1",
- "LucidaTypewriterBold.ttf");
-
- /* Lucida Bright Family */
- jreFontMap.put("lucida bright0", "LucidaBrightRegular.ttf");
- jreFontMap.put("lucida bright1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright2", "LucidaBrightItalic.ttf");
- jreFontMap.put("lucida bright3", "LucidaBrightDemiItalic.ttf");
- /* Lucida Bright full names (map Bold and DemiBold to same file) */
- jreFontMap.put("lucida bright regular0", "LucidaBrightRegular.ttf");
- jreFontMap.put("lucida bright regular1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright regular2", "LucidaBrightItalic.ttf");
- jreFontMap.put("lucida bright regular3", "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright bold1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright bold3", "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright demibold1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright demibold3","LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright italic2", "LucidaBrightItalic.ttf");
- jreFontMap.put("lucida bright italic3", "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright bold italic3",
- "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright demibold italic3",
- "LucidaBrightDemiItalic.ttf");
- for (String ffile : jreFontMap.values()) {
- jreLucidaFontFiles.add(ffile);
- }
- }
-
- static {
-
- if (SunGraphicsEnvironment.debugFonts) {
- logger = Logger.getLogger("sun.java2d", null);
- logging = logger.getLevel() != Level.OFF;
- }
- initJREFontMap();
+public interface FontManager {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- FontManagerNativeLibrary.load();
-
- // JNI throws an exception if a class/method/field is not found,
- // so there's no need to do anything explicit here.
- initIDs();
-
- switch (StrikeCache.nativeAddressSize) {
- case 8: longAddresses = true; break;
- case 4: longAddresses = false; break;
- default: throw new RuntimeException("Unexpected address size");
- }
-
- osName = System.getProperty("os.name", "unknownOS");
- isSolaris = osName.startsWith("SunOS");
-
- String t2kStr = System.getProperty("sun.java2d.font.scaler");
- if (t2kStr != null) {
- useT2K = "t2k".equals(t2kStr);
- }
- if (isSolaris) {
- String version = System.getProperty("os.version", "unk");
- isSolaris8 = version.equals("5.8");
- isSolaris9 = version.equals("5.9");
- } else {
- isWindows = osName.startsWith("Windows");
- if (isWindows) {
- String eudcFile =
- SunGraphicsEnvironment.eudcFontFileName;
- if (eudcFile != null) {
- try {
- eudcFont = new TrueTypeFont(eudcFile, null, 0,
- true);
- } catch (FontFormatException e) {
- }
- }
- String prop =
- System.getProperty("java2d.font.usePlatformFont");
- if (("true".equals(prop) || getPlatformFontVar())) {
- usePlatformFontMetrics = true;
- System.out.println("Enabling platform font metrics for win32. This is an unsupported option.");
- System.out.println("This yields incorrect composite font metrics as reported by 1.1.x releases.");
- System.out.println("It is appropriate only for use by applications which do not use any Java 2");
- System.out.println("functionality. This property will be removed in a later release.");
- }
- }
- }
- return null;
- }
- });
- }
-
- /* Initialise ptrs used by JNI methods */
- private static native void initIDs();
-
- public static void addToPool(FileFont font) {
-
- FileFont fontFileToClose = null;
- int freeSlot = -1;
-
- synchronized (fontFileCache) {
- /* Avoid duplicate entries in the pool, and don't close() it,
- * since this method is called only from within open().
- * Seeing a duplicate is most likely to happen if the thread
- * was interrupted during a read, forcing perhaps repeated
- * close and open calls and it eventually it ends up pointing
- * at the same slot.
- */
- for (int i=0;i<CHANNELPOOLSIZE;i++) {
- if (fontFileCache[i] == font) {
- return;
- }
- if (fontFileCache[i] == null && freeSlot < 0) {
- freeSlot = i;
- }
- }
- if (freeSlot >= 0) {
- fontFileCache[freeSlot] = font;
- return;
- } else {
- /* replace with new font. */
- fontFileToClose = fontFileCache[lastPoolIndex];
- fontFileCache[lastPoolIndex] = font;
- /* lastPoolIndex is updated so that the least recently opened
- * file will be closed next.
- */
- lastPoolIndex = (lastPoolIndex+1) % CHANNELPOOLSIZE;
- }
- }
- /* Need to close the font file outside of the synchronized block,
- * since its possible some other thread is in an open() call on
- * this font file, and could be holding its lock and the pool lock.
- * Releasing the pool lock allows that thread to continue, so it can
- * then release the lock on this font, allowing the close() call
- * below to proceed.
- * Also, calling close() is safe because any other thread using
- * the font we are closing() synchronizes all reading, so we
- * will not close the file while its in use.
- */
- if (fontFileToClose != null) {
- fontFileToClose.close();
- }
- }
-
- /*
- * In the normal course of events, the pool of fonts can remain open
- * ready for quick access to their contents. The pool is sized so
- * that it is not an excessive consumer of system resources whilst
- * facilitating performance by providing ready access to the most
- * recently used set of font files.
- * The only reason to call removeFromPool(..) is for a Font that
- * you want to to have GC'd. Currently this would apply only to fonts
- * created with java.awt.Font.createFont(..).
- * In this case, the caller is expected to have arranged for the file
- * to be closed.
- * REMIND: consider how to know when a createFont created font should
- * be closed.
- */
- public static void removeFromPool(FileFont font) {
- synchronized (fontFileCache) {
- for (int i=0; i<CHANNELPOOLSIZE; i++) {
- if (fontFileCache[i] == font) {
- fontFileCache[i] = null;
- }
- }
- }
- }
-
- /**
- * This method is provided for internal and exclusive use by Swing.
- *
- * @param font representing a physical font.
- * @return true if the underlying font is a TrueType or OpenType font
- * that claims to support the Microsoft Windows encoding corresponding to
- * the default file.encoding property of this JRE instance.
- * This narrow value is useful for Swing to decide if the font is useful
- * for the the Windows Look and Feel, or, if a composite font should be
- * used instead.
- * The information used to make the decision is obtained from
- * the ulCodePageRange fields in the font.
- * A caller can use isLogicalFont(Font) in this class before calling
- * this method and would not need to call this method if that
- * returns true.
- */
-// static boolean fontSupportsDefaultEncoding(Font font) {
-// String encoding =
-// (String) java.security.AccessController.doPrivileged(
-// new sun.security.action.GetPropertyAction("file.encoding"));
-
-// if (encoding == null || font == null) {
-// return false;
-// }
-
-// encoding = encoding.toLowerCase(Locale.ENGLISH);
-
-// return FontManager.fontSupportsEncoding(font, encoding);
-// }
-
- /* Revise the implementation to in fact mean "font is a composite font.
- * This ensures that Swing components will always benefit from the
- * fall back fonts
- */
- public static boolean fontSupportsDefaultEncoding(Font font) {
- return getFont2D(font) instanceof CompositeFont;
- }
+ // These constants are used in findFont().
+ public static final int NO_FALLBACK = 0;
+ public static final int PHYSICAL_FALLBACK = 1;
+ public static final int LOGICAL_FALLBACK = 2;
/**
- * This method is provided for internal and exclusive use by Swing.
- *
- * It may be used in conjunction with fontSupportsDefaultEncoding(Font)
- * In the event that a desktop properties font doesn't directly
- * support the default encoding, (ie because the host OS supports
- * adding support for the current locale automatically for native apps),
- * then Swing calls this method to get a font which uses the specified
- * font for the code points it covers, but also supports this locale
- * just as the standard composite fonts do.
- * Note: this will over-ride any setting where an application
- * specifies it prefers locale specific composite fonts.
- * The logic for this, is that this method is used only where the user or
- * application has specified that the native L&F be used, and that
- * we should honour that request to use the same font as native apps use.
- *
- * The behaviour of this method is to construct a new composite
- * Font object that uses the specified physical font as its first
- * component, and adds all the components of "dialog" as fall back
- * components.
- * The method currently assumes that only the size and style attributes
- * are set on the specified font. It doesn't copy the font transform or
- * other attributes because they aren't set on a font created from
- * the desktop. This will need to be fixed if use is broadened.
+ * Register a new font. Please, note that {@code null} is not a valid
+ * argument, and it's caller's responsibility to ensure that, but to keep
+ * compatibility, if {@code null} is passed as an argument, {@code false}
+ * is returned, and no {@link NullPointerException}
+ * is thrown.
*
- * Operations such as Font.deriveFont will work properly on the
- * font returned by this method for deriving a different point size.
- * Additionally it tries to support a different style by calling
- * getNewComposite() below. That also supports replacing slot zero
- * with a different physical font but that is expected to be "rare".
- * Deriving with a different style is needed because its been shown
- * that some applications try to do this for Swing FontUIResources.
- * Also operations such as new Font(font.getFontName(..), Font.PLAIN, 14);
- * will NOT yield the same result, as the new underlying CompositeFont
- * cannot be "looked up" in the font registry.
- * This returns a FontUIResource as that is the Font sub-class needed
- * by Swing.
- * Suggested usage is something like :
- * FontUIResource fuir;
- * Font desktopFont = getDesktopFont(..);
- * // NOTE even if fontSupportsDefaultEncoding returns true because
- * // you get Tahoma and are running in an English locale, you may
- * // still want to just call getCompositeFontUIResource() anyway
- * // as only then will you get fallback fonts - eg for CJK.
- * if (FontManager.fontSupportsDefaultEncoding(desktopFont)) {
- * fuir = new FontUIResource(..);
- * } else {
- * fuir = FontManager.getCompositeFontUIResource(desktopFont);
- * }
- * return fuir;
- */
- public static FontUIResource getCompositeFontUIResource(Font font) {
-
- FontUIResource fuir =
- new FontUIResource(font.getName(),font.getStyle(),font.getSize());
- Font2D font2D = getFont2D(font);
-
- if (!(font2D instanceof PhysicalFont)) {
- /* Swing should only be calling this when a font is obtained
- * from desktop properties, so should generally be a physical font,
- * an exception might be for names like "MS Serif" which are
- * automatically mapped to "Serif", so there's no need to do
- * anything special in that case. But note that suggested usage
- * is first to call fontSupportsDefaultEncoding(Font) and this
- * method should not be called if that were to return true.
- */
- return fuir;
- }
-
- CompositeFont dialog2D =
- (CompositeFont)findFont2D("dialog", font.getStyle(), NO_FALLBACK);
- if (dialog2D == null) { /* shouldn't happen */
- return fuir;
- }
- PhysicalFont physicalFont = (PhysicalFont)font2D;
- CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
- setFont2D(fuir, compFont.handle);
- /* marking this as a created font is needed as only created fonts
- * copy their creator's handles.
- */
- setCreatedFont(fuir);
- return fuir;
- }
-
- public static Font2DHandle getNewComposite(String family, int style,
- Font2DHandle handle) {
-
- if (!(handle.font2D instanceof CompositeFont)) {
- return handle;
- }
-
- CompositeFont oldComp = (CompositeFont)handle.font2D;
- PhysicalFont oldFont = oldComp.getSlotFont(0);
-
- if (family == null) {
- family = oldFont.getFamilyName(null);
- }
- if (style == -1) {
- style = oldComp.getStyle();
- }
-
- Font2D newFont = findFont2D(family, style, NO_FALLBACK);
- if (!(newFont instanceof PhysicalFont)) {
- newFont = oldFont;
- }
- PhysicalFont physicalFont = (PhysicalFont)newFont;
- CompositeFont dialog2D =
- (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
- if (dialog2D == null) { /* shouldn't happen */
- return handle;
- }
- CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
- Font2DHandle newHandle = new Font2DHandle(compFont);
- return newHandle;
- }
-
- public static native void setFont2D(Font font, Font2DHandle font2DHandle);
-
- private static native boolean isCreatedFont(Font font);
- private static native void setCreatedFont(Font font);
-
- public static void registerCompositeFont(String compositeName,
- String[] componentFileNames,
- String[] componentNames,
- int numMetricsSlots,
- int[] exclusionRanges,
- int[] exclusionMaxIndex,
- boolean defer) {
-
- CompositeFont cf = new CompositeFont(compositeName,
- componentFileNames,
- componentNames,
- numMetricsSlots,
- exclusionRanges,
- exclusionMaxIndex, defer);
- addCompositeToFontList(cf, Font2D.FONT_CONFIG_RANK);
- synchronized (compFonts) {
- compFonts[maxCompFont++] = cf;
- }
- }
-
- /* This variant is used only when the application specifies
- * a variant of composite fonts which prefers locale specific or
- * proportional fonts.
- */
- public static void registerCompositeFont(String compositeName,
- String[] componentFileNames,
- String[] componentNames,
- int numMetricsSlots,
- int[] exclusionRanges,
- int[] exclusionMaxIndex,
- boolean defer,
- ConcurrentHashMap<String, Font2D>
- altNameCache) {
-
- CompositeFont cf = new CompositeFont(compositeName,
- componentFileNames,
- componentNames,
- numMetricsSlots,
- exclusionRanges,
- exclusionMaxIndex, defer);
- /* if the cache has an existing composite for this case, make
- * its handle point to this new font.
- * This ensures that when the altNameCache that is passed in
- * is the global mapNameCache - ie we are running as an application -
- * that any statically created java.awt.Font instances which already
- * have a Font2D instance will have that re-directed to the new Font
- * on subsequent uses. This is particularly important for "the"
- * default font instance, or similar cases where a UI toolkit (eg
- * Swing) has cached a java.awt.Font. Note that if Swing is using
- * a custom composite APIs which update the standard composites have
- * no effect - this is typically the case only when using the Windows
- * L&F where these APIs would conflict with that L&F anyway.
- */
- Font2D oldFont = (Font2D)
- altNameCache.get(compositeName.toLowerCase(Locale.ENGLISH));
- if (oldFont instanceof CompositeFont) {
- oldFont.handle.font2D = cf;
- }
- altNameCache.put(compositeName.toLowerCase(Locale.ENGLISH), cf);
- }
-
- private static void addCompositeToFontList(CompositeFont f, int rank) {
-
- if (logging) {
- logger.info("Add to Family "+ f.familyName +
- ", Font " + f.fullName + " rank="+rank);
- }
- f.setRank(rank);
- compositeFonts.put(f.fullName, f);
- fullNameToFont.put(f.fullName.toLowerCase(Locale.ENGLISH), f);
-
- FontFamily family = FontFamily.getFamily(f.familyName);
- if (family == null) {
- family = new FontFamily(f.familyName, true, rank);
- }
- family.setFont(f, f.style);
- }
-
- /*
- * Systems may have fonts with the same name.
- * We want to register only one of such fonts (at least until
- * such time as there might be APIs which can accommodate > 1).
- * Rank is 1) font configuration fonts, 2) JRE fonts, 3) OT/TT fonts,
- * 4) Type1 fonts, 5) native fonts.
+ * As additional note, an implementation should ensure that this font
+ * cannot override existing installed fonts.
*
- * If the new font has the same name as the old font, the higher
- * ranked font gets added, replacing the lower ranked one.
- * If the fonts are of equal rank, then make a special case of
- * font configuration rank fonts, which are on closer inspection,
- * OT/TT fonts such that the larger font is registered. This is
- * a heuristic since a font may be "larger" in the sense of more
- * code points, or be a larger "file" because it has more bitmaps.
- * So it is possible that using filesize may lead to less glyphs, and
- * using glyphs may lead to lower quality display. Probably number
- * of glyphs is the ideal, but filesize is information we already
- * have and is good enough for the known cases.
- * Also don't want to register fonts that match JRE font families
- * but are coming from a source other than the JRE.
- * This will ensure that we will algorithmically style the JRE
- * plain font and get the same set of glyphs for all styles.
- *
- * Note that this method returns a value
- * if it returns the same object as its argument that means this
- * font was newly registered.
- * If it returns a different object it means this font already exists,
- * and you should use that one.
- * If it returns null means this font was not registered and none
- * in that name is registered. The caller must find a substitute
+ * @param font
+ * @return {@code true} is the font is successfully registered,
+ * {@code false} otherwise.
*/
- private static PhysicalFont addToFontList(PhysicalFont f, int rank) {
-
- String fontName = f.fullName;
- String familyName = f.familyName;
- if (fontName == null || "".equals(fontName)) {
- return null;
- }
- if (compositeFonts.containsKey(fontName)) {
- /* Don't register any font that has the same name as a composite */
- return null;
- }
- f.setRank(rank);
- if (!physicalFonts.containsKey(fontName)) {
- if (logging) {
- logger.info("Add to Family "+familyName +
- ", Font " + fontName + " rank="+rank);
- }
- physicalFonts.put(fontName, f);
- FontFamily family = FontFamily.getFamily(familyName);
- if (family == null) {
- family = new FontFamily(familyName, false, rank);
- family.setFont(f, f.style);
- } else if (family.getRank() >= rank) {
- family.setFont(f, f.style);
- }
- fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH), f);
- return f;
- } else {
- PhysicalFont newFont = f;
- PhysicalFont oldFont = physicalFonts.get(fontName);
- if (oldFont == null) {
- return null;
- }
- /* If the new font is of an equal or higher rank, it is a
- * candidate to replace the current one, subject to further tests.
- */
- if (oldFont.getRank() >= rank) {
-
- /* All fonts initialise their mapper when first
- * used. If the mapper is non-null then this font
- * has been accessed at least once. In that case
- * do not replace it. This may be overly stringent,
- * but its probably better not to replace a font that
- * someone is already using without a compelling reason.
- * Additionally the primary case where it is known
- * this behaviour is important is in certain composite
- * fonts, and since all the components of a given
- * composite are usually initialised together this
- * is unlikely. For this to be a problem, there would
- * have to be a case where two different composites used
- * different versions of the same-named font, and they
- * were initialised and used at separate times.
- * In that case we continue on and allow the new font to
- * be installed, but replaceFont will continue to allow
- * the original font to be used in Composite fonts.
- */
- if (oldFont.mapper != null && rank > Font2D.FONT_CONFIG_RANK) {
- return oldFont;
- }
-
- /* Normally we require a higher rank to replace a font,
- * but as a special case, if the two fonts are the same rank,
- * and are instances of TrueTypeFont we want the
- * more complete (larger) one.
- */
- if (oldFont.getRank() == rank) {
- if (oldFont instanceof TrueTypeFont &&
- newFont instanceof TrueTypeFont) {
- TrueTypeFont oldTTFont = (TrueTypeFont)oldFont;
- TrueTypeFont newTTFont = (TrueTypeFont)newFont;
- if (oldTTFont.fileSize >= newTTFont.fileSize) {
- return oldFont;
- }
- } else {
- return oldFont;
- }
- }
- /* Don't replace ever JRE fonts.
- * This test is in case a font configuration references
- * a Lucida font, which has been mapped to a Lucida
- * from the host O/S. The assumption here is that any
- * such font configuration file is probably incorrect, or
- * the host O/S version is for the use of AWT.
- * In other words if we reach here, there's a possible
- * problem with our choice of font configuration fonts.
- */
- if (oldFont.platName.startsWith(
- SunGraphicsEnvironment.jreFontDirName)) {
- if (logging) {
- logger.warning("Unexpected attempt to replace a JRE " +
- " font " + fontName + " from " +
- oldFont.platName +
- " with " + newFont.platName);
- }
- return oldFont;
- }
-
- if (logging) {
- logger.info("Replace in Family " + familyName +
- ",Font " + fontName + " new rank="+rank +
- " from " + oldFont.platName +
- " with " + newFont.platName);
- }
- replaceFont(oldFont, newFont);
- physicalFonts.put(fontName, newFont);
- fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH),
- newFont);
-
- FontFamily family = FontFamily.getFamily(familyName);
- if (family == null) {
- family = new FontFamily(familyName, false, rank);
- family.setFont(newFont, newFont.style);
- } else if (family.getRank() >= rank) {
- family.setFont(newFont, newFont.style);
- }
- return newFont;
- } else {
- return oldFont;
- }
- }
- }
-
- public static Font2D[] getRegisteredFonts() {
- PhysicalFont[] physFonts = getPhysicalFonts();
- int mcf = maxCompFont; /* for MT-safety */
- Font2D[] regFonts = new Font2D[physFonts.length+mcf];
- System.arraycopy(compFonts, 0, regFonts, 0, mcf);
- System.arraycopy(physFonts, 0, regFonts, mcf, physFonts.length);
- return regFonts;
- }
-
- public static PhysicalFont[] getPhysicalFonts() {
- return physicalFonts.values().toArray(new PhysicalFont[0]);
- }
-
-
- /* The class FontRegistrationInfo is used when a client says not
- * to register a font immediately. This mechanism is used to defer
- * initialisation of all the components of composite fonts at JRE
- * start-up. The CompositeFont class is "aware" of this and when it
- * is first used it asks for the registration of its components.
- * Also in the event that any physical font is requested the
- * deferred fonts are initialised before triggering a search of the
- * system.
- * Two maps are used. One to track the deferred fonts. The
- * other to track the fonts that have been initialised through this
- * mechanism.
- */
-
- private static final class FontRegistrationInfo {
-
- String fontFilePath;
- String[] nativeNames;
- int fontFormat;
- boolean javaRasterizer;
- int fontRank;
-
- FontRegistrationInfo(String fontPath, String[] names, int format,
- boolean useJavaRasterizer, int rank) {
- this.fontFilePath = fontPath;
- this.nativeNames = names;
- this.fontFormat = format;
- this.javaRasterizer = useJavaRasterizer;
- this.fontRank = rank;
- }
- }
-
- private static final ConcurrentHashMap<String, FontRegistrationInfo>
- deferredFontFiles =
- new ConcurrentHashMap<String, FontRegistrationInfo>();
- private static final ConcurrentHashMap<String, Font2DHandle>
- initialisedFonts = new ConcurrentHashMap<String, Font2DHandle>();
-
- /* Remind: possibly enhance initialiseDeferredFonts() to be
- * optionally given a name and a style and it could stop when it
- * finds that font - but this would be a problem if two of the
- * fonts reference the same font face name (cf the Solaris
- * euro fonts).
- */
- public static synchronized void initialiseDeferredFonts() {
- for (String fileName : deferredFontFiles.keySet()) {
- initialiseDeferredFont(fileName);
- }
- }
-
- public static synchronized void registerDeferredJREFonts(String jreDir) {
- for (FontRegistrationInfo info : deferredFontFiles.values()) {
- if (info.fontFilePath != null &&
- info.fontFilePath.startsWith(jreDir)) {
- initialiseDeferredFont(info.fontFilePath);
- }
- }
- }
-
- /* We keep a map of the files which contain the Lucida fonts so we
- * don't need to search for them.
- * But since we know what fonts these files contain, we can also avoid
- * opening them to look for a font name we don't recognise - see
- * findDeferredFont().
- * For typical cases where the font isn't a JRE one the overhead is
- * this method call, HashMap.get() and null reference test, then
- * a boolean test of noOtherJREFontFiles.
- */
- private static PhysicalFont findJREDeferredFont(String name, int style) {
-
- PhysicalFont physicalFont;
- String nameAndStyle = name.toLowerCase(Locale.ENGLISH) + style;
- String fileName = jreFontMap.get(nameAndStyle);
- if (fileName != null) {
- initSGEnv(); /* ensure jreFontDirName is initialised */
- fileName = SunGraphicsEnvironment.jreFontDirName +
- File.separator + fileName;
- if (deferredFontFiles.get(fileName) != null) {
- physicalFont = initialiseDeferredFont(fileName);
- if (physicalFont != null &&
- (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
- physicalFont.getFamilyName(null).equalsIgnoreCase(name))
- && physicalFont.style == style) {
- return physicalFont;
- }
- }
- }
-
- /* Iterate over the deferred font files looking for any in the
- * jre directory that we didn't recognise, open each of these.
- * In almost all installations this will quickly fall through
- * because only the Lucidas will be present and jreOtherFontFiles
- * will be empty.
- * noOtherJREFontFiles is used so we can skip this block as soon
- * as its determined that its not needed - almost always after the
- * very first time through.
- */
- if (noOtherJREFontFiles) {
- return null;
- }
- synchronized (jreLucidaFontFiles) {
- if (jreOtherFontFiles == null) {
- HashSet<String> otherFontFiles = new HashSet<String>();
- for (String deferredFile : deferredFontFiles.keySet()) {
- File file = new File(deferredFile);
- String dir = file.getParent();
- String fname = file.getName();
- /* skip names which aren't absolute, aren't in the JRE
- * directory, or are known Lucida fonts.
- */
- if (dir == null ||
- !dir.equals(SunGraphicsEnvironment.jreFontDirName) ||
- jreLucidaFontFiles.contains(fname)) {
- continue;
- }
- otherFontFiles.add(deferredFile);
- }
- jreOtherFontFiles = otherFontFiles.toArray(STR_ARRAY);
- if (jreOtherFontFiles.length == 0) {
- noOtherJREFontFiles = true;
- }
- }
+ public boolean registerFont(Font font);
- for (int i=0; i<jreOtherFontFiles.length;i++) {
- fileName = jreOtherFontFiles[i];
- if (fileName == null) {
- continue;
- }
- jreOtherFontFiles[i] = null;
- physicalFont = initialiseDeferredFont(fileName);
- if (physicalFont != null &&
- (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
- physicalFont.getFamilyName(null).equalsIgnoreCase(name))
- && physicalFont.style == style) {
- return physicalFont;
- }
- }
- }
-
- return null;
- }
-
- /* This skips JRE installed fonts. */
- private static PhysicalFont findOtherDeferredFont(String name, int style) {
- for (String fileName : deferredFontFiles.keySet()) {
- File file = new File(fileName);
- String dir = file.getParent();
- String fname = file.getName();
- if (dir != null &&
- dir.equals(SunGraphicsEnvironment.jreFontDirName) &&
- jreLucidaFontFiles.contains(fname)) {
- continue;
- }
- PhysicalFont physicalFont = initialiseDeferredFont(fileName);
- if (physicalFont != null &&
- (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
- physicalFont.getFamilyName(null).equalsIgnoreCase(name)) &&
- physicalFont.style == style) {
- return physicalFont;
- }
- }
- return null;
- }
-
- private static PhysicalFont findDeferredFont(String name, int style) {
-
- PhysicalFont physicalFont = findJREDeferredFont(name, style);
- if (physicalFont != null) {
- return physicalFont;
- } else {
- return findOtherDeferredFont(name, style);
- }
- }
-
- public static void registerDeferredFont(String fileNameKey,
- String fullPathName,
- String[] nativeNames,
- int fontFormat,
- boolean useJavaRasterizer,
- int fontRank) {
- FontRegistrationInfo regInfo =
- new FontRegistrationInfo(fullPathName, nativeNames, fontFormat,
- useJavaRasterizer, fontRank);
- deferredFontFiles.put(fileNameKey, regInfo);
- }
-
-
- public static synchronized
- PhysicalFont initialiseDeferredFont(String fileNameKey) {
-
- if (fileNameKey == null) {
- return null;
- }
- if (logging) {
- logger.info("Opening deferred font file " + fileNameKey);
- }
-
- PhysicalFont physicalFont;
- FontRegistrationInfo regInfo = deferredFontFiles.get(fileNameKey);
- if (regInfo != null) {
- deferredFontFiles.remove(fileNameKey);
- physicalFont = registerFontFile(regInfo.fontFilePath,
- regInfo.nativeNames,
- regInfo.fontFormat,
- regInfo.javaRasterizer,
- regInfo.fontRank);
-
-
- if (physicalFont != null) {
- /* Store the handle, so that if a font is bad, we
- * retrieve the substituted font.
- */
- initialisedFonts.put(fileNameKey, physicalFont.handle);
- } else {
- initialisedFonts.put(fileNameKey,
- getDefaultPhysicalFont().handle);
- }
- } else {
- Font2DHandle handle = initialisedFonts.get(fileNameKey);
- if (handle == null) {
- /* Probably shouldn't happen, but just in case */
- physicalFont = getDefaultPhysicalFont();
- } else {
- physicalFont = (PhysicalFont)(handle.font2D);
- }
- }
- return physicalFont;
- }
-
- /* Note that the return value from this method is not always
- * derived from this file, and may be null. See addToFontList for
- * some explanation of this.
- */
- public static PhysicalFont registerFontFile(String fileName,
- String[] nativeNames,
- int fontFormat,
- boolean useJavaRasterizer,
- int fontRank) {
-
- PhysicalFont regFont = registeredFontFiles.get(fileName);
- if (regFont != null) {
- return regFont;
- }
-
- PhysicalFont physicalFont = null;
- try {
- String name;
-
- switch (fontFormat) {
-
- case FontManager.FONTFORMAT_TRUETYPE:
- int fn = 0;
- TrueTypeFont ttf;
- do {
- ttf = new TrueTypeFont(fileName, nativeNames, fn++,
- useJavaRasterizer);
- PhysicalFont pf = addToFontList(ttf, fontRank);
- if (physicalFont == null) {
- physicalFont = pf;
- }
- }
- while (fn < ttf.getFontCount());
- break;
-
- case FontManager.FONTFORMAT_TYPE1:
- Type1Font t1f = new Type1Font(fileName, nativeNames);
- physicalFont = addToFontList(t1f, fontRank);
- break;
-
- case FontManager.FONTFORMAT_NATIVE:
- NativeFont nf = new NativeFont(fileName, false);
- physicalFont = addToFontList(nf, fontRank);
- default:
-
- }
- if (logging) {
- logger.info("Registered file " + fileName + " as font " +
- physicalFont + " rank=" + fontRank);
- }
- } catch (FontFormatException ffe) {
- if (logging) {
- logger.warning("Unusable font: " +
- fileName + " " + ffe.toString());
- }
- }
- if (physicalFont != null &&
- fontFormat != FontManager.FONTFORMAT_NATIVE) {
- registeredFontFiles.put(fileName, physicalFont);
- }
- return physicalFont;
- }
-
- public static void registerFonts(String[] fileNames,
- String[][] nativeNames,
- int fontCount,
- int fontFormat,
- boolean useJavaRasterizer,
- int fontRank, boolean defer) {
-
- for (int i=0; i < fontCount; i++) {
- if (defer) {
- registerDeferredFont(fileNames[i],fileNames[i], nativeNames[i],
- fontFormat, useJavaRasterizer, fontRank);
- } else {
- registerFontFile(fileNames[i], nativeNames[i],
- fontFormat, useJavaRasterizer, fontRank);
- }
- }
- }
-
- /*
- * This is the Physical font used when some other font on the system
- * can't be located. There has to be at least one font or the font
- * system is not useful and the graphics environment cannot sustain
- * the Java platform.
- */
- public static PhysicalFont getDefaultPhysicalFont() {
- if (defaultPhysicalFont == null) {
- /* findFont2D will load all fonts before giving up the search.
- * If the JRE Lucida isn't found (eg because the JRE fonts
- * directory is missing), it could find another version of Lucida
- * from the host system. This is OK because at that point we are
- * trying to gracefully handle/recover from a system
- * misconfiguration and this is probably a reasonable substitution.
- */
- defaultPhysicalFont = (PhysicalFont)
- findFont2D("Lucida Sans Regular", Font.PLAIN, NO_FALLBACK);
- if (defaultPhysicalFont == null) {
- defaultPhysicalFont = (PhysicalFont)
- findFont2D("Arial", Font.PLAIN, NO_FALLBACK);
- }
- if (defaultPhysicalFont == null) {
- /* Because of the findFont2D call above, if we reach here, we
- * know all fonts have already been loaded, just accept any
- * match at this point. If this fails we are in real trouble
- * and I don't know how to recover from there being absolutely
- * no fonts anywhere on the system.
- */
- Iterator i = physicalFonts.values().iterator();
- if (i.hasNext()) {
- defaultPhysicalFont = (PhysicalFont)i.next();
- } else {
- throw new Error("Probable fatal error:No fonts found.");
- }
- }
- }
- return defaultPhysicalFont;
- }
-
- public static CompositeFont getDefaultLogicalFont(int style) {
- return (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
- }
-
- /*
- * return String representation of style prepended with "."
- * This is useful for performance to avoid unnecessary string operations.
- */
- private static String dotStyleStr(int num) {
- switch(num){
- case Font.BOLD:
- return ".bold";
- case Font.ITALIC:
- return ".italic";
- case Font.ITALIC | Font.BOLD:
- return ".bolditalic";
- default:
- return ".plain";
- }
- }
-
- static void initSGEnv() {
- if (sgEnv == null) {
- GraphicsEnvironment ge =
- GraphicsEnvironment.getLocalGraphicsEnvironment();
- if (ge instanceof HeadlessGraphicsEnvironment) {
- HeadlessGraphicsEnvironment hgEnv =
- (HeadlessGraphicsEnvironment)ge;
- sgEnv = (SunGraphicsEnvironment)
- hgEnv.getSunGraphicsEnvironment();
- } else {
- sgEnv = (SunGraphicsEnvironment)ge;
- }
- }
- }
-
- /* This is implemented only on windows and is called from code that
- * executes only on windows. This isn't pretty but its not a precedent
- * in this file. This very probably should be cleaned up at some point.
- */
- private static native void
- populateFontFileNameMap(HashMap<String,String> fontToFileMap,
- HashMap<String,String> fontToFamilyNameMap,
- HashMap<String,ArrayList<String>>
- familyToFontListMap,
- Locale locale);
-
- /* Obtained from Platform APIs (windows only)
- * Map from lower-case font full name to basename of font file.
- * Eg "arial bold" -> ARIALBD.TTF.
- * For TTC files, there is a mapping for each font in the file.
- */
- private static HashMap<String,String> fontToFileMap = null;
-
- /* Obtained from Platform APIs (windows only)
- * Map from lower-case font full name to the name of its font family
- * Eg "arial bold" -> "Arial"
- */
- private static HashMap<String,String> fontToFamilyNameMap = null;
-
- /* Obtained from Platform APIs (windows only)
- * Map from a lower-case family name to a list of full names of
- * the member fonts, eg:
- * "arial" -> ["Arial", "Arial Bold", "Arial Italic","Arial Bold Italic"]
- */
- private static HashMap<String,ArrayList<String>> familyToFontListMap= null;
-
- /* The directories which contain platform fonts */
- private static String[] pathDirs = null;
-
- private static boolean haveCheckedUnreferencedFontFiles;
-
- private static String[] getFontFilesFromPath(boolean noType1) {
- final FilenameFilter filter;
- if (noType1) {
- filter = SunGraphicsEnvironment.ttFilter;
- } else {
- filter = new SunGraphicsEnvironment.TTorT1Filter();
- }
- return (String[])AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
- if (pathDirs.length == 1) {
- File dir = new File(pathDirs[0]);
- String[] files = dir.list(filter);
- if (files == null) {
- return new String[0];
- }
- for (int f=0; f<files.length; f++) {
- files[f] = files[f].toLowerCase();
- }
- return files;
- } else {
- ArrayList<String> fileList = new ArrayList<String>();
- for (int i = 0; i< pathDirs.length; i++) {
- File dir = new File(pathDirs[i]);
- String[] files = dir.list(filter);
- if (files == null) {
- continue;
- }
- for (int f=0; f<files.length ; f++) {
- fileList.add(files[f].toLowerCase());
- }
- }
- return fileList.toArray(STR_ARRAY);
- }
- }
- });
- }
-
- /* This is needed since some windows registry names don't match
- * the font names.
- * - UPC styled font names have a double space, but the
- * registry entry mapping to a file doesn't.
- * - Marlett is in a hidden file not listed in the registry
- * - The registry advertises that the file david.ttf contains a
- * font with the full name "David Regular" when in fact its
- * just "David".
- * Directly fix up these known cases as this is faster.
- * If a font which doesn't match these known cases has no file,
- * it may be a font that has been temporarily added to the known set
- * or it may be an installed font with a missing registry entry.
- * Installed fonts are those in the windows font directories.
- * Make a best effort attempt to locate these.
- * We obtain the list of TrueType fonts in these directories and
- * filter out all the font files we already know about from the registry.
- * What remains may be "bad" fonts, duplicate fonts, or perhaps the
- * missing font(s) we are looking for.
- * Open each of these files to find out.
- */
- private static void resolveWindowsFonts() {
-
- ArrayList<String> unmappedFontNames = null;
- for (String font : fontToFamilyNameMap.keySet()) {
- String file = fontToFileMap.get(font);
- if (file == null) {
- if (font.indexOf(" ") > 0) {
- String newName = font.replaceFirst(" ", " ");
- file = fontToFileMap.get(newName);
- /* If this name exists and isn't for a valid name
- * replace the mapping to the file with this font
- */
- if (file != null &&
- !fontToFamilyNameMap.containsKey(newName)) {
- fontToFileMap.remove(newName);
- fontToFileMap.put(font, file);
- }
- } else if (font.equals("marlett")) {
- fontToFileMap.put(font, "marlett.ttf");
- } else if (font.equals("david")) {
- file = fontToFileMap.get("david regular");
- if (file != null) {
- fontToFileMap.remove("david regular");
- fontToFileMap.put("david", file);
- }
- } else {
- if (unmappedFontNames == null) {
- unmappedFontNames = new ArrayList<String>();
- }
- unmappedFontNames.add(font);
- }
- }
- }
-
- if (unmappedFontNames != null) {
- HashSet<String> unmappedFontFiles = new HashSet<String>();
-
- /* Every font key in fontToFileMap ought to correspond to a
- * font key in fontToFamilyNameMap. Entries that don't seem
- * to correspond are likely fonts that were named differently
- * by GDI than in the registry. One known cause of this is when
- * Windows has had its regional settings changed so that from
- * GDI we get a localised (eg Chinese or Japanese) name for the
- * font, but the registry retains the English version of the name
- * that corresponded to the "install" locale for windows.
- * Since we are in this code block because there are unmapped
- * font names, we can look to find unused font->file mappings
- * and then open the files to read the names. We don't generally
- * want to open font files, as its a performance hit, but this
- * occurs only for a small number of fonts on specific system
- * configs - ie is believed that a "true" Japanese windows would
- * have JA names in the registry too.
- * Clone fontToFileMap and remove from the clone all keys which
- * match a fontToFamilyNameMap key. What remains maps to the
- * files we want to open to find the fonts GDI returned.
- * A font in such a file is added to the fontToFileMap after
- * checking its one of the unmappedFontNames we are looking for.
- * The original name that didn't map is removed from fontToFileMap
- * so essentially this "fixes up" fontToFileMap to use the same
- * name as GDI.
- * Also note that typically the fonts for which this occurs in
- * CJK locales are TTC fonts and not all fonts in a TTC may have
- * localised names. Eg MSGOTHIC.TTC contains 3 fonts and one of
- * them "MS UI Gothic" has no JA name whereas the other two do.
- * So not every font in these files is unmapped or new.
- */
- HashMap<String,String> ffmapCopy =
- (HashMap<String,String>)(fontToFileMap.clone());
- for (String key : fontToFamilyNameMap.keySet()) {
- ffmapCopy.remove(key);
- }
- for (String key : ffmapCopy.keySet()) {
- unmappedFontFiles.add(ffmapCopy.get(key));
- fontToFileMap.remove(key);
- }
-
- resolveFontFiles(unmappedFontFiles, unmappedFontNames);
-
- /* If there are still unmapped font names, this means there's
- * something that wasn't in the registry. We need to get all
- * the font files directly and look at the ones that weren't
- * found in the registry.
- */
- if (unmappedFontNames.size() > 0) {
-
- /* getFontFilesFromPath() returns all lower case names.
- * To compare we also need lower case
- * versions of the names from the registry.
- */
- ArrayList<String> registryFiles = new ArrayList<String>();
-
- for (String regFile : fontToFileMap.values()) {
- registryFiles.add(regFile.toLowerCase());
- }
- /* We don't look for Type1 files here as windows will
- * not enumerate these, so aren't useful in reconciling
- * GDI's unmapped files. We do find these later when
- * we enumerate all fonts.
- */
- for (String pathFile : getFontFilesFromPath(true)) {
- if (!registryFiles.contains(pathFile)) {
- unmappedFontFiles.add(pathFile);
- }
- }
-
- resolveFontFiles(unmappedFontFiles, unmappedFontNames);
- }
-
- /* remove from the set of names that will be returned to the
- * user any fonts that can't be mapped to files.
- */
- if (unmappedFontNames.size() > 0) {
- int sz = unmappedFontNames.size();
- for (int i=0; i<sz; i++) {
- String name = unmappedFontNames.get(i);
- String familyName = fontToFamilyNameMap.get(name);
- if (familyName != null) {
- ArrayList family = familyToFontListMap.get(familyName);
- if (family != null) {
- if (family.size() <= 1) {
- familyToFontListMap.remove(familyName);
- }
- }
- }
- fontToFamilyNameMap.remove(name);
- if (logging) {
- logger.info("No file for font:" + name);
- }
- }
- }
- }
- }
+ public void deRegisterBadFont(Font2D font2D);
/**
- * In some cases windows may have fonts in the fonts folder that
- * don't show up in the registry or in the GDI calls to enumerate fonts.
- * The only way to find these is to list the directory. We invoke this
- * only in getAllFonts/Families, so most searches for a specific
- * font that is satisfied by the GDI/registry calls don't take the
- * additional hit of listing the directory. This hit is small enough
- * that its not significant in these 'enumerate all the fonts' cases.
- * The basic approach is to cross-reference the files windows found
- * with the ones in the directory listing approach, and for each
- * in the latter list that is missing from the former list, register it.
- */
- private static synchronized void checkForUnreferencedFontFiles() {
- if (haveCheckedUnreferencedFontFiles) {
- return;
- }
- haveCheckedUnreferencedFontFiles = true;
- if (!isWindows) {
- return;
- }
- /* getFontFilesFromPath() returns all lower case names.
- * To compare we also need lower case
- * versions of the names from the registry.
- */
- ArrayList<String> registryFiles = new ArrayList<String>();
- for (String regFile : fontToFileMap.values()) {
- registryFiles.add(regFile.toLowerCase());
- }
-
- /* To avoid any issues with concurrent modification, create
- * copies of the existing maps, add the new fonts into these
- * and then replace the references to the old ones with the
- * new maps. ConcurrentHashmap is another option but its a lot
- * more changes and with this exception, these maps are intended
- * to be static.
- */
- HashMap<String,String> fontToFileMap2 = null;
- HashMap<String,String> fontToFamilyNameMap2 = null;
- HashMap<String,ArrayList<String>> familyToFontListMap2 = null;;
-
- for (String pathFile : getFontFilesFromPath(false)) {
- if (!registryFiles.contains(pathFile)) {
- if (logging) {
- logger.info("Found non-registry file : " + pathFile);
- }
- PhysicalFont f = registerFontFile(getPathName(pathFile));
- if (f == null) {
- continue;
- }
- if (fontToFileMap2 == null) {
- fontToFileMap2 = new HashMap<String,String>(fontToFileMap);
- fontToFamilyNameMap2 =
- new HashMap<String,String>(fontToFamilyNameMap);
- familyToFontListMap2 = new
- HashMap<String,ArrayList<String>>(familyToFontListMap);
- }
- String fontName = f.getFontName(null);
- String family = f.getFamilyName(null);
- String familyLC = family.toLowerCase();
- fontToFamilyNameMap2.put(fontName, family);
- fontToFileMap2.put(fontName, pathFile);
- ArrayList<String> fonts = familyToFontListMap2.get(familyLC);
- if (fonts == null) {
- fonts = new ArrayList<String>();
- } else {
- fonts = new ArrayList<String>(fonts);
- }
- fonts.add(fontName);
- familyToFontListMap2.put(familyLC, fonts);
- }
- }
- if (fontToFileMap2 != null) {
- fontToFileMap = fontToFileMap2;
- familyToFontListMap = familyToFontListMap2;
- fontToFamilyNameMap = fontToFamilyNameMap2;
- }
- }
-
- private static void resolveFontFiles(HashSet<String> unmappedFiles,
- ArrayList<String> unmappedFonts) {
-
- Locale l = SunToolkit.getStartupLocale();
-
- for (String file : unmappedFiles) {
- try {
- int fn = 0;
- TrueTypeFont ttf;
- String fullPath = getPathName(file);
- if (logging) {
- logger.info("Trying to resolve file " + fullPath);
- }
- do {
- ttf = new TrueTypeFont(fullPath, null, fn++, true);
- // prefer the font's locale name.
- String fontName = ttf.getFontName(l).toLowerCase();
- if (unmappedFonts.contains(fontName)) {
- fontToFileMap.put(fontName, file);
- unmappedFonts.remove(fontName);
- if (logging) {
- logger.info("Resolved absent registry entry for " +
- fontName + " located in " + fullPath);
- }
- }
- }
- while (fn < ttf.getFontCount());
- } catch (Exception e) {
- }
- }
- }
-
- private static synchronized HashMap<String,String> getFullNameToFileMap() {
- if (fontToFileMap == null) {
-
- initSGEnv();
- pathDirs = sgEnv.getPlatformFontDirs();
-
- fontToFileMap = new HashMap<String,String>(100);
- fontToFamilyNameMap = new HashMap<String,String>(100);
- familyToFontListMap = new HashMap<String,ArrayList<String>>(50);
- populateFontFileNameMap(fontToFileMap,
- fontToFamilyNameMap,
- familyToFontListMap,
- Locale.ENGLISH);
- if (isWindows) {
- resolveWindowsFonts();
- }
- if (logging) {
- logPlatformFontInfo();
- }
- }
- return fontToFileMap;
- }
-
- private static void logPlatformFontInfo() {
- for (int i=0; i< pathDirs.length;i++) {
- logger.info("fontdir="+pathDirs[i]);
- }
- for (String keyName : fontToFileMap.keySet()) {
- logger.info("font="+keyName+" file="+ fontToFileMap.get(keyName));
- }
- for (String keyName : fontToFamilyNameMap.keySet()) {
- logger.info("font="+keyName+" family="+
- fontToFamilyNameMap.get(keyName));
- }
- for (String keyName : familyToFontListMap.keySet()) {
- logger.info("family="+keyName+ " fonts="+
- familyToFontListMap.get(keyName));
- }
- }
-
- /* Note this return list excludes logical fonts and JRE fonts */
- public static String[] getFontNamesFromPlatform() {
- if (getFullNameToFileMap().size() == 0) {
- return null;
- }
- checkForUnreferencedFontFiles();
- /* This odd code with TreeMap is used to preserve a historical
- * behaviour wrt the sorting order .. */
- ArrayList<String> fontNames = new ArrayList<String>();
- for (ArrayList<String> a : familyToFontListMap.values()) {
- for (String s : a) {
- fontNames.add(s);
- }
- }
- return fontNames.toArray(STR_ARRAY);
- }
-
- public static boolean gotFontsFromPlatform() {
- return getFullNameToFileMap().size() != 0;
- }
-
- public static String getFileNameForFontName(String fontName) {
- String fontNameLC = fontName.toLowerCase(Locale.ENGLISH);
- return fontToFileMap.get(fontNameLC);
- }
-
- private static PhysicalFont registerFontFile(String file) {
- if (new File(file).isAbsolute() &&
- !registeredFontFiles.contains(file)) {
- int fontFormat = FONTFORMAT_NONE;
- int fontRank = Font2D.UNKNOWN_RANK;
- if (SunGraphicsEnvironment.ttFilter.accept(null, file)) {
- fontFormat = FONTFORMAT_TRUETYPE;
- fontRank = Font2D.TTF_RANK;
- } else if
- (SunGraphicsEnvironment.t1Filter.accept(null, file)) {
- fontFormat = FONTFORMAT_TYPE1;
- fontRank = Font2D.TYPE1_RANK;
- }
- if (fontFormat == FONTFORMAT_NONE) {
- return null;
- }
- return registerFontFile(file, null, fontFormat, false, fontRank);
- }
- return null;
- }
-
- /* Used to register any font files that are found by platform APIs
- * that weren't previously found in the standard font locations.
- * the isAbsolute() check is needed since that's whats stored in the
- * set, and on windows, the fonts in the system font directory that
- * are in the fontToFileMap are just basenames. We don't want to try
- * to register those again, but we do want to register other registry
- * installed fonts.
- */
- public static void registerOtherFontFiles(HashSet registeredFontFiles) {
- if (getFullNameToFileMap().size() == 0) {
- return;
- }
- for (String file : fontToFileMap.values()) {
- registerFontFile(file);
- }
- }
-
- public static boolean
- getFamilyNamesFromPlatform(TreeMap<String,String> familyNames,
- Locale requestedLocale) {
- if (getFullNameToFileMap().size() == 0) {
- return false;
- }
- checkForUnreferencedFontFiles();
- for (String name : fontToFamilyNameMap.values()) {
- familyNames.put(name.toLowerCase(requestedLocale), name);
- }
- return true;
- }
-
- /* Path may be absolute or a base file name relative to one of
- * the platform font directories
- */
- private static String getPathName(final String s) {
- File f = new File(s);
- if (f.isAbsolute()) {
- return s;
- } else if (pathDirs.length==1) {
- return pathDirs[0] + File.separator + s;
- } else {
- String path = java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<String>() {
- public String run() {
- for (int p=0; p<pathDirs.length; p++) {
- File f = new File(pathDirs[p] +File.separator+ s);
- if (f.exists()) {
- return f.getAbsolutePath();
- }
- }
- return null;
- }
- });
- if (path != null) {
- return path;
- }
- }
- return s; // shouldn't happen, but harmless
- }
-
- /* lcName is required to be lower case for use as a key.
- * lcName may be a full name, or a family name, and style may
- * be specified in addition to either of these. So be sure to
- * get the right one. Since an app *could* ask for "Foo Regular"
- * and later ask for "Foo Italic", if we don't register all the
- * styles, then logic in findFont2D may try to style the original
- * so we register the entire family if we get a match here.
- * This is still a big win because this code is invoked where
- * otherwise we would register all fonts.
- * It's also useful for the case where "Foo Bold" was specified with
- * style Font.ITALIC, as we would want in that case to try to return
- * "Foo Bold Italic" if it exists, and it is only by locating "Foo Bold"
- * and opening it that we really "know" it's Bold, and can look for
- * a font that supports that and the italic style.
- * The code in here is not overtly windows-specific but in fact it
- * is unlikely to be useful as is on other platforms. It is maintained
- * in this shared source file to be close to its sole client and
- * because so much of the logic is intertwined with the logic in
- * findFont2D.
- */
- private static Font2D findFontFromPlatform(String lcName, int style) {
- if (getFullNameToFileMap().size() == 0) {
- return null;
- }
-
- ArrayList<String> family = null;
- String fontFile = null;
- String familyName = fontToFamilyNameMap.get(lcName);
- if (familyName != null) {
- fontFile = fontToFileMap.get(lcName);
- family = familyToFontListMap.get
- (familyName.toLowerCase(Locale.ENGLISH));
- } else {
- family = familyToFontListMap.get(lcName); // is lcName is a family?
- if (family != null && family.size() > 0) {
- String lcFontName = family.get(0).toLowerCase(Locale.ENGLISH);
- if (lcFontName != null) {
- familyName = fontToFamilyNameMap.get(lcFontName);
- }
- }
- }
- if (family == null || familyName == null) {
- return null;
- }
- String [] fontList = (String[])family.toArray(STR_ARRAY);
- if (fontList.length == 0) {
- return null;
- }
-
- /* first check that for every font in this family we can find
- * a font file. The specific reason for doing this is that
- * in at least one case on Windows a font has the face name "David"
- * but the registry entry is "David Regular". That is the "unique"
- * name of the font but in other cases the registry contains the
- * "full" name. See the specifications of name ids 3 and 4 in the
- * TrueType 'name' table.
- * In general this could cause a problem that we fail to register
- * if we all members of a family that we may end up mapping to
- * the wrong font member: eg return Bold when Plain is needed.
- */
- for (int f=0;f<fontList.length;f++) {
- String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
- String fileName = fontToFileMap.get(fontNameLC);
- if (fileName == null) {
- if (logging) {
- logger.info("Platform lookup : No file for font " +
- fontList[f] + " in family " +familyName);
- }
- return null;
- }
- }
-
- /* Currently this code only looks for TrueType fonts, so format
- * and rank can be specified without looking at the filename.
- */
- PhysicalFont physicalFont = null;
- if (fontFile != null) {
- physicalFont = registerFontFile(getPathName(fontFile), null,
- FONTFORMAT_TRUETYPE, false,
- Font2D.TTF_RANK);
- }
- /* Register all fonts in this family. */
- for (int f=0;f<fontList.length;f++) {
- String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
- String fileName = fontToFileMap.get(fontNameLC);
- if (fontFile != null && fontFile.equals(fileName)) {
- continue;
- }
- /* Currently this code only looks for TrueType fonts, so format
- * and rank can be specified without looking at the filename.
- */
- registerFontFile(getPathName(fileName), null,
- FONTFORMAT_TRUETYPE, false, Font2D.TTF_RANK);
- }
-
- Font2D font = null;
- FontFamily fontFamily = FontFamily.getFamily(familyName);
- /* Handle case where request "MyFont Bold", style=Font.ITALIC */
- if (physicalFont != null) {
- style |= physicalFont.style;
- }
- if (fontFamily != null) {
- font = fontFamily.getFont(style);
- if (font == null) {
- font = fontFamily.getClosestStyle(style);
- }
- }
- return font;
- }
-
- private static ConcurrentHashMap<String, Font2D> fontNameCache =
- new ConcurrentHashMap<String, Font2D>();
-
- /*
* The client supplies a name and a style.
* The name could be a family name, or a full name.
* A font may exist with the specified style, or it may
* exist only in some other style. For non-native fonts the scaler
* may be able to emulate the required style.
*/
- public static Font2D findFont2D(String name, int style, int fallback) {
- String lowerCaseName = name.toLowerCase(Locale.ENGLISH);
- String mapName = lowerCaseName + dotStyleStr(style);
- Font2D font;
-
- /* If preferLocaleFonts() or preferProportionalFonts() has been
- * called we may be using an alternate set of composite fonts in this
- * app context. The presence of a pre-built name map indicates whether
- * this is so, and gives access to the alternate composite for the
- * name.
- */
- if (usingPerAppContextComposites) {
- ConcurrentHashMap<String, Font2D> altNameCache =
- (ConcurrentHashMap<String, Font2D>)
- AppContext.getAppContext().get(CompositeFont.class);
- if (altNameCache != null) {
- font = (Font2D)altNameCache.get(mapName);
- } else {
- font = null;
- }
- } else {
- font = fontNameCache.get(mapName);
- }
- if (font != null) {
- return font;
- }
-
- if (logging) {
- logger.info("Search for font: " + name);
- }
-
- // The check below is just so that the bitmap fonts being set by
- // AWT and Swing thru the desktop properties do not trigger the
- // the load fonts case. The two bitmap fonts are now mapped to
- // appropriate equivalents for serif and sansserif.
- // Note that the cost of this comparison is only for the first
- // call until the map is filled.
- if (isWindows) {
- if (lowerCaseName.equals("ms sans serif")) {
- name = "sansserif";
- } else if (lowerCaseName.equals("ms serif")) {
- name = "serif";
- }
- }
-
- /* This isn't intended to support a client passing in the
- * string default, but if a client passes in null for the name
- * the java.awt.Font class internally substitutes this name.
- * So we need to recognise it here to prevent a loadFonts
- * on the unrecognised name. The only potential problem with
- * this is it would hide any real font called "default"!
- * But that seems like a potential problem we can ignore for now.
- */
- if (lowerCaseName.equals("default")) {
- name = "dialog";
- }
-
- /* First see if its a family name. */
- FontFamily family = FontFamily.getFamily(name);
- if (family != null) {
- font = family.getFontWithExactStyleMatch(style);
- if (font == null) {
- font = findDeferredFont(name, style);
- }
- if (font == null) {
- font = family.getFont(style);
- }
- if (font == null) {
- font = family.getClosestStyle(style);
- }
- if (font != null) {
- fontNameCache.put(mapName, font);
- return font;
- }
- }
-
- /* If it wasn't a family name, it should be a full name of
- * either a composite, or a physical font
- */
- font = fullNameToFont.get(lowerCaseName);
- if (font != null) {
- /* Check that the requested style matches the matched font's style.
- * But also match style automatically if the requested style is
- * "plain". This because the existing behaviour is that the fonts
- * listed via getAllFonts etc always list their style as PLAIN.
- * This does lead to non-commutative behaviours where you might
- * start with "Lucida Sans Regular" and ask for a BOLD version
- * and get "Lucida Sans DemiBold" but if you ask for the PLAIN
- * style of "Lucida Sans DemiBold" you get "Lucida Sans DemiBold".
- * This consistent however with what happens if you have a bold
- * version of a font and no plain version exists - alg. styling
- * doesn't "unbolden" the font.
- */
- if (font.style == style || style == Font.PLAIN) {
- fontNameCache.put(mapName, font);
- return font;
- } else {
- /* If it was a full name like "Lucida Sans Regular", but
- * the style requested is "bold", then we want to see if
- * there's the appropriate match against another font in
- * that family before trying to load all fonts, or applying a
- * algorithmic styling
- */
- family = FontFamily.getFamily(font.getFamilyName(null));
- if (family != null) {
- Font2D familyFont = family.getFont(style|font.style);
- /* We exactly matched the requested style, use it! */
- if (familyFont != null) {
- fontNameCache.put(mapName, familyFont);
- return familyFont;
- } else {
- /* This next call is designed to support the case
- * where bold italic is requested, and if we must
- * style, then base it on either bold or italic -
- * not on plain!
- */
- familyFont = family.getClosestStyle(style|font.style);
- if (familyFont != null) {
- /* The next check is perhaps one
- * that shouldn't be done. ie if we get this
- * far we have probably as close a match as we
- * are going to get. We could load all fonts to
- * see if somehow some parts of the family are
- * loaded but not all of it.
- */
- if (familyFont.canDoStyle(style|font.style)) {
- fontNameCache.put(mapName, familyFont);
- return familyFont;
- }
- }
- }
- }
- }
- }
-
- /* If reach here its possible that this is in a client which never
- * loaded the GraphicsEnvironment, so we haven't even loaded ANY of
- * the fonts from the environment. Do so now and recurse.
- */
- if (sgEnv == null) {
- initSGEnv();
- return findFont2D(name, style, fallback);
- }
-
- if (isWindows) {
- /* Don't want Windows to return a Lucida Sans font from
- * C:\Windows\Fonts
- */
- if (deferredFontFiles.size() > 0) {
- font = findJREDeferredFont(lowerCaseName, style);
- if (font != null) {
- fontNameCache.put(mapName, font);
- return font;
- }
- }
- font = findFontFromPlatform(lowerCaseName, style);
- if (font != null) {
- if (logging) {
- logger.info("Found font via platform API for request:\"" +
- name + "\":, style="+style+
- " found font: " + font);
- }
- fontNameCache.put(mapName, font);
- return font;
- }
- }
-
- /* If reach here and no match has been located, then if there are
- * uninitialised deferred fonts, load as many of those as needed
- * to find the deferred font. If none is found through that
- * search continue on.
- * There is possibly a minor issue when more than one
- * deferred font implements the same font face. Since deferred
- * fonts are only those in font configuration files, this is a
- * controlled situation, the known case being Solaris euro_fonts
- * versions of Arial, Times New Roman, Courier New. However
- * the larger font will transparently replace the smaller one
- * - see addToFontList() - when it is needed by the composite font.
- */
- if (deferredFontFiles.size() > 0) {
- font = findDeferredFont(name, style);
- if (font != null) {
- fontNameCache.put(mapName, font);
- return font;
- }
- }
-
- /* Some apps use deprecated 1.0 names such as helvetica and courier. On
- * Solaris these are Type1 fonts in /usr/openwin/lib/X11/fonts/Type1.
- * If running on Solaris will register all the fonts in this
- * directory.
- * May as well register the whole directory without actually testing
- * the font name is one of the deprecated names as the next step would
- * load all fonts which are in this directory anyway.
- * In the event that this lookup is successful it potentially "hides"
- * TrueType versions of such fonts that are elsewhere but since they
- * do not exist on Solaris this is not a problem.
- * Set a flag to indicate we've done this registration to avoid
- * repetition and more seriously, to avoid recursion.
- */
- if (isSolaris&&!loaded1dot0Fonts) {
- /* "timesroman" is a special case since that's not the
- * name of any known font on Solaris or elsewhere.
- */
- if (lowerCaseName.equals("timesroman")) {
- font = findFont2D("serif", style, fallback);
- fontNameCache.put(mapName, font);
- }
- sgEnv.register1dot0Fonts();
- loaded1dot0Fonts = true;
- Font2D ff = findFont2D(name, style, fallback);
- return ff;
- }
-
- /* We check for application registered fonts before
- * explicitly loading all fonts as if necessary the registration
- * code will have done so anyway. And we don't want to needlessly
- * load the actual files for all fonts.
- * Just as for installed fonts we check for family before fullname.
- * We do not add these fonts to fontNameCache for the
- * app context case which eliminates the overhead of a per context
- * cache for these.
- */
-
- if (fontsAreRegistered || fontsAreRegisteredPerAppContext) {
- Hashtable<String, FontFamily> familyTable = null;
- Hashtable<String, Font2D> nameTable;
-
- if (fontsAreRegistered) {
- familyTable = createdByFamilyName;
- nameTable = createdByFullName;
- } else {
- AppContext appContext = AppContext.getAppContext();
- familyTable =
- (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
- nameTable =
- (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
- }
-
- family = familyTable.get(lowerCaseName);
- if (family != null) {
- font = family.getFontWithExactStyleMatch(style);
- if (font == null) {
- font = family.getFont(style);
- }
- if (font == null) {
- font = family.getClosestStyle(style);
- }
- if (font != null) {
- if (fontsAreRegistered) {
- fontNameCache.put(mapName, font);
- }
- return font;
- }
- }
- font = nameTable.get(lowerCaseName);
- if (font != null) {
- if (fontsAreRegistered) {
- fontNameCache.put(mapName, font);
- }
- return font;
- }
- }
-
- /* If reach here and no match has been located, then if all fonts
- * are not yet loaded, do so, and then recurse.
- */
- if (!loadedAllFonts) {
- if (logging) {
- logger.info("Load fonts looking for:" + name);
- }
- sgEnv.loadFonts();
- loadedAllFonts = true;
- return findFont2D(name, style, fallback);
- }
-
- if (!loadedAllFontFiles) {
- if (logging) {
- logger.info("Load font files looking for:" + name);
- }
- sgEnv.loadFontFiles();
- loadedAllFontFiles = true;
- return findFont2D(name, style, fallback);
- }
-
- /* The primary name is the locale default - ie not US/English but
- * whatever is the default in this locale. This is the way it always
- * has been but may be surprising to some developers if "Arial Regular"
- * were hard-coded in their app and yet "Arial Regular" was not the
- * default name. Fortunately for them, as a consequence of the JDK
- * supporting returning names and family names for arbitrary locales,
- * we also need to support searching all localised names for a match.
- * But because this case of the name used to reference a font is not
- * the same as the default for this locale is rare, it makes sense to
- * search a much shorter list of default locale names and only go to
- * a longer list of names in the event that no match was found.
- * So add here code which searches localised names too.
- * As in 1.4.x this happens only after loading all fonts, which
- * is probably the right order.
- */
- if ((font = findFont2DAllLocales(name, style)) != null) {
- fontNameCache.put(mapName, font);
- return font;
- }
-
- /* Perhaps its a "compatibility" name - timesroman, helvetica,
- * or courier, which 1.0 apps used for logical fonts.
- * We look for these "late" after a loadFonts as we must not
- * hide real fonts of these names.
- * Map these appropriately:
- * On windows this means according to the rules specified by the
- * FontConfiguration : do it only for encoding==Cp1252
- *
- * REMIND: this is something we plan to remove.
- */
- if (isWindows) {
- String compatName =
- sgEnv.getFontConfiguration().getFallbackFamilyName(name, null);
- if (compatName != null) {
- font = findFont2D(compatName, style, fallback);
- fontNameCache.put(mapName, font);
- return font;
- }
- } else if (lowerCaseName.equals("timesroman")) {
- font = findFont2D("serif", style, fallback);
- fontNameCache.put(mapName, font);
- return font;
- } else if (lowerCaseName.equals("helvetica")) {
- font = findFont2D("sansserif", style, fallback);
- fontNameCache.put(mapName, font);
- return font;
- } else if (lowerCaseName.equals("courier")) {
- font = findFont2D("monospaced", style, fallback);
- fontNameCache.put(mapName, font);
- return font;
- }
-
- if (logging) {
- logger.info("No font found for:" + name);
- }
-
- switch (fallback) {
- case PHYSICAL_FALLBACK: return getDefaultPhysicalFont();
- case LOGICAL_FALLBACK: return getDefaultLogicalFont(style);
- default: return null;
- }
- }
-
- /* This method can be more efficient as it will only need to
- * do the lookup once, and subsequent calls on the java.awt.Font
- * instance can utilise the cached Font2D on that object.
- * Its unfortunate it needs to be a native method, but the font2D
- * variable has to be private.
- */
- public static native Font2D getFont2D(Font font);
-
- /* Stuff below was in NativeFontWrapper and needed a new home */
-
- /*
- * Workaround for apps which are dependent on a font metrics bug
- * in JDK 1.1. This is an unsupported win32 private setting.
- */
- public static boolean usePlatformFontMetrics() {
- return usePlatformFontMetrics;
- }
-
- static native boolean getPlatformFontVar();
-
- private static final short US_LCID = 0x0409; // US English - default
- private static Map<String, Short> lcidMap;
-
- // Return a Microsoft LCID from the given Locale.
- // Used when getting localized font data.
-
- public static short getLCIDFromLocale(Locale locale) {
- // optimize for common case
- if (locale.equals(Locale.US)) {
- return US_LCID;
- }
-
- if (lcidMap == null) {
- createLCIDMap();
- }
-
- String key = locale.toString();
- while (!"".equals(key)) {
- Short lcidObject = (Short) lcidMap.get(key);
- if (lcidObject != null) {
- return lcidObject.shortValue();
- }
- int pos = key.lastIndexOf('_');
- if (pos < 1) {
- return US_LCID;
- }
- key = key.substring(0, pos);
- }
-
- return US_LCID;
- }
-
-
- private static void addLCIDMapEntry(Map<String, Short> map,
- String key, short value) {
- map.put(key, Short.valueOf(value));
- }
-
- private static synchronized void createLCIDMap() {
- if (lcidMap != null) {
- return;
- }
-
- Map<String, Short> map = new HashMap<String, Short>(200);
+ public Font2D findFont2D(String name, int style, int fallback);
- // the following statements are derived from the langIDMap
- // in src/windows/native/java/lang/java_props_md.c using the following
- // awk script:
- // $1~/\/\*/ { next}
- // $3~/\?\?/ { next }
- // $3!~/_/ { next }
- // $1~/0x0409/ { next }
- // $1~/0x0c0a/ { next }
- // $1~/0x042c/ { next }
- // $1~/0x0443/ { next }
- // $1~/0x0812/ { next }
- // $1~/0x04/ { print " addLCIDMapEntry(map, " substr($3, 0, 3) "\", (short) " substr($1, 0, 6) ");" ; next }
- // $3~/,/ { print " addLCIDMapEntry(map, " $3 " (short) " substr($1, 0, 6) ");" ; next }
- // { print " addLCIDMapEntry(map, " $3 ", (short) " substr($1, 0, 6) ");" ; next }
- // The lines of this script:
- // - eliminate comments
- // - eliminate questionable locales
- // - eliminate language-only locales
- // - eliminate the default LCID value
- // - eliminate a few other unneeded LCID values
- // - print language-only locale entries for x04* LCID values
- // (apparently Microsoft doesn't use language-only LCID values -
- // see http://www.microsoft.com/OpenType/otspec/name.htm
- // - print complete entries for all other LCID values
- // Run
- // awk -f awk-script langIDMap > statements
- addLCIDMapEntry(map, "ar", (short) 0x0401);
- addLCIDMapEntry(map, "bg", (short) 0x0402);
- addLCIDMapEntry(map, "ca", (short) 0x0403);
- addLCIDMapEntry(map, "zh", (short) 0x0404);
- addLCIDMapEntry(map, "cs", (short) 0x0405);
- addLCIDMapEntry(map, "da", (short) 0x0406);
- addLCIDMapEntry(map, "de", (short) 0x0407);
- addLCIDMapEntry(map, "el", (short) 0x0408);
- addLCIDMapEntry(map, "es", (short) 0x040a);
- addLCIDMapEntry(map, "fi", (short) 0x040b);
- addLCIDMapEntry(map, "fr", (short) 0x040c);
- addLCIDMapEntry(map, "iw", (short) 0x040d);
- addLCIDMapEntry(map, "hu", (short) 0x040e);
- addLCIDMapEntry(map, "is", (short) 0x040f);
- addLCIDMapEntry(map, "it", (short) 0x0410);
- addLCIDMapEntry(map, "ja", (short) 0x0411);
- addLCIDMapEntry(map, "ko", (short) 0x0412);
- addLCIDMapEntry(map, "nl", (short) 0x0413);
- addLCIDMapEntry(map, "no", (short) 0x0414);
- addLCIDMapEntry(map, "pl", (short) 0x0415);
- addLCIDMapEntry(map, "pt", (short) 0x0416);
- addLCIDMapEntry(map, "rm", (short) 0x0417);
- addLCIDMapEntry(map, "ro", (short) 0x0418);
- addLCIDMapEntry(map, "ru", (short) 0x0419);
- addLCIDMapEntry(map, "hr", (short) 0x041a);
- addLCIDMapEntry(map, "sk", (short) 0x041b);
- addLCIDMapEntry(map, "sq", (short) 0x041c);
- addLCIDMapEntry(map, "sv", (short) 0x041d);
- addLCIDMapEntry(map, "th", (short) 0x041e);
- addLCIDMapEntry(map, "tr", (short) 0x041f);
- addLCIDMapEntry(map, "ur", (short) 0x0420);
- addLCIDMapEntry(map, "in", (short) 0x0421);
- addLCIDMapEntry(map, "uk", (short) 0x0422);
- addLCIDMapEntry(map, "be", (short) 0x0423);
- addLCIDMapEntry(map, "sl", (short) 0x0424);
- addLCIDMapEntry(map, "et", (short) 0x0425);
- addLCIDMapEntry(map, "lv", (short) 0x0426);
- addLCIDMapEntry(map, "lt", (short) 0x0427);
- addLCIDMapEntry(map, "fa", (short) 0x0429);
- addLCIDMapEntry(map, "vi", (short) 0x042a);
- addLCIDMapEntry(map, "hy", (short) 0x042b);
- addLCIDMapEntry(map, "eu", (short) 0x042d);
- addLCIDMapEntry(map, "mk", (short) 0x042f);
- addLCIDMapEntry(map, "tn", (short) 0x0432);
- addLCIDMapEntry(map, "xh", (short) 0x0434);
- addLCIDMapEntry(map, "zu", (short) 0x0435);
- addLCIDMapEntry(map, "af", (short) 0x0436);
- addLCIDMapEntry(map, "ka", (short) 0x0437);
- addLCIDMapEntry(map, "fo", (short) 0x0438);
- addLCIDMapEntry(map, "hi", (short) 0x0439);
- addLCIDMapEntry(map, "mt", (short) 0x043a);
- addLCIDMapEntry(map, "se", (short) 0x043b);
- addLCIDMapEntry(map, "gd", (short) 0x043c);
- addLCIDMapEntry(map, "ms", (short) 0x043e);
- addLCIDMapEntry(map, "kk", (short) 0x043f);
- addLCIDMapEntry(map, "ky", (short) 0x0440);
- addLCIDMapEntry(map, "sw", (short) 0x0441);
- addLCIDMapEntry(map, "tt", (short) 0x0444);
- addLCIDMapEntry(map, "bn", (short) 0x0445);
- addLCIDMapEntry(map, "pa", (short) 0x0446);
- addLCIDMapEntry(map, "gu", (short) 0x0447);
- addLCIDMapEntry(map, "ta", (short) 0x0449);
- addLCIDMapEntry(map, "te", (short) 0x044a);
- addLCIDMapEntry(map, "kn", (short) 0x044b);
- addLCIDMapEntry(map, "ml", (short) 0x044c);
- addLCIDMapEntry(map, "mr", (short) 0x044e);
- addLCIDMapEntry(map, "sa", (short) 0x044f);
- addLCIDMapEntry(map, "mn", (short) 0x0450);
- addLCIDMapEntry(map, "cy", (short) 0x0452);
- addLCIDMapEntry(map, "gl", (short) 0x0456);
- addLCIDMapEntry(map, "dv", (short) 0x0465);
- addLCIDMapEntry(map, "qu", (short) 0x046b);
- addLCIDMapEntry(map, "mi", (short) 0x0481);
- addLCIDMapEntry(map, "ar_IQ", (short) 0x0801);
- addLCIDMapEntry(map, "zh_CN", (short) 0x0804);
- addLCIDMapEntry(map, "de_CH", (short) 0x0807);
- addLCIDMapEntry(map, "en_GB", (short) 0x0809);
- addLCIDMapEntry(map, "es_MX", (short) 0x080a);
- addLCIDMapEntry(map, "fr_BE", (short) 0x080c);
- addLCIDMapEntry(map, "it_CH", (short) 0x0810);
- addLCIDMapEntry(map, "nl_BE", (short) 0x0813);
- addLCIDMapEntry(map, "no_NO_NY", (short) 0x0814);
- addLCIDMapEntry(map, "pt_PT", (short) 0x0816);
- addLCIDMapEntry(map, "ro_MD", (short) 0x0818);
- addLCIDMapEntry(map, "ru_MD", (short) 0x0819);
- addLCIDMapEntry(map, "sr_CS", (short) 0x081a);
- addLCIDMapEntry(map, "sv_FI", (short) 0x081d);
- addLCIDMapEntry(map, "az_AZ", (short) 0x082c);
- addLCIDMapEntry(map, "se_SE", (short) 0x083b);
- addLCIDMapEntry(map, "ga_IE", (short) 0x083c);
- addLCIDMapEntry(map, "ms_BN", (short) 0x083e);
- addLCIDMapEntry(map, "uz_UZ", (short) 0x0843);
- addLCIDMapEntry(map, "qu_EC", (short) 0x086b);
- addLCIDMapEntry(map, "ar_EG", (short) 0x0c01);
- addLCIDMapEntry(map, "zh_HK", (short) 0x0c04);
- addLCIDMapEntry(map, "de_AT", (short) 0x0c07);
- addLCIDMapEntry(map, "en_AU", (short) 0x0c09);
- addLCIDMapEntry(map, "fr_CA", (short) 0x0c0c);
- addLCIDMapEntry(map, "sr_CS", (short) 0x0c1a);
- addLCIDMapEntry(map, "se_FI", (short) 0x0c3b);
- addLCIDMapEntry(map, "qu_PE", (short) 0x0c6b);
- addLCIDMapEntry(map, "ar_LY", (short) 0x1001);
- addLCIDMapEntry(map, "zh_SG", (short) 0x1004);
- addLCIDMapEntry(map, "de_LU", (short) 0x1007);
- addLCIDMapEntry(map, "en_CA", (short) 0x1009);
- addLCIDMapEntry(map, "es_GT", (short) 0x100a);
- addLCIDMapEntry(map, "fr_CH", (short) 0x100c);
- addLCIDMapEntry(map, "hr_BA", (short) 0x101a);
- addLCIDMapEntry(map, "ar_DZ", (short) 0x1401);
- addLCIDMapEntry(map, "zh_MO", (short) 0x1404);
- addLCIDMapEntry(map, "de_LI", (short) 0x1407);
- addLCIDMapEntry(map, "en_NZ", (short) 0x1409);
- addLCIDMapEntry(map, "es_CR", (short) 0x140a);
- addLCIDMapEntry(map, "fr_LU", (short) 0x140c);
- addLCIDMapEntry(map, "bs_BA", (short) 0x141a);
- addLCIDMapEntry(map, "ar_MA", (short) 0x1801);
- addLCIDMapEntry(map, "en_IE", (short) 0x1809);
- addLCIDMapEntry(map, "es_PA", (short) 0x180a);
- addLCIDMapEntry(map, "fr_MC", (short) 0x180c);
- addLCIDMapEntry(map, "sr_BA", (short) 0x181a);
- addLCIDMapEntry(map, "ar_TN", (short) 0x1c01);
- addLCIDMapEntry(map, "en_ZA", (short) 0x1c09);
- addLCIDMapEntry(map, "es_DO", (short) 0x1c0a);
- addLCIDMapEntry(map, "sr_BA", (short) 0x1c1a);
- addLCIDMapEntry(map, "ar_OM", (short) 0x2001);
- addLCIDMapEntry(map, "en_JM", (short) 0x2009);
- addLCIDMapEntry(map, "es_VE", (short) 0x200a);
- addLCIDMapEntry(map, "ar_YE", (short) 0x2401);
- addLCIDMapEntry(map, "es_CO", (short) 0x240a);
- addLCIDMapEntry(map, "ar_SY", (short) 0x2801);
- addLCIDMapEntry(map, "en_BZ", (short) 0x2809);
- addLCIDMapEntry(map, "es_PE", (short) 0x280a);
- addLCIDMapEntry(map, "ar_JO", (short) 0x2c01);
- addLCIDMapEntry(map, "en_TT", (short) 0x2c09);
- addLCIDMapEntry(map, "es_AR", (short) 0x2c0a);
- addLCIDMapEntry(map, "ar_LB", (short) 0x3001);
- addLCIDMapEntry(map, "en_ZW", (short) 0x3009);
- addLCIDMapEntry(map, "es_EC", (short) 0x300a);
- addLCIDMapEntry(map, "ar_KW", (short) 0x3401);
- addLCIDMapEntry(map, "en_PH", (short) 0x3409);
- addLCIDMapEntry(map, "es_CL", (short) 0x340a);
- addLCIDMapEntry(map, "ar_AE", (short) 0x3801);
- addLCIDMapEntry(map, "es_UY", (short) 0x380a);
- addLCIDMapEntry(map, "ar_BH", (short) 0x3c01);
- addLCIDMapEntry(map, "es_PY", (short) 0x3c0a);
- addLCIDMapEntry(map, "ar_QA", (short) 0x4001);
- addLCIDMapEntry(map, "es_BO", (short) 0x400a);
- addLCIDMapEntry(map, "es_SV", (short) 0x440a);
- addLCIDMapEntry(map, "es_HN", (short) 0x480a);
- addLCIDMapEntry(map, "es_NI", (short) 0x4c0a);
- addLCIDMapEntry(map, "es_PR", (short) 0x500a);
-
- lcidMap = map;
- }
-
- public static int getNumFonts() {
- return physicalFonts.size()+maxCompFont;
- }
-
- private static boolean fontSupportsEncoding(Font font, String encoding) {
- return getFont2D(font).supportsEncoding(encoding);
- }
-
- public synchronized static native String getFontPath(boolean noType1Fonts);
- public synchronized static native void setNativeFontPath(String fontPath);
-
-
- private static Thread fileCloser = null;
- static Vector<File> tmpFontFiles = null;
-
- public static Font2D createFont2D(File fontFile, int fontFormat,
- boolean isCopy,
- CreatedFontTracker tracker)
- throws FontFormatException {
-
- String fontFilePath = fontFile.getPath();
- FileFont font2D = null;
- final File fFile = fontFile;
- final CreatedFontTracker _tracker = tracker;
- try {
- switch (fontFormat) {
- case Font.TRUETYPE_FONT:
- font2D = new TrueTypeFont(fontFilePath, null, 0, true);
- break;
- case Font.TYPE1_FONT:
- font2D = new Type1Font(fontFilePath, null, isCopy);
- break;
- default:
- throw new FontFormatException("Unrecognised Font Format");
- }
- } catch (FontFormatException e) {
- if (isCopy) {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- if (_tracker != null) {
- _tracker.subBytes((int)fFile.length());
- }
- fFile.delete();
- return null;
- }
- });
- }
- throw(e);
- }
- if (isCopy) {
- font2D.setFileToRemove(fontFile, tracker);
- synchronized (FontManager.class) {
-
- if (tmpFontFiles == null) {
- tmpFontFiles = new Vector<File>();
- }
- tmpFontFiles.add(fontFile);
-
- if (fileCloser == null) {
- final Runnable fileCloserRunnable = new Runnable() {
- public void run() {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
-
- for (int i=0;i<CHANNELPOOLSIZE;i++) {
- if (fontFileCache[i] != null) {
- try {
- fontFileCache[i].close();
- } catch (Exception e) {
- }
- }
- }
- if (tmpFontFiles != null) {
- File[] files = new File[tmpFontFiles.size()];
- files = tmpFontFiles.toArray(files);
- for (int f=0; f<files.length;f++) {
- try {
- files[f].delete();
- } catch (Exception e) {
- }
- }
- }
-
- return null;
- }
+ /**
+ * Creates a Font2D for the specified font file, that is expected
+ * to be in the specified font format (according to the constants
+ * in java.awt.Font). The parameter {@code isCopy} is set to true
+ * when the specified font file is actually a copy of the font data
+ * and needs to be deleted afterwards. This method is called
+ * for the Font.createFont() methods.
+ *
+ * @param fontFile the file holding the font data
+ * @param fontFormat the expected font format
+ * @param isCopy {@code true} if the file is a copy and needs to be
+ * deleted, {@code false} otherwise
+ *
+ * @return the created Font2D instance
+ */
+ public Font2D createFont2D(File fontFile, int fontFormat,
+ boolean isCopy, CreatedFontTracker tracker)
+ throws FontFormatException;
- });
- }
- };
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- /* The thread must be a member of a thread group
- * which will not get GCed before VM exit.
- * Make its parent the top-level thread group.
- */
- ThreadGroup tg =
- Thread.currentThread().getThreadGroup();
- for (ThreadGroup tgn = tg;
- tgn != null;
- tg = tgn, tgn = tg.getParent());
- fileCloser = new Thread(tg, fileCloserRunnable);
- Runtime.getRuntime().addShutdownHook(fileCloser);
- return null;
- }
- });
- }
- }
- }
- return font2D;
- }
-
- /* remind: used in X11GraphicsEnvironment and called often enough
- * that we ought to obsolete this code
- */
- public synchronized static String getFullNameByFileName(String fileName) {
- PhysicalFont[] physFonts = getPhysicalFonts();
- for (int i=0;i<physFonts.length;i++) {
- if (physFonts[i].platName.equals(fileName)) {
- return (physFonts[i].getFontName(null));
- }
- }
- return null;
- }
-
- /*
- * This is called when font is determined to be invalid/bad.
- * It designed to be called (for example) by the font scaler
- * when in processing a font file it is discovered to be incorrect.
- * This is different than the case where fonts are discovered to
- * be incorrect during initial verification, as such fonts are
- * never registered.
- * Handles to this font held are re-directed to a default font.
- * This default may not be an ideal substitute buts it better than
- * crashing This code assumes a PhysicalFont parameter as it doesn't
- * make sense for a Composite to be "bad".
- */
- public static synchronized void deRegisterBadFont(Font2D font2D) {
- if (!(font2D instanceof PhysicalFont)) {
- /* We should never reach here, but just in case */
- return;
- } else {
- if (logging) {
- logger.severe("Deregister bad font: " + font2D);
- }
- replaceFont((PhysicalFont)font2D, getDefaultPhysicalFont());
- }
- }
-
- /*
- * This encapsulates all the work that needs to be done when a
- * Font2D is replaced by a different Font2D.
- */
- public static synchronized void replaceFont(PhysicalFont oldFont,
- PhysicalFont newFont) {
-
- if (oldFont.handle.font2D != oldFont) {
- /* already done */
- return;
- }
-
- /* If we try to replace the font with itself, that won't work,
- * so pick any alternative physical font
- */
- if (oldFont == newFont) {
- if (logging) {
- logger.severe("Can't replace bad font with itself " + oldFont);
- }
- PhysicalFont[] physFonts = getPhysicalFonts();
- for (int i=0; i<physFonts.length;i++) {
- if (physFonts[i] != newFont) {
- newFont = physFonts[i];
- break;
- }
- }
- if (oldFont == newFont) {
- if (logging) {
- logger.severe("This is bad. No good physicalFonts found.");
- }
- return;
- }
- }
-
- /* eliminate references to this font, so it won't be located
- * by future callers, and will be eligible for GC when all
- * references are removed
- */
- oldFont.handle.font2D = newFont;
- physicalFonts.remove(oldFont.fullName);
- fullNameToFont.remove(oldFont.fullName.toLowerCase(Locale.ENGLISH));
- FontFamily.remove(oldFont);
-
- if (localeFullNamesToFont != null) {
- Map.Entry[] mapEntries =
- (Map.Entry[])localeFullNamesToFont.entrySet().
- toArray(new Map.Entry[0]);
- /* Should I be replacing these, or just I just remove
- * the names from the map?
- */
- for (int i=0; i<mapEntries.length;i++) {
- if (mapEntries[i].getValue() == oldFont) {
- try {
- mapEntries[i].setValue(newFont);
- } catch (Exception e) {
- /* some maps don't support this operation.
- * In this case just give up and remove the entry.
- */
- localeFullNamesToFont.remove(mapEntries[i].getKey());
- }
- }
- }
- }
-
- for (int i=0; i<maxCompFont; i++) {
- /* Deferred initialization of composites shouldn't be
- * a problem for this case, since a font must have been
- * initialised to be discovered to be bad.
- * Some JRE composites on Solaris use two versions of the same
- * font. The replaced font isn't bad, just "smaller" so there's
- * no need to make the slot point to the new font.
- * Since composites have a direct reference to the Font2D (not
- * via a handle) making this substitution is not safe and could
- * cause an additional problem and so this substitution is
- * warranted only when a font is truly "bad" and could cause
- * a crash. So we now replace it only if its being substituted
- * with some font other than a fontconfig rank font
- * Since in practice a substitution will have the same rank
- * this may never happen, but the code is safer even if its
- * also now a no-op.
- * The only obvious "glitch" from this stems from the current
- * implementation that when asked for the number of glyphs in a
- * composite it lies and returns the number in slot 0 because
- * composite glyphs aren't contiguous. Since we live with that
- * we can live with the glitch that depending on how it was
- * initialised a composite may return different values for this.
- * Fixing the issues with composite glyph ids is tricky as
- * there are exclusion ranges and unlike other fonts even the
- * true "numGlyphs" isn't a contiguous range. Likely the only
- * solution is an API that returns an array of glyph ranges
- * which takes precedence over the existing API. That might
- * also need to address excluding ranges which represent a
- * code point supported by an earlier component.
- */
- if (newFont.getRank() > Font2D.FONT_CONFIG_RANK) {
- compFonts[i].replaceComponentFont(oldFont, newFont);
- }
- }
- }
-
- private static synchronized void loadLocaleNames() {
- if (localeFullNamesToFont != null) {
- return;
- }
- localeFullNamesToFont = new HashMap<String, TrueTypeFont>();
- Font2D[] fonts = getRegisteredFonts();
- for (int i=0; i<fonts.length; i++) {
- if (fonts[i] instanceof TrueTypeFont) {
- TrueTypeFont ttf = (TrueTypeFont)fonts[i];
- String[] fullNames = ttf.getAllFullNames();
- for (int n=0; n<fullNames.length; n++) {
- localeFullNamesToFont.put(fullNames[n], ttf);
- }
- FontFamily family = FontFamily.getFamily(ttf.familyName);
- if (family != null) {
- FontFamily.addLocaleNames(family, ttf.getAllFamilyNames());
- }
- }
- }
- }
-
- /* This replicate the core logic of findFont2D but operates on
- * all the locale names. This hasn't been merged into findFont2D to
- * keep the logic simpler and reduce overhead, since this case is
- * almost never used. The main case in which it is called is when
- * a bogus font name is used and we need to check all possible names
- * before returning the default case.
- */
- private static Font2D findFont2DAllLocales(String name, int style) {
-
- if (logging) {
- logger.info("Searching localised font names for:" + name);
- }
-
- /* If reach here and no match has been located, then if we have
- * not yet built the map of localeFullNamesToFont for TT fonts, do so
- * now. This method must be called after all fonts have been loaded.
- */
- if (localeFullNamesToFont == null) {
- loadLocaleNames();
- }
- String lowerCaseName = name.toLowerCase();
- Font2D font = null;
-
- /* First see if its a family name. */
- FontFamily family = FontFamily.getLocaleFamily(lowerCaseName);
- if (family != null) {
- font = family.getFont(style);
- if (font == null) {
- font = family.getClosestStyle(style);
- }
- if (font != null) {
- return font;
- }
- }
-
- /* If it wasn't a family name, it should be a full name. */
- synchronized (FontManager.class) {
- font = localeFullNamesToFont.get(name);
- }
- if (font != null) {
- if (font.style == style || style == Font.PLAIN) {
- return font;
- } else {
- family = FontFamily.getFamily(font.getFamilyName(null));
- if (family != null) {
- Font2D familyFont = family.getFont(style);
- /* We exactly matched the requested style, use it! */
- if (familyFont != null) {
- return familyFont;
- } else {
- familyFont = family.getClosestStyle(style);
- if (familyFont != null) {
- /* The next check is perhaps one
- * that shouldn't be done. ie if we get this
- * far we have probably as close a match as we
- * are going to get. We could load all fonts to
- * see if somehow some parts of the family are
- * loaded but not all of it.
- * This check is commented out for now.
- */
- if (!familyFont.canDoStyle(style)) {
- familyFont = null;
- }
- return familyFont;
- }
- }
- }
- }
- }
- return font;
- }
-
- /* Supporting "alternate" composite fonts on 2D graphics objects
- * is accessed by the application by calling methods on the local
- * GraphicsEnvironment. The overall implementation is described
- * in one place, here, since otherwise the implementation is spread
- * around it may be difficult to track.
- * The methods below call into SunGraphicsEnvironment which creates a
- * new FontConfiguration instance. The FontConfiguration class,
- * and its platform sub-classes are updated to take parameters requesting
- * these behaviours. This is then used to create new composite font
- * instances. Since this calls the initCompositeFont method in
- * SunGraphicsEnvironment it performs the same initialization as is
- * performed normally. There may be some duplication of effort, but
- * that code is already written to be able to perform properly if called
- * to duplicate work. The main difference is that if we detect we are
- * running in an applet/browser/Java plugin environment these new fonts
- * are not placed in the "default" maps but into an AppContext instance.
- * The font lookup mechanism in java.awt.Font.getFont2D() is also updated
- * so that look-up for composite fonts will in that case always
- * do a lookup rather than returning a cached result.
- * This is inefficient but necessary else singleton java.awt.Font
- * instances would not retrieve the correct Font2D for the appcontext.
- * sun.font.FontManager.findFont2D is also updated to that it uses
- * a name map cache specific to that appcontext.
- *
- * Getting an AppContext is expensive, so there is a global variable
- * that records whether these methods have ever been called and can
- * avoid the expense for almost all applications. Once the correct
- * CompositeFont is associated with the Font, everything should work
- * through existing mechanisms.
- * A special case is that GraphicsEnvironment.getAllFonts() must
- * return an AppContext specific list.
- *
- * Calling the methods below is "heavyweight" but it is expected that
- * these methods will be called very rarely.
- *
+ /**
* If usingPerAppContextComposites is true, we are in "applet"
* (eg browser) enviroment and at least one context has selected
* an alternate composite font behaviour.
- * If usingAlternateComposites is true, we are not in an "applet"
- * environment and the (single) application has selected
- * an alternate composite font behaviour.
- *
- * - Printing: The implementation delegates logical fonts to an AWT
- * mechanism which cannot use these alternate configurations.
- * We can detect that alternate fonts are in use and back-off to 2D, but
- * that uses outlines. Much of this can be fixed with additional work
- * but that may have to wait. The results should be correct, just not
- * optimal.
- */
- private static final Object altJAFontKey = new Object();
- private static final Object localeFontKey = new Object();
- private static final Object proportionalFontKey = new Object();
- public static boolean usingPerAppContextComposites = false;
- private static boolean usingAlternateComposites = false;
-
- /* These values are used only if we are running as a standalone
- * application, as determined by maybeMultiAppContext();
- */
- private static boolean gAltJAFont = false;
- private static boolean gLocalePref = false;
- private static boolean gPropPref = false;
-
- /* This method doesn't check if alternates are selected in this app
- * context. Its used by the FontMetrics caching code which in such
- * a case cannot retrieve a cached metrics solely on the basis of
- * the Font.equals() method since it needs to also check if the Font2D
- * is the same.
- * We also use non-standard composites for Swing native L&F fonts on
- * Windows. In that case the policy is that the metrics reported are
- * based solely on the physical font in the first slot which is the
- * visible java.awt.Font. So in that case the metrics cache which tests
- * the Font does what we want. In the near future when we expand the GTK
- * logical font definitions we may need to revisit this if GTK reports
- * combined metrics instead. For now though this test can be simple.
- */
- static boolean maybeUsingAlternateCompositeFonts() {
- return usingAlternateComposites || usingPerAppContextComposites;
- }
-
- public static boolean usingAlternateCompositeFonts() {
- return (usingAlternateComposites ||
- (usingPerAppContextComposites &&
- AppContext.getAppContext().get(CompositeFont.class) != null));
- }
-
- private static boolean maybeMultiAppContext() {
- Boolean appletSM = (Boolean)
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- SecurityManager sm = System.getSecurityManager();
- return new Boolean
- (sm instanceof sun.applet.AppletSecurity);
- }
- });
- return appletSM.booleanValue();
- }
-
- /* Modifies the behaviour of a subsequent call to preferLocaleFonts()
- * to use Mincho instead of Gothic for dialoginput in JA locales
- * on windows. Not needed on other platforms.
- */
- public static synchronized void useAlternateFontforJALocales() {
-
- if (!isWindows) {
- return;
- }
-
- initSGEnv();
- if (!maybeMultiAppContext()) {
- gAltJAFont = true;
- } else {
- AppContext appContext = AppContext.getAppContext();
- appContext.put(altJAFontKey, altJAFontKey);
- }
- }
-
- public static boolean usingAlternateFontforJALocales() {
- if (!maybeMultiAppContext()) {
- return gAltJAFont;
- } else {
- AppContext appContext = AppContext.getAppContext();
- return appContext.get(altJAFontKey) == altJAFontKey;
- }
- }
-
- public static synchronized void preferLocaleFonts() {
-
- initSGEnv();
-
- /* Test if re-ordering will have any effect */
- if (!FontConfiguration.willReorderForStartupLocale()) {
- return;
- }
-
- if (!maybeMultiAppContext()) {
- if (gLocalePref == true) {
- return;
- }
- gLocalePref = true;
- sgEnv.createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
- usingAlternateComposites = true;
- } else {
- AppContext appContext = AppContext.getAppContext();
- if (appContext.get(localeFontKey) == localeFontKey) {
- return;
- }
- appContext.put(localeFontKey, localeFontKey);
- boolean acPropPref =
- appContext.get(proportionalFontKey) == proportionalFontKey;
- ConcurrentHashMap<String, Font2D>
- altNameCache = new ConcurrentHashMap<String, Font2D> ();
- /* If there is an existing hashtable, we can drop it. */
- appContext.put(CompositeFont.class, altNameCache);
- usingPerAppContextComposites = true;
- sgEnv.createCompositeFonts(altNameCache, true, acPropPref);
- }
- }
-
- public static synchronized void preferProportionalFonts() {
-
- /* If no proportional fonts are configured, there's no need
- * to take any action.
- */
- if (!FontConfiguration.hasMonoToPropMap()) {
- return;
- }
-
- initSGEnv();
-
- if (!maybeMultiAppContext()) {
- if (gPropPref == true) {
- return;
- }
- gPropPref = true;
- sgEnv.createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
- usingAlternateComposites = true;
- } else {
- AppContext appContext = AppContext.getAppContext();
- if (appContext.get(proportionalFontKey) == proportionalFontKey) {
- return;
- }
- appContext.put(proportionalFontKey, proportionalFontKey);
- boolean acLocalePref =
- appContext.get(localeFontKey) == localeFontKey;
- ConcurrentHashMap<String, Font2D>
- altNameCache = new ConcurrentHashMap<String, Font2D> ();
- /* If there is an existing hashtable, we can drop it. */
- appContext.put(CompositeFont.class, altNameCache);
- usingPerAppContextComposites = true;
- sgEnv.createCompositeFonts(altNameCache, acLocalePref, true);
- }
- }
-
- private static HashSet<String> installedNames = null;
- private static HashSet<String> getInstalledNames() {
- if (installedNames == null) {
- Locale l = sgEnv.getSystemStartupLocale();
- String[] installedFamilies = sgEnv.getInstalledFontFamilyNames(l);
- Font[] installedFonts = sgEnv.getAllInstalledFonts();
- HashSet<String> names = new HashSet<String>();
- for (int i=0; i<installedFamilies.length; i++) {
- names.add(installedFamilies[i].toLowerCase(l));
- }
- for (int i=0; i<installedFonts.length; i++) {
- names.add(installedFonts[i].getFontName(l).toLowerCase(l));
- }
- installedNames = names;
- }
- return installedNames;
- }
-
- /* Keys are used to lookup per-AppContext Hashtables */
- private static final Object regFamilyKey = new Object();
- private static final Object regFullNameKey = new Object();
- private static Hashtable<String,FontFamily> createdByFamilyName;
- private static Hashtable<String,Font2D> createdByFullName;
- private static boolean fontsAreRegistered = false;
- private static boolean fontsAreRegisteredPerAppContext = false;
-
- public static boolean registerFont(Font font) {
- /* This method should not be called with "null".
- * It is the caller's responsibility to ensure that.
- */
- if (font == null) {
- return false;
- }
-
- /* Initialise these objects only once we start to use this API */
- synchronized (regFamilyKey) {
- if (createdByFamilyName == null) {
- createdByFamilyName = new Hashtable<String,FontFamily>();
- createdByFullName = new Hashtable<String,Font2D>();
- }
- }
-
- if (!isCreatedFont(font)) {
- return false;
- }
- if (sgEnv == null) {
- initSGEnv();
- }
- /* We want to ensure that this font cannot override existing
- * installed fonts. Check these conditions :
- * - family name is not that of an installed font
- * - full name is not that of an installed font
- * - family name is not the same as the full name of an installed font
- * - full name is not the same as the family name of an installed font
- * The last two of these may initially look odd but the reason is
- * that (unfortunately) Font constructors do not distinuguish these.
- * An extreme example of such a problem would be a font which has
- * family name "Dialog.Plain" and full name of "Dialog".
- * The one arguably overly stringent restriction here is that if an
- * application wants to supply a new member of an existing family
- * It will get rejected. But since the JRE can perform synthetic
- * styling in many cases its not necessary.
- * We don't apply the same logic to registered fonts. If apps want
- * to do this lets assume they have a reason. It won't cause problems
- * except for themselves.
- */
- HashSet<String> names = getInstalledNames();
- Locale l = sgEnv.getSystemStartupLocale();
- String familyName = font.getFamily(l).toLowerCase();
- String fullName = font.getFontName(l).toLowerCase();
- if (names.contains(familyName) || names.contains(fullName)) {
- return false;
- }
-
- /* Checks passed, now register the font */
- Hashtable<String,FontFamily> familyTable;
- Hashtable<String,Font2D> fullNameTable;
- if (!maybeMultiAppContext()) {
- familyTable = createdByFamilyName;
- fullNameTable = createdByFullName;
- fontsAreRegistered = true;
- } else {
- AppContext appContext = AppContext.getAppContext();
- familyTable =
- (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
- fullNameTable =
- (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
- if (familyTable == null) {
- familyTable = new Hashtable<String,FontFamily>();
- fullNameTable = new Hashtable<String,Font2D>();
- appContext.put(regFamilyKey, familyTable);
- appContext.put(regFullNameKey, fullNameTable);
- }
- fontsAreRegisteredPerAppContext = true;
- }
- /* Create the FontFamily and add font to the tables */
- Font2D font2D = getFont2D(font);
- int style = font2D.getStyle();
- FontFamily family = familyTable.get(familyName);
- if (family == null) {
- family = new FontFamily(font.getFamily(l));
- familyTable.put(familyName, family);
- }
- /* Remove name cache entries if not using app contexts.
- * To accommodate a case where code may have registered first a plain
- * family member and then used it and is now registering a bold family
- * member, we need to remove all members of the family, so that the
- * new style can get picked up rather than continuing to synthesise.
- */
- if (fontsAreRegistered) {
- removeFromCache(family.getFont(Font.PLAIN));
- removeFromCache(family.getFont(Font.BOLD));
- removeFromCache(family.getFont(Font.ITALIC));
- removeFromCache(family.getFont(Font.BOLD|Font.ITALIC));
- removeFromCache(fullNameTable.get(fullName));
- }
- family.setFont(font2D, style);
- fullNameTable.put(fullName, font2D);
- return true;
- }
-
- /* Remove from the name cache all references to the Font2D */
- private static void removeFromCache(Font2D font) {
- if (font == null) {
- return;
- }
- String[] keys = (String[])(fontNameCache.keySet().toArray(STR_ARRAY));
- for (int k=0; k<keys.length;k++) {
- if (fontNameCache.get(keys[k]) == font) {
- fontNameCache.remove(keys[k]);
- }
- }
- }
-
- // It may look odd to use TreeMap but its more convenient to the caller.
- public static TreeMap<String, String> getCreatedFontFamilyNames() {
-
- Hashtable<String,FontFamily> familyTable;
- if (fontsAreRegistered) {
- familyTable = createdByFamilyName;
- } else if (fontsAreRegisteredPerAppContext) {
- AppContext appContext = AppContext.getAppContext();
- familyTable =
- (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
- } else {
- return null;
- }
-
- Locale l = sgEnv.getSystemStartupLocale();
- synchronized (familyTable) {
- TreeMap<String, String> map = new TreeMap<String, String>();
- for (FontFamily f : familyTable.values()) {
- Font2D font2D = f.getFont(Font.PLAIN);
- if (font2D == null) {
- font2D = f.getClosestStyle(Font.PLAIN);
- }
- String name = font2D.getFamilyName(l);
- map.put(name.toLowerCase(l), name);
- }
- return map;
- }
- }
-
- public static Font[] getCreatedFonts() {
-
- Hashtable<String,Font2D> nameTable;
- if (fontsAreRegistered) {
- nameTable = createdByFullName;
- } else if (fontsAreRegisteredPerAppContext) {
- AppContext appContext = AppContext.getAppContext();
- nameTable =
- (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
- } else {
- return null;
- }
-
- Locale l = sgEnv.getSystemStartupLocale();
- synchronized (nameTable) {
- Font[] fonts = new Font[nameTable.size()];
- int i=0;
- for (Font2D font2D : nameTable.values()) {
- fonts[i++] = new Font(font2D.getFontName(l), Font.PLAIN, 1);
- }
- return fonts;
- }
- }
-
- /* Begin support for GTK Look and Feel - query libfontconfig and
- * return a composite Font to Swing that uses the desktop font(s).
- */
-
- /* A small "map" from GTK/fontconfig names to the equivalent JDK
- * logical font name.
- */
- private static final String[][] nameMap = {
- {"sans", "sansserif"},
- {"sans-serif", "sansserif"},
- {"serif", "serif"},
- {"monospace", "monospaced"}
- };
-
- public static String mapFcName(String name) {
- for (int i = 0; i < nameMap.length; i++) {
- if (name.equals(nameMap[i][0])) {
- return nameMap[i][1];
- }
- }
- return null;
- }
-
- /* fontconfig recognises slants roman, italic, as well as oblique,
- * and a slew of weights, where the ones that matter here are
- * regular and bold.
- * To fully qualify what we want, we can for example ask for (eg)
- * Font.PLAIN : "serif:regular:roman"
- * Font.BOLD : "serif:bold:roman"
- * Font.ITALIC : "serif:regular:italic"
- * Font.BOLD|Font.ITALIC : "serif:bold:italic"
- */
- private static String[] fontConfigNames = {
- "sans:regular:roman",
- "sans:bold:roman",
- "sans:regular:italic",
- "sans:bold:italic",
-
- "serif:regular:roman",
- "serif:bold:roman",
- "serif:regular:italic",
- "serif:bold:italic",
-
- "monospace:regular:roman",
- "monospace:bold:roman",
- "monospace:regular:italic",
- "monospace:bold:italic",
- };
-
- /* These next three classes are just data structures.
- */
- static class FontConfigFont {
- String familyName; // eg Bitstream Vera Sans
- String styleStr; // eg Bold
- String fullName; // eg Bitstream Vera Sans Bold
- String fontFile; // eg /usr/X11/lib/fonts/foo.ttf
- }
-
- static class FcCompFont {
- String fcName; // eg sans
- String fcFamily; // eg sans
- String jdkName; // eg sansserif
- int style; // eg 0=PLAIN
- FontConfigFont firstFont;
- FontConfigFont[] allFonts;
- //boolean preferBitmaps; // if embedded bitmaps preferred over AA
- CompositeFont compFont; // null if not yet created/known.
- }
-
- static class FontConfigInfo {
- int fcVersion;
- String[] cacheDirs = new String[4];
- }
-
- private static String getFCLocaleStr() {
- Locale l = SunToolkit.getStartupLocale();
- String localeStr = l.getLanguage();
- String country = l.getCountry();
- if (!country.equals("")) {
- localeStr = localeStr + "-" + country;
- }
- return localeStr;
- }
-
- /* This does cause the native libfontconfig to be loaded and unloaded,
- * but it does not incur the overhead of initialisation of its
- * data structures, so shouldn't have a measurable impact.
- */
- public static native int getFontConfigVersion();
-
- private static native int
- getFontConfigAASettings(String locale, String fcFamily);
-
- /* This is public solely so that for debugging purposes it can be called
- * with other names, which might (eg) include a size, eg "sans-24"
- * The return value is a text aa rendering hint value.
- * Normally we should call the no-args version.
*/
- public static Object getFontConfigAAHint(String fcFamily) {
- if (isWindows) {
- return null;
- } else {
- int hint = getFontConfigAASettings(getFCLocaleStr(), fcFamily);
- if (hint < 0) {
- return null;
- } else {
- return SunHints.Value.get(SunHints.INTKEY_TEXT_ANTIALIASING,
- hint);
- }
- }
- }
-
- /* Called from code that needs to know what are the AA settings
- * that apps using FC would pick up for the default desktop font.
- * Note apps can change the default desktop font. etc, so this
- * isn't certain to be right but its going to correct for most cases.
- * Native return values map to the text aa values in sun.awt.SunHints.
- * which is used to look up the renderinghint value object.
- */
- public static Object getFontConfigAAHint() {
- return getFontConfigAAHint("sans");
- }
-
- /* This is populated by native */
- private static final FontConfigInfo fcInfo = new FontConfigInfo();
-
- /* This array has the array elements created in Java code and is
- * passed down to native to be filled in.
- */
- private static FcCompFont[] fontConfigFonts;
-
- /* Return an array of FcCompFont structs describing the primary
- * font located for each of fontconfig/GTK/Pango's logical font names.
- */
- private static native void getFontConfig(String locale,
- FontConfigInfo fcInfo,
- FcCompFont[] fonts,
- boolean includeFallbacks);
-
- static void populateFontConfig(FcCompFont[] fcInfo) {
- fontConfigFonts = fcInfo;
- }
-
- static FcCompFont[] loadFontConfig() {
- initFontConfigFonts(true);
- return fontConfigFonts;
- }
-
- static FontConfigInfo getFontConfigInfo() {
- initFontConfigFonts(true);
- return fcInfo;
- }
-
- /* This can be made public if it's needed to force a re-read
- * rather than using the cached values. The re-read would be needed
- * only if some event signalled that the fontconfig has changed.
- * In that event this method would need to return directly the array
- * to be used by the caller in case it subsequently changed.
- */
- private static synchronized void
- initFontConfigFonts(boolean includeFallbacks) {
-
- if (fontConfigFonts != null) {
- if (!includeFallbacks || (fontConfigFonts[0].allFonts != null)) {
- return;
- }
- }
-
- if (isWindows || fontConfigFailed) {
- return;
- }
-
- long t0 = 0;
- if (logging) {
- t0 = System.nanoTime();
- }
-
- FcCompFont[] fontArr = new FcCompFont[fontConfigNames.length];
- for (int i = 0; i< fontArr.length; i++) {
- fontArr[i] = new FcCompFont();
- fontArr[i].fcName = fontConfigNames[i];
- int colonPos = fontArr[i].fcName.indexOf(':');
- fontArr[i].fcFamily = fontArr[i].fcName.substring(0, colonPos);
- fontArr[i].jdkName = mapFcName(fontArr[i].fcFamily);
- fontArr[i].style = i % 4; // depends on array order.
- }
- getFontConfig(getFCLocaleStr(), fcInfo, fontArr, includeFallbacks);
- /* If don't find anything (eg no libfontconfig), then just return */
- for (int i = 0; i< fontArr.length; i++) {
- FcCompFont fci = fontArr[i];
- if (fci.firstFont == null) {
- if (logging) {
- logger.info("Fontconfig returned no fonts.");
- }
- fontConfigFailed = true;
- return;
- }
- }
- fontConfigFonts = fontArr;
-
- if (logging) {
- long t1 = System.nanoTime();
- logger.info("Time spent accessing fontconfig="+
- (t1-t0)/1000000+"ms.");
+ public boolean usingPerAppContextComposites();
- for (int i = 0; i< fontConfigFonts.length; i++) {
- FcCompFont fci = fontConfigFonts[i];
- logger.info("FC font " + fci.fcName+" maps to family " +
- fci.firstFont.familyName +
- " in file " + fci.firstFont.fontFile);
- if (fci.allFonts != null) {
- for (int f=0;f<fci.allFonts.length;f++) {
- FontConfigFont fcf = fci.allFonts[f];
- logger.info("Family=" + fcf.familyName +
- " Style="+ fcf.styleStr +
- " Fullname="+fcf.fullName +
- " File="+fcf.fontFile);
- }
- }
- }
- }
- }
-
- private static PhysicalFont registerFromFcInfo(FcCompFont fcInfo) {
-
- /* If it's a TTC file we need to know that as we will need to
- * make sure we return the right font */
- String fontFile = fcInfo.firstFont.fontFile;
- int offset = fontFile.length()-4;
- if (offset <= 0) {
- return null;
- }
- String ext = fontFile.substring(offset).toLowerCase();
- boolean isTTC = ext.equals(".ttc");
-
- /* If this file is already registered, can just return its font.
- * However we do need to check in case it's a TTC as we need
- * a specific font, so rather than directly returning it, let
- * findFont2D resolve that.
- */
- PhysicalFont physFont = registeredFontFiles.get(fontFile);
- if (physFont != null) {
- if (isTTC) {
- Font2D f2d = findFont2D(fcInfo.firstFont.familyName,
- fcInfo.style, NO_FALLBACK);
- if (f2d instanceof PhysicalFont) { /* paranoia */
- return (PhysicalFont)f2d;
- } else {
- return null;
- }
- } else {
- return physFont;
- }
- }
-
- /* If the font may hide a JRE font (eg fontconfig says it is
- * Lucida Sans), we want to use the JRE version, so make it
- * point to the JRE font.
- */
- physFont = findJREDeferredFont(fcInfo.firstFont.familyName,
- fcInfo.style);
-
- /* It is also possible the font file is on the "deferred" list,
- * in which case we can just initialise it now.
- */
- if (physFont == null &&
- deferredFontFiles.get(fontFile) != null)
- {
- physFont = initialiseDeferredFont(fcInfo.firstFont.fontFile);
- /* use findFont2D to get the right font from TTC's */
- if (physFont != null) {
- if (isTTC) {
- Font2D f2d = findFont2D(fcInfo.firstFont.familyName,
- fcInfo.style, NO_FALLBACK);
- if (f2d instanceof PhysicalFont) { /* paranoia */
- return (PhysicalFont)f2d;
- } else {
- return null;
- }
- } else {
- return physFont;
- }
- }
- }
-
- /* In the majority of cases we reach here, and need to determine
- * the type and rank to register the font.
- */
- if (physFont == null) {
- int fontFormat = FONTFORMAT_NONE;
- int fontRank = Font2D.UNKNOWN_RANK;
-
- if (ext.equals(".ttf") || ext.equals(".otf") || isTTC) {
- fontFormat = FONTFORMAT_TRUETYPE;
- fontRank = Font2D.TTF_RANK;
- } else if (ext.equals(".pfa") || ext.equals(".pfb")) {
- fontFormat = FONTFORMAT_TYPE1;
- fontRank = Font2D.TYPE1_RANK;
- }
- physFont = registerFontFile(fcInfo.firstFont.fontFile, null,
- fontFormat, true, fontRank);
- }
- return physFont;
- }
-
- private static String[] getPlatformFontDirs() {
- String path = getFontPath(true);
- StringTokenizer parser =
- new StringTokenizer(path, File.pathSeparator);
- ArrayList<String> pathList = new ArrayList<String>();
- try {
- while (parser.hasMoreTokens()) {
- pathList.add(parser.nextToken());
- }
- } catch (NoSuchElementException e) {
- }
- return pathList.toArray(new String[0]);
- }
-
- /** returns an array of two strings. The first element is the
- * name of the font. The second element is the file name.
+ /**
+ * Creates a derived composite font from the specified font (handle).
+ *
+ * @param family the font family of the derived font
+ * @param style the font style of the derived font
+ * @param handle the original font (handle)
+ *
+ * @return the handle for the derived font
*/
- private static String[] defaultPlatformFont = null;
- public static String[] getDefaultPlatformFont() {
-
- if (defaultPlatformFont != null) {
- return defaultPlatformFont;
- }
-
- String[] info = new String[2];
- if (isWindows) {
- info[0] = "Arial";
- info[1] = "c:\\windows\\fonts";
- final String[] dirs = getPlatformFontDirs();
- if (dirs.length > 1) {
- String dir = (String)
- AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
- for (int i=0; i<dirs.length; i++) {
- String path =
- dirs[i] + File.separator + "arial.ttf";
- File file = new File(path);
- if (file.exists()) {
- return dirs[i];
- }
- }
- return null;
- }
- });
- if (dir != null) {
- info[1] = dir;
- }
- } else {
- info[1] = dirs[0];
- }
- info[1] = info[1] + File.separator + "arial.ttf";
- } else {
- initFontConfigFonts(false);
- for (int i=0; i<fontConfigFonts.length; i++) {
- if ("sans".equals(fontConfigFonts[i].fcFamily) &&
- 0 == fontConfigFonts[i].style) {
- info[0] = fontConfigFonts[i].firstFont.familyName;
- info[1] = fontConfigFonts[i].firstFont.fontFile;
- break;
- }
- }
- /* Absolute last ditch attempt in the face of fontconfig problems.
- * If we didn't match, pick the first, or just make something
- * up so we don't NPE.
- */
- if (info[0] == null) {
- if (fontConfigFonts.length > 0 &&
- fontConfigFonts[0].firstFont.fontFile != null) {
- info[0] = fontConfigFonts[0].firstFont.familyName;
- info[1] = fontConfigFonts[0].firstFont.fontFile;
- } else {
- info[0] = "Dialog";
- info[1] = "/dialog.ttf";
- }
- }
- }
- defaultPlatformFont = info;
- return defaultPlatformFont;
- }
-
- private FcCompFont getFcCompFont() {
- initFontConfigFonts(false);
- for (int i=0; i<fontConfigFonts.length; i++) {
- if ("sans".equals(fontConfigFonts[i].fcFamily) &&
- 0 == fontConfigFonts[i].style) {
- return fontConfigFonts[i];
- }
- }
- return null;
- }
- /*
- * We need to return a Composite font which has as the font in
- * its first slot one obtained from fontconfig.
- */
- private static CompositeFont getFontConfigFont(String name, int style) {
-
- name = name.toLowerCase();
-
- initFontConfigFonts(false);
-
- FcCompFont fcInfo = null;
- for (int i=0; i<fontConfigFonts.length; i++) {
- if (name.equals(fontConfigFonts[i].fcFamily) &&
- style == fontConfigFonts[i].style) {
- fcInfo = fontConfigFonts[i];
- break;
- }
- }
- if (fcInfo == null) {
- fcInfo = fontConfigFonts[0];
- }
-
- if (logging) {
- logger.info("FC name=" + name + " style=" + style + " uses " +
- fcInfo.firstFont.familyName +
- " in file: " + fcInfo.firstFont.fontFile);
- }
-
- if (fcInfo.compFont != null) {
- return fcInfo.compFont;
- }
-
- /* jdkFont is going to be used for slots 1..N and as a fallback.
- * Slot 0 will be the physical font from fontconfig.
- */
- CompositeFont jdkFont = (CompositeFont)
- findFont2D(fcInfo.jdkName, style, LOGICAL_FALLBACK);
-
- if (fcInfo.firstFont.familyName == null ||
- fcInfo.firstFont.fontFile == null) {
- return (fcInfo.compFont = jdkFont);
- }
-
- /* First, see if the family and exact style is already registered.
- * If it is, use it. If it's not, then try to register it.
- * If that registration fails (signalled by null) just return the
- * regular JDK composite.
- * Algorithmically styled fonts won't match on exact style, so
- * will fall through this code, but the regisration code will
- * find that file already registered and return its font.
- */
- FontFamily family = FontFamily.getFamily(fcInfo.firstFont.familyName);
- PhysicalFont physFont = null;
- if (family != null) {
- Font2D f2D = family.getFontWithExactStyleMatch(fcInfo.style);
- if (f2D instanceof PhysicalFont) {
- physFont = (PhysicalFont)f2D;
- }
- }
-
- if (physFont == null ||
- !fcInfo.firstFont.fontFile.equals(physFont.platName)) {
- physFont = registerFromFcInfo(fcInfo);
- if (physFont == null) {
- return (fcInfo.compFont = jdkFont);
- }
- family = FontFamily.getFamily(physFont.getFamilyName(null));
- }
-
- /* Now register the fonts in the family (the other styles) after
- * checking that they aren't already registered and are actually in
- * a different file. They may be the same file in CJK cases.
- * For cases where they are different font files - eg as is common for
- * Latin fonts, then we rely on fontconfig to report these correctly.
- * Assume that all styles of this font are found by fontconfig,
- * so we can find all the family members which must be registered
- * together to prevent synthetic styling.
- */
- for (int i=0; i<fontConfigFonts.length; i++) {
- FcCompFont fc = fontConfigFonts[i];
- if (fc != fcInfo &&
- physFont.getFamilyName(null).equals(fc.firstFont.familyName) &&
- !fc.firstFont.fontFile.equals(physFont.platName) &&
- family.getFontWithExactStyleMatch(fc.style) == null) {
-
- registerFromFcInfo(fontConfigFonts[i]);
- }
- }
-
- /* Now we have a physical font. We will back this up with the JDK
- * logical font (sansserif, serif, or monospaced) that corresponds
- * to the Pango/GTK/FC logical font name.
- */
- return (fcInfo.compFont = new CompositeFont(physFont, jdkFont));
- }
-
- /* This is called by Swing passing in a fontconfig family name
- * such as "sans". In return Swing gets a FontUIResource instance
- * that has queried fontconfig to resolve the font(s) used for this.
- * Fontconfig will if asked return a list of fonts to give the largest
- * possible code point coverage.
- * For now we use only the first font returned by fontconfig, and
- * back it up with the most closely matching JDK logical font.
- * Essentially this means pre-pending what we return now with fontconfig's
- * preferred physical font. This could lead to some duplication in cases,
- * if we already included that font later. We probably should remove such
- * duplicates, but it is not a significant problem. It can be addressed
- * later as part of creating a Composite which uses more of the
- * same fonts as fontconfig. At that time we also should pay more
- * attention to the special rendering instructions fontconfig returns,
- * such as whether we should prefer embedded bitmaps over antialiasing.
- * There's no way to express that via a Font at present.
- */
- public static FontUIResource getFontConfigFUIR(String fcFamily,
- int style, int size) {
-
- String mappedName = mapFcName(fcFamily);
- if (mappedName == null) {
- mappedName = "sansserif";
- }
-
- /* If GTK L&F were to be used on windows, we need to return
- * something. Since on windows Swing won't have the code to
- * call fontconfig, even if it is present, fcFamily and mapped
- * name will default to sans and therefore sansserif so this
- * should be fine.
- */
- if (isWindows) {
- return new FontUIResource(mappedName, style, size);
- }
-
- CompositeFont font2D = getFontConfigFont(fcFamily, style);
- if (font2D == null) { // Not expected, just a precaution.
- return new FontUIResource(mappedName, style, size);
- }
-
- /* The name of the font will be that of the physical font in slot,
- * but by setting the handle to that of the CompositeFont it
- * renders as that CompositeFont.
- * It also needs to be marked as a created font which is the
- * current mechanism to signal that deriveFont etc must copy
- * the handle from the original font.
- */
- FontUIResource fuir =
- new FontUIResource(font2D.getFamilyName(null), style, size);
- setFont2D(fuir, font2D.handle);
- setCreatedFont(fuir);
- return fuir;
- }
-
- /* The following fields and methods which relate to layout
- * perhaps belong in some other class but FontManager is already
- * widely used as an entry point for other JDK code that needs
- * access to the font system internals.
- */
+ public Font2DHandle getNewComposite(String family, int style,
+ Font2DHandle handle);
/**
- * Referenced by code in the JDK which wants to test for the
- * minimum char code for which layout may be required.
- * Note that even basic latin text can benefit from ligatures,
- * eg "ffi" but we presently apply those only if explicitly
- * requested with TextAttribute.LIGATURES_ON.
- * The value here indicates the lowest char code for which failing
- * to invoke layout would prevent acceptable rendering.
- */
- public static final int MIN_LAYOUT_CHARCODE = 0x0300;
-
- /**
- * Referenced by code in the JDK which wants to test for the
- * maximum char code for which layout may be required.
- * Note this does not account for supplementary characters
- * where the caller interprets 'layout' to mean any case where
- * one 'char' (ie the java type char) does not map to one glyph
- */
- public static final int MAX_LAYOUT_CHARCODE = 0x206F;
-
- /* If the character code falls into any of a number of unicode ranges
- * where we know that simple left->right layout mapping chars to glyphs
- * 1:1 and accumulating advances is going to produce incorrect results,
- * we want to know this so the caller can use a more intelligent layout
- * approach. A caller who cares about optimum performance may want to
- * check the first case and skip the method call if its in that range.
- * Although there's a lot of tests in here, knowing you can skip
- * CTL saves a great deal more. The rest of the checks are ordered
- * so that rather than checking explicitly if (>= start & <= end)
- * which would mean all ranges would need to be checked so be sure
- * CTL is not needed, the method returns as soon as it recognises
- * the code point is outside of a CTL ranges.
- * NOTE: Since this method accepts an 'int' it is asssumed to properly
- * represent a CHARACTER. ie it assumes the caller has already
- * converted surrogate pairs into supplementary characters, and so
- * can handle this case and doesn't need to be told such a case is
- * 'complex'.
+ * Indicates a preference for locale-specific fonts in the mapping of
+ * logical fonts to physical fonts. Calling this method indicates that font
+ * rendering should primarily use fonts specific to the primary writing
+ * system (the one indicated by the default encoding and the initial
+ * default locale). For example, if the primary writing system is
+ * Japanese, then characters should be rendered using a Japanese font
+ * if possible, and other fonts should only be used for characters for
+ * which the Japanese font doesn't have glyphs.
+ * <p>
+ * The actual change in font rendering behavior resulting from a call
+ * to this method is implementation dependent; it may have no effect at
+ * all, or the requested behavior may already match the default behavior.
+ * The behavior may differ between font rendering in lightweight
+ * and peered components. Since calling this method requests a
+ * different font, clients should expect different metrics, and may need
+ * to recalculate window sizes and layout. Therefore this method should
+ * be called before user interface initialisation.
+ *
+ * @see #preferProportionalFonts()
+ * @since 1.5
*/
- static boolean isComplexCharCode(int code) {
-
- if (code < MIN_LAYOUT_CHARCODE || code > MAX_LAYOUT_CHARCODE) {
- return false;
- }
- else if (code <= 0x036f) {
- // Trigger layout for combining diacriticals 0x0300->0x036f
- return true;
- }
- else if (code < 0x0590) {
- // No automatic layout for Greek, Cyrillic, Armenian.
- return false;
- }
- else if (code <= 0x06ff) {
- // Hebrew 0590 - 05ff
- // Arabic 0600 - 06ff
- return true;
- }
- else if (code < 0x0900) {
- return false; // Syriac and Thaana
- }
- else if (code <= 0x0e7f) {
- // if Indic, assume shaping for conjuncts, reordering:
- // 0900 - 097F Devanagari
- // 0980 - 09FF Bengali
- // 0A00 - 0A7F Gurmukhi
- // 0A80 - 0AFF Gujarati
- // 0B00 - 0B7F Oriya
- // 0B80 - 0BFF Tamil
- // 0C00 - 0C7F Telugu
- // 0C80 - 0CFF Kannada
- // 0D00 - 0D7F Malayalam
- // 0D80 - 0DFF Sinhala
- // 0E00 - 0E7F if Thai, assume shaping for vowel, tone marks
- return true;
- }
- else if (code < 0x1780) {
- return false;
- }
- else if (code <= 0x17ff) { // 1780 - 17FF Khmer
- return true;
- }
- else if (code < 0x200c) {
- return false;
- }
- else if (code <= 0x200d) { // zwj or zwnj
- return true;
- }
- else if (code >= 0x202a && code <= 0x202e) { // directional control
- return true;
- }
- else if (code >= 0x206a && code <= 0x206f) { // directional control
- return true;
- }
- return false;
- }
-
- /* This is almost the same as the method above, except it takes a
- * char which means it may include undecoded surrogate pairs.
- * The distinction is made so that code which needs to identify all
- * cases in which we do not have a simple mapping from
- * char->unicode character->glyph can be be identified.
- * For example measurement cannot simply sum advances of 'chars',
- * the caret in editable text cannot advance one 'char' at a time, etc.
- * These callers really are asking for more than whether 'layout'
- * needs to be run, they need to know if they can assume 1->1
- * char->glyph mapping.
- */
- static boolean isNonSimpleChar(char ch) {
- return
- isComplexCharCode(ch) ||
- (ch >= CharToGlyphMapper.HI_SURROGATE_START &&
- ch <= CharToGlyphMapper.LO_SURROGATE_END);
- }
+ public void preferLocaleFonts();
/**
- * If there is anything in the text which triggers a case
- * where char->glyph does not map 1:1 in straightforward
- * left->right ordering, then this method returns true.
- * Scripts which might require it but are not treated as such
- * due to JDK implementations will not return true.
- * ie a 'true' return is an indication of the treatment by
- * the implementation.
- * Whether supplementary characters should be considered is dependent
- * on the needs of the caller. Since this method accepts the 'char' type
- * then such chars are always represented by a pair. From a rendering
- * perspective these will all (in the cases I know of) still be one
- * unicode character -> one glyph. But if a caller is using this to
- * discover any case where it cannot make naive assumptions about
- * the number of chars, and how to index through them, then it may
- * need the option to have a 'true' return in such a case.
+ * preferLocaleFonts() and preferProportionalFonts() are called to inform
+ * that the application could be using an alternate set of composite
+ * fonts, and so the implementation should try to create a CompositeFonts
+ * with this directive in mind.
+ *
+ * @see #preferLocaleFonts()
*/
- public static boolean isComplexText(char [] chs, int start, int limit) {
-
- for (int i = start; i < limit; i++) {
- if (chs[i] < MIN_LAYOUT_CHARCODE) {
- continue;
- }
- else if (isNonSimpleChar(chs[i])) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Used by windows printing to assess if a font is likely to
- * be layout compatible with JDK
- * TrueType fonts should be, but if they have no GPOS table,
- * but do have a GSUB table, then they are probably older
- * fonts GDI handles differently.
- */
- public static boolean textLayoutIsCompatible(Font font) {
-
- Font2D font2D = FontManager.getFont2D(font);
- if (font2D instanceof TrueTypeFont) {
- TrueTypeFont ttf = (TrueTypeFont)font2D;
- return
- ttf.getDirectoryEntry(TrueTypeFont.GSUBTag) == null ||
- ttf.getDirectoryEntry(TrueTypeFont.GPOSTag) != null;
- } else {
- return false;
- }
- }
-
- private static FontScaler nullScaler = null;
- private static Constructor<FontScaler> scalerConstructor = null;
+ public void preferProportionalFonts();
- //Find preferred font scaler
- //
- //NB: we can allow property based preferences
- // (theoretically logic can be font type specific)
- static {
- Class scalerClass = null;
- Class arglst[] = new Class[] {Font2D.class, int.class,
- boolean.class, int.class};
-
- try {
- if (SunGraphicsEnvironment.isOpenJDK()) {
- scalerClass = Class.forName("sun.font.FreetypeFontScaler");
- } else {
- scalerClass = Class.forName("sun.font.T2KFontScaler");
- }
- } catch (ClassNotFoundException e) {
- scalerClass = NullFontScaler.class;
- }
-
- //NB: rewrite using factory? constructor is ugly way
- try {
- scalerConstructor = scalerClass.getConstructor(arglst);
- } catch (NoSuchMethodException e) {
- //should not happen
- }
- }
-
- /* At the moment it is harmless to create 2 null scalers
- so, technically, syncronized keyword is not needed.
-
- But it is safer to keep it to avoid subtle problems if we will be
- adding checks like whether scaler is null scaler. */
- public synchronized static FontScaler getNullScaler() {
- if (nullScaler == null) {
- nullScaler = new NullFontScaler();
- }
- return nullScaler;
- }
-
- /* This is the only place to instantiate new FontScaler.
- * Therefore this is very convinient place to register
- * scaler with Disposer as well as trigger deregistring bad font
- * in case when scaler reports this.
- */
-
- public static FontScaler getScaler(Font2D font,
- int indexInCollection,
- boolean supportsCJK,
- int filesize) {
- FontScaler scaler = null;
-
- try {
- Object args[] = new Object[] {font, indexInCollection,
- supportsCJK, filesize};
- scaler = scalerConstructor.newInstance(args);
- Disposer.addObjectRecord(font, scaler);
- } catch (Throwable e) {
- scaler = nullScaler;
-
- //if we can not instantiate scaler assume bad font
- //NB: technically it could be also because of internal scaler
- // error but here we are assuming scaler is ok.
- deRegisterBadFont(font);
- }
- return scaler;
- }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontManagerFactory.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.AWTError;
+import java.awt.Font;
+import java.awt.GraphicsEnvironment;
+import java.awt.Toolkit;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import sun.security.action.GetPropertyAction;
+
+
+/**
+ * Factory class used to retrieve a valid FontManager instance for the current
+ * platform.
+ *
+ * A default implementation is given for Linux, Solaris and Windows.
+ * You can alter the behaviour of the {@link #getInstance()} method by setting
+ * the {@code sun.font.fontmanager} property. For example:
+ * {@code sun.font.fontmanager=sun.awt.X11FontManager}
+ */
+public final class FontManagerFactory {
+
+ /** Our singleton instance. */
+ private static FontManager instance = null;
+
+ private static final String DEFAULT_CLASS;
+ static {
+ if (FontUtilities.isWindows)
+ DEFAULT_CLASS = "sun.awt.Win32FontManager";
+ else
+ DEFAULT_CLASS = "sun.awt.X11FontManager";
+ }
+
+ /**
+ * Get a valid FontManager implementation for the current platform.
+ *
+ * @return a valid FontManager instance for the current platform
+ */
+ public static synchronized FontManager getInstance() {
+
+ if (instance != null) {
+ return instance;
+ }
+
+ String fmClassName = AccessController.doPrivileged(
+ new GetPropertyAction("sun.font.fontmanager",
+ DEFAULT_CLASS));
+
+ try {
+ @SuppressWarnings("unchecked")
+ ClassLoader cl = (ClassLoader)
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return ClassLoader.getSystemClassLoader();
+ }
+ });
+
+ @SuppressWarnings("unchecked")
+ Class fmClass = Class.forName(fmClassName, true, cl);
+ instance = (FontManager) fmClass.newInstance();
+
+ } catch (ClassNotFoundException ex) {
+ InternalError err = new InternalError();
+ err.initCause(ex);
+ throw err;
+
+ } catch (InstantiationException ex) {
+ InternalError err = new InternalError();
+ err.initCause(ex);
+ throw err;
+
+ } catch (IllegalAccessException ex) {
+ InternalError err = new InternalError();
+ err.initCause(ex);
+ throw err;
+ }
+
+ return instance;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontManagerForSGE.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+import java.util.Locale;
+import java.util.TreeMap;
+
+/**
+ * This is an extension of the {@link FontManager} interface which has to
+ * be implemented on systems that want to use SunGraphicsEnvironment. It
+ * adds a couple of methods that are only required by SGE. Graphics
+ * implementations that use their own GraphicsEnvironment are not required
+ * to implement this and can use plain FontManager instead.
+ */
+public interface FontManagerForSGE extends FontManager {
+
+ /**
+ * Return an array of created Fonts, or null, if no fonts were created yet.
+ */
+ public Font[] getCreatedFonts();
+
+ /**
+ * Similar to getCreatedFonts, but returns a TreeMap of fonts by family name.
+ */
+ public TreeMap<String, String> getCreatedFontFamilyNames();
+
+ /**
+ * Returns all fonts installed in this environment.
+ */
+ public Font[] getAllInstalledFonts();
+
+ public String[] getInstalledFontFamilyNames(Locale requestedLocale);
+}
--- a/jdk/src/share/classes/sun/font/FontManagerNativeLibrary.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontManagerNativeLibrary.java Mon Oct 05 18:22:00 2009 -0700
@@ -34,7 +34,7 @@
public Object run() {
/* REMIND do we really have to load awt here? */
System.loadLibrary("awt");
- if (SunGraphicsEnvironment.isOpenJDK() &&
+ if (FontUtilities.isOpenJDK &&
System.getProperty("os.name").startsWith("Windows")) {
/* Ideally fontmanager library should not depend on
particular implementation of the font scaler.
--- a/jdk/src/share/classes/sun/font/FontResolver.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontResolver.java Mon Oct 05 18:22:00 2009 -0700
@@ -114,7 +114,7 @@
for (int i=0; i<getAllFonts().length; i++) {
Font font = allFonts[i];
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
if (font2D.hasSupplementaryChars()) {
fonts.add(font);
indices.add(Integer.valueOf(i));
--- a/jdk/src/share/classes/sun/font/FontScaler.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontScaler.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,6 +29,9 @@
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.lang.ref.WeakReference;
+import java.lang.reflect.Constructor;
+
+import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
/* FontScaler is "internal interface" to font rasterizer library.
@@ -77,6 +80,79 @@
* this (and this is probably more important for Type1 fonts).
*/
public abstract class FontScaler implements DisposerRecord {
+
+ private static FontScaler nullScaler = null;
+ private static Constructor<FontScaler> scalerConstructor = null;
+
+ //Find preferred font scaler
+ //
+ //NB: we can allow property based preferences
+ // (theoretically logic can be font type specific)
+ static {
+ Class scalerClass = null;
+ Class arglst[] = new Class[] {Font2D.class, int.class,
+ boolean.class, int.class};
+
+ try {
+ if (FontUtilities.isOpenJDK) {
+ scalerClass = Class.forName("sun.font.FreetypeFontScaler");
+ } else {
+ scalerClass = Class.forName("sun.font.T2KFontScaler");
+ }
+ } catch (ClassNotFoundException e) {
+ scalerClass = NullFontScaler.class;
+ }
+
+ //NB: rewrite using factory? constructor is ugly way
+ try {
+ scalerConstructor = scalerClass.getConstructor(arglst);
+ } catch (NoSuchMethodException e) {
+ //should not happen
+ }
+ }
+
+ /* This is the only place to instantiate new FontScaler.
+ * Therefore this is very convinient place to register
+ * scaler with Disposer as well as trigger deregistring bad font
+ * in case when scaler reports this.
+ */
+ public static FontScaler getScaler(Font2D font,
+ int indexInCollection,
+ boolean supportsCJK,
+ int filesize) {
+ FontScaler scaler = null;
+
+ try {
+ Object args[] = new Object[] {font, indexInCollection,
+ supportsCJK, filesize};
+ scaler = scalerConstructor.newInstance(args);
+ Disposer.addObjectRecord(font, scaler);
+ } catch (Throwable e) {
+ scaler = nullScaler;
+
+ //if we can not instantiate scaler assume bad font
+ //NB: technically it could be also because of internal scaler
+ // error but here we are assuming scaler is ok.
+ FontManager fm = FontManagerFactory.getInstance();
+ fm.deRegisterBadFont(font);
+ }
+ return scaler;
+ }
+
+ /*
+ * At the moment it is harmless to create 2 null scalers so, technically,
+ * syncronized keyword is not needed.
+ *
+ * But it is safer to keep it to avoid subtle problems if we will be adding
+ * checks like whether scaler is null scaler.
+ */
+ public static synchronized FontScaler getNullScaler() {
+ if (nullScaler == null) {
+ nullScaler = new NullFontScaler();
+ }
+ return nullScaler;
+ }
+
protected WeakReference<Font2D> font = null;
protected long nativeScaler = 0; //used by decendants
//that have native state
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontUtilities.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,485 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+
+import javax.swing.plaf.FontUIResource;
+
+import sun.security.action.GetPropertyAction;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * A collection of utility methods.
+ */
+public final class FontUtilities {
+
+ public static final boolean isSolaris;
+
+ public static final boolean isLinux;
+
+ public static final boolean isSolaris8;
+
+ public static final boolean isSolaris9;
+
+ public static final boolean isOpenSolaris;
+
+ public static final boolean useT2K;
+
+ public static final boolean isWindows;
+
+ public static final boolean isOpenJDK;
+
+ static final String LUCIDA_FILE_NAME = "LucidaSansRegular.ttf";
+
+ // This static initializer block figures out the OS constants.
+ static {
+
+ String osName = AccessController.doPrivileged(
+ new GetPropertyAction("os.name", "unknownOS"));
+ isSolaris = osName.startsWith("SunOS");
+
+ isLinux = osName.startsWith("Linux");
+
+ String t2kStr = AccessController.doPrivileged(
+ new GetPropertyAction("sun.java2d.font.scaler"));
+ if (t2kStr != null) {
+ useT2K = "t2k".equals(t2kStr);
+ } else {
+ useT2K = false;
+ }
+ if (isSolaris) {
+ String version = AccessController.doPrivileged(
+ new GetPropertyAction("os.version", "0.0"));
+ isSolaris8 = version.startsWith("5.8");
+ isSolaris9 = version.startsWith("5.9");
+ float ver = Float.parseFloat(version);
+ if (ver > 5.10f) {
+ File f = new File("/etc/release");
+ String line = null;
+ try {
+ FileInputStream fis = new FileInputStream(f);
+ InputStreamReader isr = new InputStreamReader(
+ fis, "ISO-8859-1");
+ BufferedReader br = new BufferedReader(isr);
+ line = br.readLine();
+ fis.close();
+ } catch (Exception ex) {
+ // Nothing to do here.
+ }
+ if (line != null && line.indexOf("OpenSolaris") >= 0) {
+ isOpenSolaris = true;
+ } else {
+ isOpenSolaris = false;
+ }
+ } else {
+ isOpenSolaris= false;
+ }
+ } else {
+ isSolaris8 = false;
+ isSolaris9 = false;
+ isOpenSolaris = false;
+ }
+ isWindows = osName.startsWith("Windows");
+ String jreLibDirName = AccessController.doPrivileged(
+ new GetPropertyAction("java.home","")) + File.separator + "lib";
+ String jreFontDirName = jreLibDirName + File.separator + "fonts";
+ File lucidaFile =
+ new File(jreFontDirName + File.separator + LUCIDA_FILE_NAME);
+ isOpenJDK = !lucidaFile.exists();
+ }
+
+ /**
+ * Referenced by code in the JDK which wants to test for the
+ * minimum char code for which layout may be required.
+ * Note that even basic latin text can benefit from ligatures,
+ * eg "ffi" but we presently apply those only if explicitly
+ * requested with TextAttribute.LIGATURES_ON.
+ * The value here indicates the lowest char code for which failing
+ * to invoke layout would prevent acceptable rendering.
+ */
+ public static final int MIN_LAYOUT_CHARCODE = 0x0300;
+
+ /**
+ * Referenced by code in the JDK which wants to test for the
+ * maximum char code for which layout may be required.
+ * Note this does not account for supplementary characters
+ * where the caller interprets 'layout' to mean any case where
+ * one 'char' (ie the java type char) does not map to one glyph
+ */
+ public static final int MAX_LAYOUT_CHARCODE = 0x206F;
+
+ private static boolean debugFonts = false;
+ private static PlatformLogger logger = null;
+ private static boolean logging;
+
+ static {
+
+ String debugLevel =
+ System.getProperty("sun.java2d.debugfonts");
+
+ if (debugLevel != null && !debugLevel.equals("false")) {
+ debugFonts = true;
+ logger = PlatformLogger.getLogger("sun.java2d");
+ if (debugLevel.equals("warning")) {
+ logger.setLevel(PlatformLogger.WARNING);
+ } else if (debugLevel.equals("severe")) {
+ logger.setLevel(PlatformLogger.SEVERE);
+ }
+ }
+
+ if (debugFonts) {
+ logger = PlatformLogger.getLogger("sun.java2d");
+ logging = logger.isEnabled();
+ }
+
+ }
+
+ /**
+ * Calls the private getFont2D() method in java.awt.Font objects.
+ *
+ * @param font the font object to call
+ *
+ * @return the Font2D object returned by Font.getFont2D()
+ */
+ public static Font2D getFont2D(Font font) {
+ return FontAccess.getFontAccess().getFont2D(font);
+ }
+
+ /**
+ * If there is anything in the text which triggers a case
+ * where char->glyph does not map 1:1 in straightforward
+ * left->right ordering, then this method returns true.
+ * Scripts which might require it but are not treated as such
+ * due to JDK implementations will not return true.
+ * ie a 'true' return is an indication of the treatment by
+ * the implementation.
+ * Whether supplementary characters should be considered is dependent
+ * on the needs of the caller. Since this method accepts the 'char' type
+ * then such chars are always represented by a pair. From a rendering
+ * perspective these will all (in the cases I know of) still be one
+ * unicode character -> one glyph. But if a caller is using this to
+ * discover any case where it cannot make naive assumptions about
+ * the number of chars, and how to index through them, then it may
+ * need the option to have a 'true' return in such a case.
+ */
+ public static boolean isComplexText(char [] chs, int start, int limit) {
+
+ for (int i = start; i < limit; i++) {
+ if (chs[i] < MIN_LAYOUT_CHARCODE) {
+ continue;
+ }
+ else if (isNonSimpleChar(chs[i])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /* This is almost the same as the method above, except it takes a
+ * char which means it may include undecoded surrogate pairs.
+ * The distinction is made so that code which needs to identify all
+ * cases in which we do not have a simple mapping from
+ * char->unicode character->glyph can be be identified.
+ * For example measurement cannot simply sum advances of 'chars',
+ * the caret in editable text cannot advance one 'char' at a time, etc.
+ * These callers really are asking for more than whether 'layout'
+ * needs to be run, they need to know if they can assume 1->1
+ * char->glyph mapping.
+ */
+ public static boolean isNonSimpleChar(char ch) {
+ return
+ isComplexCharCode(ch) ||
+ (ch >= CharToGlyphMapper.HI_SURROGATE_START &&
+ ch <= CharToGlyphMapper.LO_SURROGATE_END);
+ }
+
+ /* If the character code falls into any of a number of unicode ranges
+ * where we know that simple left->right layout mapping chars to glyphs
+ * 1:1 and accumulating advances is going to produce incorrect results,
+ * we want to know this so the caller can use a more intelligent layout
+ * approach. A caller who cares about optimum performance may want to
+ * check the first case and skip the method call if its in that range.
+ * Although there's a lot of tests in here, knowing you can skip
+ * CTL saves a great deal more. The rest of the checks are ordered
+ * so that rather than checking explicitly if (>= start & <= end)
+ * which would mean all ranges would need to be checked so be sure
+ * CTL is not needed, the method returns as soon as it recognises
+ * the code point is outside of a CTL ranges.
+ * NOTE: Since this method accepts an 'int' it is asssumed to properly
+ * represent a CHARACTER. ie it assumes the caller has already
+ * converted surrogate pairs into supplementary characters, and so
+ * can handle this case and doesn't need to be told such a case is
+ * 'complex'.
+ */
+ public static boolean isComplexCharCode(int code) {
+
+ if (code < MIN_LAYOUT_CHARCODE || code > MAX_LAYOUT_CHARCODE) {
+ return false;
+ }
+ else if (code <= 0x036f) {
+ // Trigger layout for combining diacriticals 0x0300->0x036f
+ return true;
+ }
+ else if (code < 0x0590) {
+ // No automatic layout for Greek, Cyrillic, Armenian.
+ return false;
+ }
+ else if (code <= 0x06ff) {
+ // Hebrew 0590 - 05ff
+ // Arabic 0600 - 06ff
+ return true;
+ }
+ else if (code < 0x0900) {
+ return false; // Syriac and Thaana
+ }
+ else if (code <= 0x0e7f) {
+ // if Indic, assume shaping for conjuncts, reordering:
+ // 0900 - 097F Devanagari
+ // 0980 - 09FF Bengali
+ // 0A00 - 0A7F Gurmukhi
+ // 0A80 - 0AFF Gujarati
+ // 0B00 - 0B7F Oriya
+ // 0B80 - 0BFF Tamil
+ // 0C00 - 0C7F Telugu
+ // 0C80 - 0CFF Kannada
+ // 0D00 - 0D7F Malayalam
+ // 0D80 - 0DFF Sinhala
+ // 0E00 - 0E7F if Thai, assume shaping for vowel, tone marks
+ return true;
+ }
+ else if (code < 0x1780) {
+ return false;
+ }
+ else if (code <= 0x17ff) { // 1780 - 17FF Khmer
+ return true;
+ }
+ else if (code < 0x200c) {
+ return false;
+ }
+ else if (code <= 0x200d) { // zwj or zwnj
+ return true;
+ }
+ else if (code >= 0x202a && code <= 0x202e) { // directional control
+ return true;
+ }
+ else if (code >= 0x206a && code <= 0x206f) { // directional control
+ return true;
+ }
+ return false;
+ }
+
+ public static PlatformLogger getLogger() {
+ return logger;
+ }
+
+ public static boolean isLogging() {
+ return logging;
+ }
+
+ public static boolean debugFonts() {
+ return debugFonts;
+ }
+
+
+ // The following methods are used by Swing.
+
+ /* Revise the implementation to in fact mean "font is a composite font.
+ * This ensures that Swing components will always benefit from the
+ * fall back fonts
+ */
+ public static boolean fontSupportsDefaultEncoding(Font font) {
+ return getFont2D(font) instanceof CompositeFont;
+ }
+
+ /**
+ * This method is provided for internal and exclusive use by Swing.
+ *
+ * It may be used in conjunction with fontSupportsDefaultEncoding(Font)
+ * In the event that a desktop properties font doesn't directly
+ * support the default encoding, (ie because the host OS supports
+ * adding support for the current locale automatically for native apps),
+ * then Swing calls this method to get a font which uses the specified
+ * font for the code points it covers, but also supports this locale
+ * just as the standard composite fonts do.
+ * Note: this will over-ride any setting where an application
+ * specifies it prefers locale specific composite fonts.
+ * The logic for this, is that this method is used only where the user or
+ * application has specified that the native L&F be used, and that
+ * we should honour that request to use the same font as native apps use.
+ *
+ * The behaviour of this method is to construct a new composite
+ * Font object that uses the specified physical font as its first
+ * component, and adds all the components of "dialog" as fall back
+ * components.
+ * The method currently assumes that only the size and style attributes
+ * are set on the specified font. It doesn't copy the font transform or
+ * other attributes because they aren't set on a font created from
+ * the desktop. This will need to be fixed if use is broadened.
+ *
+ * Operations such as Font.deriveFont will work properly on the
+ * font returned by this method for deriving a different point size.
+ * Additionally it tries to support a different style by calling
+ * getNewComposite() below. That also supports replacing slot zero
+ * with a different physical font but that is expected to be "rare".
+ * Deriving with a different style is needed because its been shown
+ * that some applications try to do this for Swing FontUIResources.
+ * Also operations such as new Font(font.getFontName(..), Font.PLAIN, 14);
+ * will NOT yield the same result, as the new underlying CompositeFont
+ * cannot be "looked up" in the font registry.
+ * This returns a FontUIResource as that is the Font sub-class needed
+ * by Swing.
+ * Suggested usage is something like :
+ * FontUIResource fuir;
+ * Font desktopFont = getDesktopFont(..);
+ * // NOTE even if fontSupportsDefaultEncoding returns true because
+ * // you get Tahoma and are running in an English locale, you may
+ * // still want to just call getCompositeFontUIResource() anyway
+ * // as only then will you get fallback fonts - eg for CJK.
+ * if (FontManager.fontSupportsDefaultEncoding(desktopFont)) {
+ * fuir = new FontUIResource(..);
+ * } else {
+ * fuir = FontManager.getCompositeFontUIResource(desktopFont);
+ * }
+ * return fuir;
+ */
+ public static FontUIResource getCompositeFontUIResource(Font font) {
+
+ FontUIResource fuir =
+ new FontUIResource(font.getName(),font.getStyle(),font.getSize());
+ Font2D font2D = FontUtilities.getFont2D(font);
+
+ if (!(font2D instanceof PhysicalFont)) {
+ /* Swing should only be calling this when a font is obtained
+ * from desktop properties, so should generally be a physical font,
+ * an exception might be for names like "MS Serif" which are
+ * automatically mapped to "Serif", so there's no need to do
+ * anything special in that case. But note that suggested usage
+ * is first to call fontSupportsDefaultEncoding(Font) and this
+ * method should not be called if that were to return true.
+ */
+ return fuir;
+ }
+
+ FontManager fm = FontManagerFactory.getInstance();
+ CompositeFont dialog2D =
+ (CompositeFont) fm.findFont2D("dialog", font.getStyle(), FontManager.NO_FALLBACK);
+ if (dialog2D == null) { /* shouldn't happen */
+ return fuir;
+ }
+ PhysicalFont physicalFont = (PhysicalFont)font2D;
+ CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
+ FontAccess.getFontAccess().setFont2D(fuir, compFont.handle);
+ /* marking this as a created font is needed as only created fonts
+ * copy their creator's handles.
+ */
+ FontAccess.getFontAccess().setCreatedFont(fuir);
+ return fuir;
+ }
+
+ /* A small "map" from GTK/fontconfig names to the equivalent JDK
+ * logical font name.
+ */
+ private static final String[][] nameMap = {
+ {"sans", "sansserif"},
+ {"sans-serif", "sansserif"},
+ {"serif", "serif"},
+ {"monospace", "monospaced"}
+ };
+
+ public static String mapFcName(String name) {
+ for (int i = 0; i < nameMap.length; i++) {
+ if (name.equals(nameMap[i][0])) {
+ return nameMap[i][1];
+ }
+ }
+ return null;
+ }
+
+
+ /* This is called by Swing passing in a fontconfig family name
+ * such as "sans". In return Swing gets a FontUIResource instance
+ * that has queried fontconfig to resolve the font(s) used for this.
+ * Fontconfig will if asked return a list of fonts to give the largest
+ * possible code point coverage.
+ * For now we use only the first font returned by fontconfig, and
+ * back it up with the most closely matching JDK logical font.
+ * Essentially this means pre-pending what we return now with fontconfig's
+ * preferred physical font. This could lead to some duplication in cases,
+ * if we already included that font later. We probably should remove such
+ * duplicates, but it is not a significant problem. It can be addressed
+ * later as part of creating a Composite which uses more of the
+ * same fonts as fontconfig. At that time we also should pay more
+ * attention to the special rendering instructions fontconfig returns,
+ * such as whether we should prefer embedded bitmaps over antialiasing.
+ * There's no way to express that via a Font at present.
+ */
+ public static FontUIResource getFontConfigFUIR(String fcFamily,
+ int style, int size) {
+
+ String mapped = mapFcName(fcFamily);
+ if (mapped == null) {
+ mapped = "sansserif";
+ }
+
+ FontUIResource fuir;
+ FontManager fm = FontManagerFactory.getInstance();
+ if (fm instanceof SunFontManager) {
+ SunFontManager sfm = (SunFontManager) fm;
+ fuir = sfm.getFontConfigFUIR(mapped, style, size);
+ } else {
+ fuir = new FontUIResource(mapped, style, size);
+ }
+ return fuir;
+ }
+
+
+ /**
+ * Used by windows printing to assess if a font is likely to
+ * be layout compatible with JDK
+ * TrueType fonts should be, but if they have no GPOS table,
+ * but do have a GSUB table, then they are probably older
+ * fonts GDI handles differently.
+ */
+ public static boolean textLayoutIsCompatible(Font font) {
+
+ Font2D font2D = getFont2D(font);
+ if (font2D instanceof TrueTypeFont) {
+ TrueTypeFont ttf = (TrueTypeFont) font2D;
+ return
+ ttf.getDirectoryEntry(TrueTypeFont.GSUBTag) == null ||
+ ttf.getDirectoryEntry(TrueTypeFont.GPOSTag) != null;
+ } else {
+ return false;
+ }
+ }
+
+}
--- a/jdk/src/share/classes/sun/font/FreetypeFontScaler.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FreetypeFontScaler.java Mon Oct 05 18:22:00 2009 -0700
@@ -79,7 +79,7 @@
pScalerContext,
nativeScaler);
}
- return FontManager.getNullScaler().getFontMetrics(0L);
+ return FontScaler.getNullScaler().getFontMetrics(0L);
}
synchronized float getGlyphAdvance(long pScalerContext, int glyphCode)
@@ -90,7 +90,8 @@
nativeScaler,
glyphCode);
}
- return FontManager.getNullScaler().getGlyphAdvance(0L, glyphCode);
+ return FontScaler.getNullScaler().
+ getGlyphAdvance(0L, glyphCode);
}
synchronized void getGlyphMetrics(long pScalerContext,
@@ -104,7 +105,8 @@
metrics);
return;
}
- FontManager.getNullScaler().getGlyphMetrics(0L, glyphCode, metrics);
+ FontScaler.getNullScaler().
+ getGlyphMetrics(0L, glyphCode, metrics);
}
synchronized long getGlyphImage(long pScalerContext, int glyphCode)
@@ -115,7 +117,8 @@
nativeScaler,
glyphCode);
}
- return FontManager.getNullScaler().getGlyphImage(0L, glyphCode);
+ return FontScaler.getNullScaler().
+ getGlyphImage(0L, glyphCode);
}
synchronized Rectangle2D.Float getGlyphOutlineBounds(
@@ -127,7 +130,8 @@
nativeScaler,
glyphCode);
}
- return FontManager.getNullScaler().getGlyphOutlineBounds(0L,glyphCode);
+ return FontScaler.getNullScaler().
+ getGlyphOutlineBounds(0L,glyphCode);
}
synchronized GeneralPath getGlyphOutline(
@@ -140,7 +144,8 @@
glyphCode,
x, y);
}
- return FontManager.getNullScaler().getGlyphOutline(0L, glyphCode, x,y);
+ return FontScaler.getNullScaler().
+ getGlyphOutline(0L, glyphCode, x,y);
}
synchronized GeneralPath getGlyphVectorOutline(
@@ -154,8 +159,8 @@
numGlyphs,
x, y);
}
- return FontManager.getNullScaler().getGlyphVectorOutline(
- 0L, glyphs, numGlyphs, x, y);
+ return FontScaler
+ .getNullScaler().getGlyphVectorOutline(0L, glyphs, numGlyphs, x, y);
}
synchronized long getLayoutTableCache() throws FontScalerException {
@@ -173,21 +178,21 @@
if (nativeScaler != 0L) {
return getNumGlyphsNative(nativeScaler);
}
- return FontManager.getNullScaler().getNumGlyphs();
+ return FontScaler.getNullScaler().getNumGlyphs();
}
synchronized int getMissingGlyphCode() throws FontScalerException {
if (nativeScaler != 0L) {
return getMissingGlyphCodeNative(nativeScaler);
}
- return FontManager.getNullScaler().getMissingGlyphCode();
+ return FontScaler.getNullScaler().getMissingGlyphCode();
}
synchronized int getGlyphCode(char charCode) throws FontScalerException {
if (nativeScaler != 0L) {
return getGlyphCodeNative(nativeScaler, charCode);
}
- return FontManager.getNullScaler().getGlyphCode(charCode);
+ return FontScaler.getNullScaler().getGlyphCode(charCode);
}
synchronized Point2D.Float getGlyphPoint(long pScalerContext,
@@ -197,7 +202,7 @@
return getGlyphPointNative(font.get(), pScalerContext,
nativeScaler, glyphCode, ptNumber);
}
- return FontManager.getNullScaler().getGlyphPoint(
+ return FontScaler.getNullScaler().getGlyphPoint(
pScalerContext, glyphCode, ptNumber);
}
--- a/jdk/src/share/classes/sun/font/GlyphLayout.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/GlyphLayout.java Mon Oct 05 18:22:00 2009 -0700
@@ -259,7 +259,7 @@
*/
int aa =
FontStrikeDesc.getAAHintIntVal(frc.getAntiAliasingHint(),
- FontManager.getFont2D(font),
+ FontUtilities.getFont2D(font),
(int)Math.abs(ptSize));
int fm = FontStrikeDesc.getFMHintIntVal
(frc.getFractionalMetricsHint());
@@ -407,7 +407,7 @@
int lang = -1; // default for now
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
_textRecord.init(text, offset, lim, min, max);
int start = offset;
--- a/jdk/src/share/classes/sun/font/PhysicalStrike.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/PhysicalStrike.java Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,14 @@
public abstract class PhysicalStrike extends FontStrike {
static final long INTMASK = 0xffffffffL;
+ static boolean longAddresses;
+ static {
+ switch (StrikeCache.nativeAddressSize) {
+ case 8: longAddresses = true; break;
+ case 4: longAddresses = false; break;
+ default: throw new RuntimeException("Unexpected address size");
+ }
+ }
private PhysicalFont physicalFont;
protected CharToGlyphMapper mapper;
--- a/jdk/src/share/classes/sun/font/StandardGlyphVector.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/StandardGlyphVector.java Mon Oct 05 18:22:00 2009 -0700
@@ -197,7 +197,7 @@
// how do we know its a base glyph
// for now, it is if the natural advance of the glyph is non-zero
- Font2D f2d = FontManager.getFont2D(font);
+ Font2D f2d = FontUtilities.getFont2D(font);
FontStrike strike = f2d.getStrike(font, frc);
float[] deltas = { trackPt.x, trackPt.y };
@@ -1116,7 +1116,7 @@
}
private void initFontData() {
- font2D = FontManager.getFont2D(font);
+ font2D = FontUtilities.getFont2D(font);
float s = font.getSize2D();
if (font.isTransformed()) {
ftx = font.getTransform();
--- a/jdk/src/share/classes/sun/font/StrikeCache.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/StrikeCache.java Mon Oct 05 18:22:00 2009 -0700
@@ -237,7 +237,7 @@
* any glyphs. In this case we still want to free the scaler
* context.
*/
- if (FontManager.longAddresses) {
+ if (longAddresses()) {
freeLongMemory(new long[0], disposer.pScalerContext);
} else {
freeIntMemory(new int[0], disposer.pScalerContext);
@@ -245,6 +245,10 @@
}
}
+ private static boolean longAddresses() {
+ return nativeAddressSize == 8;
+ }
+
static void disposeStrike(final FontStrikeDisposer disposer) {
// we need to execute the strike disposal on the rendering thread
// because they may be accessed on that thread at the time of the
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/SunFontManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,3674 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+import java.awt.FontFormatException;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.swing.plaf.FontUIResource;
+import sun.awt.AppContext;
+import sun.awt.FontConfiguration;
+import sun.awt.SunToolkit;
+import sun.java2d.FontSupport;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * The base implementation of the {@link FontManager} interface. It implements
+ * the platform independent, shared parts of OpenJDK's FontManager
+ * implementations. The platform specific parts are declared as abstract
+ * methods that have to be implemented by specific implementations.
+ */
+public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
+
+ private static class TTFilter implements FilenameFilter {
+ public boolean accept(File dir,String name) {
+ /* all conveniently have the same suffix length */
+ int offset = name.length()-4;
+ if (offset <= 0) { /* must be at least A.ttf */
+ return false;
+ } else {
+ return(name.startsWith(".ttf", offset) ||
+ name.startsWith(".TTF", offset) ||
+ name.startsWith(".ttc", offset) ||
+ name.startsWith(".TTC", offset));
+ }
+ }
+ }
+
+ private static class T1Filter implements FilenameFilter {
+ public boolean accept(File dir,String name) {
+ if (noType1Font) {
+ return false;
+ }
+ /* all conveniently have the same suffix length */
+ int offset = name.length()-4;
+ if (offset <= 0) { /* must be at least A.pfa */
+ return false;
+ } else {
+ return(name.startsWith(".pfa", offset) ||
+ name.startsWith(".pfb", offset) ||
+ name.startsWith(".PFA", offset) ||
+ name.startsWith(".PFB", offset));
+ }
+ }
+ }
+
+ private static class TTorT1Filter implements FilenameFilter {
+ public boolean accept(File dir, String name) {
+
+ /* all conveniently have the same suffix length */
+ int offset = name.length()-4;
+ if (offset <= 0) { /* must be at least A.ttf or A.pfa */
+ return false;
+ } else {
+ boolean isTT =
+ name.startsWith(".ttf", offset) ||
+ name.startsWith(".TTF", offset) ||
+ name.startsWith(".ttc", offset) ||
+ name.startsWith(".TTC", offset);
+ if (isTT) {
+ return true;
+ } else if (noType1Font) {
+ return false;
+ } else {
+ return(name.startsWith(".pfa", offset) ||
+ name.startsWith(".pfb", offset) ||
+ name.startsWith(".PFA", offset) ||
+ name.startsWith(".PFB", offset));
+ }
+ }
+ }
+ }
+
+ public static final int FONTFORMAT_NONE = -1;
+ public static final int FONTFORMAT_TRUETYPE = 0;
+ public static final int FONTFORMAT_TYPE1 = 1;
+ public static final int FONTFORMAT_T2K = 2;
+ public static final int FONTFORMAT_TTC = 3;
+ public static final int FONTFORMAT_COMPOSITE = 4;
+ public static final int FONTFORMAT_NATIVE = 5;
+
+ /* Pool of 20 font file channels chosen because some UTF-8 locale
+ * composite fonts can use up to 16 platform fonts (including the
+ * Lucida fall back). This should prevent channel thrashing when
+ * dealing with one of these fonts.
+ * The pool array stores the fonts, rather than directly referencing
+ * the channels, as the font needs to do the open/close work.
+ */
+ private static final int CHANNELPOOLSIZE = 20;
+ private int lastPoolIndex = 0;
+ private FileFont fontFileCache[] = new FileFont[CHANNELPOOLSIZE];
+
+ /* Need to implement a simple linked list scheme for fast
+ * traversal and lookup.
+ * Also want to "fast path" dialog so there's minimal overhead.
+ */
+ /* There are at exactly 20 composite fonts: 5 faces (but some are not
+ * usually different), in 4 styles. The array may be auto-expanded
+ * later if more are needed, eg for user-defined composites or locale
+ * variants.
+ */
+ private int maxCompFont = 0;
+ private CompositeFont [] compFonts = new CompositeFont[20];
+ private ConcurrentHashMap<String, CompositeFont>
+ compositeFonts = new ConcurrentHashMap<String, CompositeFont>();
+ private ConcurrentHashMap<String, PhysicalFont>
+ physicalFonts = new ConcurrentHashMap<String, PhysicalFont>();
+ private ConcurrentHashMap<String, PhysicalFont>
+ registeredFonts = new ConcurrentHashMap<String, PhysicalFont>();
+
+ /* given a full name find the Font. Remind: there's duplication
+ * here in that this contains the content of compositeFonts +
+ * physicalFonts.
+ */
+ private ConcurrentHashMap<String, Font2D>
+ fullNameToFont = new ConcurrentHashMap<String, Font2D>();
+
+ /* TrueType fonts have localised names. Support searching all
+ * of these before giving up on a name.
+ */
+ private HashMap<String, TrueTypeFont> localeFullNamesToFont;
+
+ private PhysicalFont defaultPhysicalFont;
+
+ static boolean longAddresses;
+ private boolean loaded1dot0Fonts = false;
+ boolean loadedAllFonts = false;
+ boolean loadedAllFontFiles = false;
+ HashMap<String,String> jreFontMap;
+ HashSet<String> jreLucidaFontFiles;
+ String[] jreOtherFontFiles;
+ boolean noOtherJREFontFiles = false; // initial assumption.
+
+ public static final String lucidaFontName = "Lucida Sans Regular";
+ public static String jreLibDirName;
+ public static String jreFontDirName;
+ private static HashSet<String> missingFontFiles = null;
+ private String defaultFontName;
+ private String defaultFontFileName;
+ protected HashSet registeredFontFiles = new HashSet();
+
+ private ArrayList badFonts;
+ /* fontPath is the location of all fonts on the system, excluding the
+ * JRE's own font directory but including any path specified using the
+ * sun.java2d.fontpath property. Together with that property, it is
+ * initialised by the getPlatformFontPath() method
+ * This call must be followed by a call to registerFontDirs(fontPath)
+ * once any extra debugging path has been appended.
+ */
+ protected String fontPath;
+ private FontConfiguration fontConfig;
+ /* discoveredAllFonts is set to true when all fonts on the font path are
+ * discovered. This usually also implies opening, validating and
+ * registering, but an implementation may be optimized to avold this.
+ * So see also "loadedAllFontFiles"
+ */
+ private boolean discoveredAllFonts = false;
+
+ /* No need to keep consing up new instances - reuse a singleton.
+ * The trade-off is that these objects don't get GC'd.
+ */
+ private static final FilenameFilter ttFilter = new TTFilter();
+ private static final FilenameFilter t1Filter = new T1Filter();
+
+ private Font[] allFonts;
+ private String[] allFamilies; // cache for default locale only
+ private Locale lastDefaultLocale;
+
+ public static boolean noType1Font;
+
+ /* Used to indicate required return type from toArray(..); */
+ private static String[] STR_ARRAY = new String[0];
+
+ /**
+ * Deprecated, unsupported hack - actually invokes a bug!
+ * Left in for a customer, don't remove.
+ */
+ private boolean usePlatformFontMetrics = false;
+
+ /**
+ * Returns the global SunFontManager instance. This is similar to
+ * {@link FontManagerFactory#getInstance()} but it returns a
+ * SunFontManager instance instead. This is only used in internal classes
+ * where we can safely assume that a SunFontManager is to be used.
+ *
+ * @return the global SunFontManager instance
+ */
+ public static SunFontManager getInstance() {
+ FontManager fm = FontManagerFactory.getInstance();
+ return (SunFontManager) fm;
+ }
+
+ public FilenameFilter getTrueTypeFilter() {
+ return ttFilter;
+ }
+
+ public FilenameFilter getType1Filter() {
+ return t1Filter;
+ }
+
+ @Override
+ public boolean usingPerAppContextComposites() {
+ return _usingPerAppContextComposites;
+ }
+
+ private void initJREFontMap() {
+
+ /* Key is familyname+style value as an int.
+ * Value is filename containing the font.
+ * If no mapping exists, it means there is no font file for the style
+ * If the mapping exists but the file doesn't exist in the deferred
+ * list then it means its not installed.
+ * This looks like a lot of code and strings but if it saves even
+ * a single file being opened at JRE start-up there's a big payoff.
+ * Lucida Sans is probably the only important case as the others
+ * are rarely used. Consider removing the other mappings if there's
+ * no evidence they are useful in practice.
+ */
+ jreFontMap = new HashMap<String,String>();
+ jreLucidaFontFiles = new HashSet<String>();
+ if (isOpenJDK()) {
+ return;
+ }
+ /* Lucida Sans Family */
+ jreFontMap.put("lucida sans0", "LucidaSansRegular.ttf");
+ jreFontMap.put("lucida sans1", "LucidaSansDemiBold.ttf");
+ /* Lucida Sans full names (map Bold and DemiBold to same file) */
+ jreFontMap.put("lucida sans regular0", "LucidaSansRegular.ttf");
+ jreFontMap.put("lucida sans regular1", "LucidaSansDemiBold.ttf");
+ jreFontMap.put("lucida sans bold1", "LucidaSansDemiBold.ttf");
+ jreFontMap.put("lucida sans demibold1", "LucidaSansDemiBold.ttf");
+
+ /* Lucida Sans Typewriter Family */
+ jreFontMap.put("lucida sans typewriter0",
+ "LucidaTypewriterRegular.ttf");
+ jreFontMap.put("lucida sans typewriter1", "LucidaTypewriterBold.ttf");
+ /* Typewriter full names (map Bold and DemiBold to same file) */
+ jreFontMap.put("lucida sans typewriter regular0",
+ "LucidaTypewriter.ttf");
+ jreFontMap.put("lucida sans typewriter regular1",
+ "LucidaTypewriterBold.ttf");
+ jreFontMap.put("lucida sans typewriter bold1",
+ "LucidaTypewriterBold.ttf");
+ jreFontMap.put("lucida sans typewriter demibold1",
+ "LucidaTypewriterBold.ttf");
+
+ /* Lucida Bright Family */
+ jreFontMap.put("lucida bright0", "LucidaBrightRegular.ttf");
+ jreFontMap.put("lucida bright1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright2", "LucidaBrightItalic.ttf");
+ jreFontMap.put("lucida bright3", "LucidaBrightDemiItalic.ttf");
+ /* Lucida Bright full names (map Bold and DemiBold to same file) */
+ jreFontMap.put("lucida bright regular0", "LucidaBrightRegular.ttf");
+ jreFontMap.put("lucida bright regular1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright regular2", "LucidaBrightItalic.ttf");
+ jreFontMap.put("lucida bright regular3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright bold1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright bold3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright demibold1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright demibold3","LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright italic2", "LucidaBrightItalic.ttf");
+ jreFontMap.put("lucida bright italic3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright bold italic3",
+ "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright demibold italic3",
+ "LucidaBrightDemiItalic.ttf");
+ for (String ffile : jreFontMap.values()) {
+ jreLucidaFontFiles.add(ffile);
+ }
+ }
+
+ static {
+
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+
+ public Object run() {
+ FontManagerNativeLibrary.load();
+
+ // JNI throws an exception if a class/method/field is not found,
+ // so there's no need to do anything explicit here.
+ initIDs();
+
+ switch (StrikeCache.nativeAddressSize) {
+ case 8: longAddresses = true; break;
+ case 4: longAddresses = false; break;
+ default: throw new RuntimeException("Unexpected address size");
+ }
+
+ noType1Font =
+ "true".equals(System.getProperty("sun.java2d.noType1Font"));
+ jreLibDirName =
+ System.getProperty("java.home","") + File.separator + "lib";
+ jreFontDirName = jreLibDirName + File.separator + "fonts";
+ File lucidaFile =
+ new File(jreFontDirName + File.separator + FontUtilities.LUCIDA_FILE_NAME);
+
+ return null;
+ }
+ });
+ }
+
+ public TrueTypeFont getEUDCFont() {
+ // Overridden in Windows.
+ return null;
+ }
+
+ /* Initialise ptrs used by JNI methods */
+ private static native void initIDs();
+
+ @SuppressWarnings("unchecked")
+ protected SunFontManager() {
+
+ initJREFontMap();
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ File badFontFile =
+ new File(jreFontDirName + File.separator +
+ "badfonts.txt");
+ if (badFontFile.exists()) {
+ FileInputStream fis = null;
+ try {
+ badFonts = new ArrayList();
+ fis = new FileInputStream(badFontFile);
+ InputStreamReader isr = new InputStreamReader(fis);
+ BufferedReader br = new BufferedReader(isr);
+ while (true) {
+ String name = br.readLine();
+ if (name == null) {
+ break;
+ } else {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger().warning("read bad font: " +
+ name);
+ }
+ badFonts.add(name);
+ }
+ }
+ } catch (IOException e) {
+ try {
+ if (fis != null) {
+ fis.close();
+ }
+ } catch (IOException ioe) {
+ }
+ }
+ }
+
+ /* Here we get the fonts in jre/lib/fonts and register
+ * them so they are always available and preferred over
+ * other fonts. This needs to be registered before the
+ * composite fonts as otherwise some native font that
+ * corresponds may be found as we don't have a way to
+ * handle two fonts of the same name, so the JRE one
+ * must be the first one registered. Pass "true" to
+ * registerFonts method as on-screen these JRE fonts
+ * always go through the T2K rasteriser.
+ */
+ if (FontUtilities.isLinux) {
+ /* Linux font configuration uses these fonts */
+ registerFontDir(jreFontDirName);
+ }
+ registerFontsInDir(jreFontDirName, true, Font2D.JRE_RANK,
+ true, false);
+
+ /* Create the font configuration and get any font path
+ * that might be specified.
+ */
+ fontConfig = createFontConfiguration();
+ if (isOpenJDK()) {
+ String[] fontInfo = getDefaultPlatformFont();
+ defaultFontName = fontInfo[0];
+ defaultFontFileName = fontInfo[1];
+ }
+
+ String extraFontPath = fontConfig.getExtraFontPath();
+
+ /* In prior releases the debugging font path replaced
+ * all normally located font directories except for the
+ * JRE fonts dir. This directory is still always located
+ * and placed at the head of the path but as an
+ * augmentation to the previous behaviour the
+ * changes below allow you to additionally append to
+ * the font path by starting with append: or prepend by
+ * starting with a prepend: sign. Eg: to append
+ * -Dsun.java2d.fontpath=append:/usr/local/myfonts
+ * and to prepend
+ * -Dsun.java2d.fontpath=prepend:/usr/local/myfonts Disp
+ *
+ * If there is an appendedfontpath it in the font
+ * configuration it is used instead of searching the
+ * system for dirs.
+ * The behaviour of append and prepend is then similar
+ * to the normal case. ie it goes after what
+ * you prepend and * before what you append. If the
+ * sun.java2d.fontpath property is used, but it
+ * neither the append or prepend syntaxes is used then
+ * as except for the JRE dir the path is replaced and it
+ * is up to you to make sure that all the right
+ * directories are located. This is platform and
+ * locale-specific so its almost impossible to get
+ * right, so it should be used with caution.
+ */
+ boolean prependToPath = false;
+ boolean appendToPath = false;
+ String dbgFontPath =
+ System.getProperty("sun.java2d.fontpath");
+
+ if (dbgFontPath != null) {
+ if (dbgFontPath.startsWith("prepend:")) {
+ prependToPath = true;
+ dbgFontPath =
+ dbgFontPath.substring("prepend:".length());
+ } else if (dbgFontPath.startsWith("append:")) {
+ appendToPath = true;
+ dbgFontPath =
+ dbgFontPath.substring("append:".length());
+ }
+ }
+
+ if (FontUtilities.debugFonts()) {
+ PlatformLogger logger = FontUtilities.getLogger();
+ logger.info("JRE font directory: " + jreFontDirName);
+ logger.info("Extra font path: " + extraFontPath);
+ logger.info("Debug font path: " + dbgFontPath);
+ }
+
+ if (dbgFontPath != null) {
+ /* In debugging mode we register all the paths
+ * Caution: this is a very expensive call on Solaris:-
+ */
+ fontPath = getPlatformFontPath(noType1Font);
+
+ if (extraFontPath != null) {
+ fontPath =
+ extraFontPath + File.pathSeparator + fontPath;
+ }
+ if (appendToPath) {
+ fontPath =
+ fontPath + File.pathSeparator + dbgFontPath;
+ } else if (prependToPath) {
+ fontPath =
+ dbgFontPath + File.pathSeparator + fontPath;
+ } else {
+ fontPath = dbgFontPath;
+ }
+ registerFontDirs(fontPath);
+ } else if (extraFontPath != null) {
+ /* If the font configuration contains an
+ * "appendedfontpath" entry, it is interpreted as a
+ * set of locations that should always be registered.
+ * It may be additional to locations normally found
+ * for that place, or it may be locations that need
+ * to have all their paths registered to locate all
+ * the needed platform names.
+ * This is typically when the same .TTF file is
+ * referenced from multiple font.dir files and all
+ * of these must be read to find all the native
+ * (XLFD) names for the font, so that X11 font APIs
+ * can be used for as many code points as possible.
+ */
+ registerFontDirs(extraFontPath);
+ }
+
+ /* On Solaris, we need to register the Japanese TrueType
+ * directory so that we can find the corresponding
+ * bitmap fonts. This could be done by listing the
+ * directory in the font configuration file, but we
+ * don't want to confuse users with this quirk. There
+ * are no bitmap fonts for other writing systems that
+ * correspond to TrueType fonts and have matching XLFDs.
+ * We need to register the bitmap fonts only in
+ * environments where they're on the X font path, i.e.,
+ * in the Japanese locale. Note that if the X Toolkit
+ * is in use the font path isn't set up by JDK, but
+ * users of a JA locale should have it
+ * set up already by their login environment.
+ */
+ if (FontUtilities.isSolaris && Locale.JAPAN.equals(Locale.getDefault())) {
+ registerFontDir("/usr/openwin/lib/locale/ja/X11/fonts/TT");
+ }
+
+ initCompositeFonts(fontConfig, null);
+
+ return null;
+ }
+ });
+
+ boolean platformFont = AccessController.doPrivileged(
+ new PrivilegedAction<Boolean>() {
+ public Boolean run() {
+ String prop =
+ System.getProperty("java2d.font.usePlatformFont");
+ String env = System.getenv("JAVA2D_USEPLATFORMFONT");
+ return "true".equals(prop) || env != null;
+ }
+ });
+
+ if (platformFont) {
+ usePlatformFontMetrics = true;
+ System.out.println("Enabling platform font metrics for win32. This is an unsupported option.");
+ System.out.println("This yields incorrect composite font metrics as reported by 1.1.x releases.");
+ System.out.println("It is appropriate only for use by applications which do not use any Java 2");
+ System.out.println("functionality. This property will be removed in a later release.");
+ }
+ }
+
+ /**
+ * This method is provided for internal and exclusive use by Swing.
+ *
+ * @param font representing a physical font.
+ * @return true if the underlying font is a TrueType or OpenType font
+ * that claims to support the Microsoft Windows encoding corresponding to
+ * the default file.encoding property of this JRE instance.
+ * This narrow value is useful for Swing to decide if the font is useful
+ * for the the Windows Look and Feel, or, if a composite font should be
+ * used instead.
+ * The information used to make the decision is obtained from
+ * the ulCodePageRange fields in the font.
+ * A caller can use isLogicalFont(Font) in this class before calling
+ * this method and would not need to call this method if that
+ * returns true.
+ */
+// static boolean fontSupportsDefaultEncoding(Font font) {
+// String encoding =
+// (String) java.security.AccessController.doPrivileged(
+// new sun.security.action.GetPropertyAction("file.encoding"));
+
+// if (encoding == null || font == null) {
+// return false;
+// }
+
+// encoding = encoding.toLowerCase(Locale.ENGLISH);
+
+// return FontManager.fontSupportsEncoding(font, encoding);
+// }
+
+ public Font2DHandle getNewComposite(String family, int style,
+ Font2DHandle handle) {
+
+ if (!(handle.font2D instanceof CompositeFont)) {
+ return handle;
+ }
+
+ CompositeFont oldComp = (CompositeFont)handle.font2D;
+ PhysicalFont oldFont = oldComp.getSlotFont(0);
+
+ if (family == null) {
+ family = oldFont.getFamilyName(null);
+ }
+ if (style == -1) {
+ style = oldComp.getStyle();
+ }
+
+ Font2D newFont = findFont2D(family, style, NO_FALLBACK);
+ if (!(newFont instanceof PhysicalFont)) {
+ newFont = oldFont;
+ }
+ PhysicalFont physicalFont = (PhysicalFont)newFont;
+ CompositeFont dialog2D =
+ (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
+ if (dialog2D == null) { /* shouldn't happen */
+ return handle;
+ }
+ CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
+ Font2DHandle newHandle = new Font2DHandle(compFont);
+ return newHandle;
+ }
+
+ protected void registerCompositeFont(String compositeName,
+ String[] componentFileNames,
+ String[] componentNames,
+ int numMetricsSlots,
+ int[] exclusionRanges,
+ int[] exclusionMaxIndex,
+ boolean defer) {
+
+ CompositeFont cf = new CompositeFont(compositeName,
+ componentFileNames,
+ componentNames,
+ numMetricsSlots,
+ exclusionRanges,
+ exclusionMaxIndex, defer, this);
+ addCompositeToFontList(cf, Font2D.FONT_CONFIG_RANK);
+ synchronized (compFonts) {
+ compFonts[maxCompFont++] = cf;
+ }
+ }
+
+ /* This variant is used only when the application specifies
+ * a variant of composite fonts which prefers locale specific or
+ * proportional fonts.
+ */
+ protected static void registerCompositeFont(String compositeName,
+ String[] componentFileNames,
+ String[] componentNames,
+ int numMetricsSlots,
+ int[] exclusionRanges,
+ int[] exclusionMaxIndex,
+ boolean defer,
+ ConcurrentHashMap<String, Font2D>
+ altNameCache) {
+
+ CompositeFont cf = new CompositeFont(compositeName,
+ componentFileNames,
+ componentNames,
+ numMetricsSlots,
+ exclusionRanges,
+ exclusionMaxIndex, defer,
+ SunFontManager.getInstance());
+
+ /* if the cache has an existing composite for this case, make
+ * its handle point to this new font.
+ * This ensures that when the altNameCache that is passed in
+ * is the global mapNameCache - ie we are running as an application -
+ * that any statically created java.awt.Font instances which already
+ * have a Font2D instance will have that re-directed to the new Font
+ * on subsequent uses. This is particularly important for "the"
+ * default font instance, or similar cases where a UI toolkit (eg
+ * Swing) has cached a java.awt.Font. Note that if Swing is using
+ * a custom composite APIs which update the standard composites have
+ * no effect - this is typically the case only when using the Windows
+ * L&F where these APIs would conflict with that L&F anyway.
+ */
+ Font2D oldFont = (Font2D)
+ altNameCache.get(compositeName.toLowerCase(Locale.ENGLISH));
+ if (oldFont instanceof CompositeFont) {
+ oldFont.handle.font2D = cf;
+ }
+ altNameCache.put(compositeName.toLowerCase(Locale.ENGLISH), cf);
+ }
+
+ private void addCompositeToFontList(CompositeFont f, int rank) {
+
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().info("Add to Family "+ f.familyName +
+ ", Font " + f.fullName + " rank="+rank);
+ }
+ f.setRank(rank);
+ compositeFonts.put(f.fullName, f);
+ fullNameToFont.put(f.fullName.toLowerCase(Locale.ENGLISH), f);
+
+ FontFamily family = FontFamily.getFamily(f.familyName);
+ if (family == null) {
+ family = new FontFamily(f.familyName, true, rank);
+ }
+ family.setFont(f, f.style);
+ }
+
+ /*
+ * Systems may have fonts with the same name.
+ * We want to register only one of such fonts (at least until
+ * such time as there might be APIs which can accommodate > 1).
+ * Rank is 1) font configuration fonts, 2) JRE fonts, 3) OT/TT fonts,
+ * 4) Type1 fonts, 5) native fonts.
+ *
+ * If the new font has the same name as the old font, the higher
+ * ranked font gets added, replacing the lower ranked one.
+ * If the fonts are of equal rank, then make a special case of
+ * font configuration rank fonts, which are on closer inspection,
+ * OT/TT fonts such that the larger font is registered. This is
+ * a heuristic since a font may be "larger" in the sense of more
+ * code points, or be a larger "file" because it has more bitmaps.
+ * So it is possible that using filesize may lead to less glyphs, and
+ * using glyphs may lead to lower quality display. Probably number
+ * of glyphs is the ideal, but filesize is information we already
+ * have and is good enough for the known cases.
+ * Also don't want to register fonts that match JRE font families
+ * but are coming from a source other than the JRE.
+ * This will ensure that we will algorithmically style the JRE
+ * plain font and get the same set of glyphs for all styles.
+ *
+ * Note that this method returns a value
+ * if it returns the same object as its argument that means this
+ * font was newly registered.
+ * If it returns a different object it means this font already exists,
+ * and you should use that one.
+ * If it returns null means this font was not registered and none
+ * in that name is registered. The caller must find a substitute
+ */
+ private PhysicalFont addToFontList(PhysicalFont f, int rank) {
+
+ String fontName = f.fullName;
+ String familyName = f.familyName;
+ if (fontName == null || "".equals(fontName)) {
+ return null;
+ }
+ if (compositeFonts.containsKey(fontName)) {
+ /* Don't register any font that has the same name as a composite */
+ return null;
+ }
+ f.setRank(rank);
+ if (!physicalFonts.containsKey(fontName)) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().info("Add to Family "+familyName +
+ ", Font " + fontName + " rank="+rank);
+ }
+ physicalFonts.put(fontName, f);
+ FontFamily family = FontFamily.getFamily(familyName);
+ if (family == null) {
+ family = new FontFamily(familyName, false, rank);
+ family.setFont(f, f.style);
+ } else if (family.getRank() >= rank) {
+ family.setFont(f, f.style);
+ }
+ fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH), f);
+ return f;
+ } else {
+ PhysicalFont newFont = f;
+ PhysicalFont oldFont = physicalFonts.get(fontName);
+ if (oldFont == null) {
+ return null;
+ }
+ /* If the new font is of an equal or higher rank, it is a
+ * candidate to replace the current one, subject to further tests.
+ */
+ if (oldFont.getRank() >= rank) {
+
+ /* All fonts initialise their mapper when first
+ * used. If the mapper is non-null then this font
+ * has been accessed at least once. In that case
+ * do not replace it. This may be overly stringent,
+ * but its probably better not to replace a font that
+ * someone is already using without a compelling reason.
+ * Additionally the primary case where it is known
+ * this behaviour is important is in certain composite
+ * fonts, and since all the components of a given
+ * composite are usually initialised together this
+ * is unlikely. For this to be a problem, there would
+ * have to be a case where two different composites used
+ * different versions of the same-named font, and they
+ * were initialised and used at separate times.
+ * In that case we continue on and allow the new font to
+ * be installed, but replaceFont will continue to allow
+ * the original font to be used in Composite fonts.
+ */
+ if (oldFont.mapper != null && rank > Font2D.FONT_CONFIG_RANK) {
+ return oldFont;
+ }
+
+ /* Normally we require a higher rank to replace a font,
+ * but as a special case, if the two fonts are the same rank,
+ * and are instances of TrueTypeFont we want the
+ * more complete (larger) one.
+ */
+ if (oldFont.getRank() == rank) {
+ if (oldFont instanceof TrueTypeFont &&
+ newFont instanceof TrueTypeFont) {
+ TrueTypeFont oldTTFont = (TrueTypeFont)oldFont;
+ TrueTypeFont newTTFont = (TrueTypeFont)newFont;
+ if (oldTTFont.fileSize >= newTTFont.fileSize) {
+ return oldFont;
+ }
+ } else {
+ return oldFont;
+ }
+ }
+ /* Don't replace ever JRE fonts.
+ * This test is in case a font configuration references
+ * a Lucida font, which has been mapped to a Lucida
+ * from the host O/S. The assumption here is that any
+ * such font configuration file is probably incorrect, or
+ * the host O/S version is for the use of AWT.
+ * In other words if we reach here, there's a possible
+ * problem with our choice of font configuration fonts.
+ */
+ if (oldFont.platName.startsWith(jreFontDirName)) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .warning("Unexpected attempt to replace a JRE " +
+ " font " + fontName + " from " +
+ oldFont.platName +
+ " with " + newFont.platName);
+ }
+ return oldFont;
+ }
+
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Replace in Family " + familyName +
+ ",Font " + fontName + " new rank="+rank +
+ " from " + oldFont.platName +
+ " with " + newFont.platName);
+ }
+ replaceFont(oldFont, newFont);
+ physicalFonts.put(fontName, newFont);
+ fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH),
+ newFont);
+
+ FontFamily family = FontFamily.getFamily(familyName);
+ if (family == null) {
+ family = new FontFamily(familyName, false, rank);
+ family.setFont(newFont, newFont.style);
+ } else if (family.getRank() >= rank) {
+ family.setFont(newFont, newFont.style);
+ }
+ return newFont;
+ } else {
+ return oldFont;
+ }
+ }
+ }
+
+ public Font2D[] getRegisteredFonts() {
+ PhysicalFont[] physFonts = getPhysicalFonts();
+ int mcf = maxCompFont; /* for MT-safety */
+ Font2D[] regFonts = new Font2D[physFonts.length+mcf];
+ System.arraycopy(compFonts, 0, regFonts, 0, mcf);
+ System.arraycopy(physFonts, 0, regFonts, mcf, physFonts.length);
+ return regFonts;
+ }
+
+ protected PhysicalFont[] getPhysicalFonts() {
+ return physicalFonts.values().toArray(new PhysicalFont[0]);
+ }
+
+
+ /* The class FontRegistrationInfo is used when a client says not
+ * to register a font immediately. This mechanism is used to defer
+ * initialisation of all the components of composite fonts at JRE
+ * start-up. The CompositeFont class is "aware" of this and when it
+ * is first used it asks for the registration of its components.
+ * Also in the event that any physical font is requested the
+ * deferred fonts are initialised before triggering a search of the
+ * system.
+ * Two maps are used. One to track the deferred fonts. The
+ * other to track the fonts that have been initialised through this
+ * mechanism.
+ */
+
+ private static final class FontRegistrationInfo {
+
+ String fontFilePath;
+ String[] nativeNames;
+ int fontFormat;
+ boolean javaRasterizer;
+ int fontRank;
+
+ FontRegistrationInfo(String fontPath, String[] names, int format,
+ boolean useJavaRasterizer, int rank) {
+ this.fontFilePath = fontPath;
+ this.nativeNames = names;
+ this.fontFormat = format;
+ this.javaRasterizer = useJavaRasterizer;
+ this.fontRank = rank;
+ }
+ }
+
+ private final ConcurrentHashMap<String, FontRegistrationInfo>
+ deferredFontFiles =
+ new ConcurrentHashMap<String, FontRegistrationInfo>();
+ private final ConcurrentHashMap<String, Font2DHandle>
+ initialisedFonts = new ConcurrentHashMap<String, Font2DHandle>();
+
+ /* Remind: possibly enhance initialiseDeferredFonts() to be
+ * optionally given a name and a style and it could stop when it
+ * finds that font - but this would be a problem if two of the
+ * fonts reference the same font face name (cf the Solaris
+ * euro fonts).
+ */
+ protected synchronized void initialiseDeferredFonts() {
+ for (String fileName : deferredFontFiles.keySet()) {
+ initialiseDeferredFont(fileName);
+ }
+ }
+
+ protected synchronized void registerDeferredJREFonts(String jreDir) {
+ for (FontRegistrationInfo info : deferredFontFiles.values()) {
+ if (info.fontFilePath != null &&
+ info.fontFilePath.startsWith(jreDir)) {
+ initialiseDeferredFont(info.fontFilePath);
+ }
+ }
+ }
+
+ public boolean isDeferredFont(String fileName) {
+ return deferredFontFiles.containsKey(fileName);
+ }
+
+ /* We keep a map of the files which contain the Lucida fonts so we
+ * don't need to search for them.
+ * But since we know what fonts these files contain, we can also avoid
+ * opening them to look for a font name we don't recognise - see
+ * findDeferredFont().
+ * For typical cases where the font isn't a JRE one the overhead is
+ * this method call, HashMap.get() and null reference test, then
+ * a boolean test of noOtherJREFontFiles.
+ */
+ public
+ /*private*/ PhysicalFont findJREDeferredFont(String name, int style) {
+
+ PhysicalFont physicalFont;
+ String nameAndStyle = name.toLowerCase(Locale.ENGLISH) + style;
+ String fileName = jreFontMap.get(nameAndStyle);
+ if (fileName != null) {
+ fileName = jreFontDirName + File.separator + fileName;
+ if (deferredFontFiles.get(fileName) != null) {
+ physicalFont = initialiseDeferredFont(fileName);
+ if (physicalFont != null &&
+ (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
+ physicalFont.getFamilyName(null).equalsIgnoreCase(name))
+ && physicalFont.style == style) {
+ return physicalFont;
+ }
+ }
+ }
+
+ /* Iterate over the deferred font files looking for any in the
+ * jre directory that we didn't recognise, open each of these.
+ * In almost all installations this will quickly fall through
+ * because only the Lucidas will be present and jreOtherFontFiles
+ * will be empty.
+ * noOtherJREFontFiles is used so we can skip this block as soon
+ * as its determined that its not needed - almost always after the
+ * very first time through.
+ */
+ if (noOtherJREFontFiles) {
+ return null;
+ }
+ synchronized (jreLucidaFontFiles) {
+ if (jreOtherFontFiles == null) {
+ HashSet<String> otherFontFiles = new HashSet<String>();
+ for (String deferredFile : deferredFontFiles.keySet()) {
+ File file = new File(deferredFile);
+ String dir = file.getParent();
+ String fname = file.getName();
+ /* skip names which aren't absolute, aren't in the JRE
+ * directory, or are known Lucida fonts.
+ */
+ if (dir == null ||
+ !dir.equals(jreFontDirName) ||
+ jreLucidaFontFiles.contains(fname)) {
+ continue;
+ }
+ otherFontFiles.add(deferredFile);
+ }
+ jreOtherFontFiles = otherFontFiles.toArray(STR_ARRAY);
+ if (jreOtherFontFiles.length == 0) {
+ noOtherJREFontFiles = true;
+ }
+ }
+
+ for (int i=0; i<jreOtherFontFiles.length;i++) {
+ fileName = jreOtherFontFiles[i];
+ if (fileName == null) {
+ continue;
+ }
+ jreOtherFontFiles[i] = null;
+ physicalFont = initialiseDeferredFont(fileName);
+ if (physicalFont != null &&
+ (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
+ physicalFont.getFamilyName(null).equalsIgnoreCase(name))
+ && physicalFont.style == style) {
+ return physicalFont;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /* This skips JRE installed fonts. */
+ private PhysicalFont findOtherDeferredFont(String name, int style) {
+ for (String fileName : deferredFontFiles.keySet()) {
+ File file = new File(fileName);
+ String dir = file.getParent();
+ String fname = file.getName();
+ if (dir != null &&
+ dir.equals(jreFontDirName) &&
+ jreLucidaFontFiles.contains(fname)) {
+ continue;
+ }
+ PhysicalFont physicalFont = initialiseDeferredFont(fileName);
+ if (physicalFont != null &&
+ (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
+ physicalFont.getFamilyName(null).equalsIgnoreCase(name)) &&
+ physicalFont.style == style) {
+ return physicalFont;
+ }
+ }
+ return null;
+ }
+
+ private PhysicalFont findDeferredFont(String name, int style) {
+
+ PhysicalFont physicalFont = findJREDeferredFont(name, style);
+ if (physicalFont != null) {
+ return physicalFont;
+ } else {
+ return findOtherDeferredFont(name, style);
+ }
+ }
+
+ public void registerDeferredFont(String fileNameKey,
+ String fullPathName,
+ String[] nativeNames,
+ int fontFormat,
+ boolean useJavaRasterizer,
+ int fontRank) {
+ FontRegistrationInfo regInfo =
+ new FontRegistrationInfo(fullPathName, nativeNames, fontFormat,
+ useJavaRasterizer, fontRank);
+ deferredFontFiles.put(fileNameKey, regInfo);
+ }
+
+
+ public synchronized
+ PhysicalFont initialiseDeferredFont(String fileNameKey) {
+
+ if (fileNameKey == null) {
+ return null;
+ }
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Opening deferred font file " + fileNameKey);
+ }
+
+ PhysicalFont physicalFont;
+ FontRegistrationInfo regInfo = deferredFontFiles.get(fileNameKey);
+ if (regInfo != null) {
+ deferredFontFiles.remove(fileNameKey);
+ physicalFont = registerFontFile(regInfo.fontFilePath,
+ regInfo.nativeNames,
+ regInfo.fontFormat,
+ regInfo.javaRasterizer,
+ regInfo.fontRank);
+
+
+ if (physicalFont != null) {
+ /* Store the handle, so that if a font is bad, we
+ * retrieve the substituted font.
+ */
+ initialisedFonts.put(fileNameKey, physicalFont.handle);
+ } else {
+ initialisedFonts.put(fileNameKey,
+ getDefaultPhysicalFont().handle);
+ }
+ } else {
+ Font2DHandle handle = initialisedFonts.get(fileNameKey);
+ if (handle == null) {
+ /* Probably shouldn't happen, but just in case */
+ physicalFont = getDefaultPhysicalFont();
+ } else {
+ physicalFont = (PhysicalFont)(handle.font2D);
+ }
+ }
+ return physicalFont;
+ }
+
+ public boolean isRegisteredFontFile(String name) {
+ return registeredFonts.containsKey(name);
+ }
+
+ public PhysicalFont getRegisteredFontFile(String name) {
+ return registeredFonts.get(name);
+ }
+
+ /* Note that the return value from this method is not always
+ * derived from this file, and may be null. See addToFontList for
+ * some explanation of this.
+ */
+ public PhysicalFont registerFontFile(String fileName,
+ String[] nativeNames,
+ int fontFormat,
+ boolean useJavaRasterizer,
+ int fontRank) {
+
+ PhysicalFont regFont = registeredFonts.get(fileName);
+ if (regFont != null) {
+ return regFont;
+ }
+
+ PhysicalFont physicalFont = null;
+ try {
+ String name;
+
+ switch (fontFormat) {
+
+ case FONTFORMAT_TRUETYPE:
+ int fn = 0;
+ TrueTypeFont ttf;
+ do {
+ ttf = new TrueTypeFont(fileName, nativeNames, fn++,
+ useJavaRasterizer);
+ PhysicalFont pf = addToFontList(ttf, fontRank);
+ if (physicalFont == null) {
+ physicalFont = pf;
+ }
+ }
+ while (fn < ttf.getFontCount());
+ break;
+
+ case FONTFORMAT_TYPE1:
+ Type1Font t1f = new Type1Font(fileName, nativeNames);
+ physicalFont = addToFontList(t1f, fontRank);
+ break;
+
+ case FONTFORMAT_NATIVE:
+ NativeFont nf = new NativeFont(fileName, false);
+ physicalFont = addToFontList(nf, fontRank);
+ default:
+
+ }
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Registered file " + fileName + " as font " +
+ physicalFont + " rank=" + fontRank);
+ }
+ } catch (FontFormatException ffe) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().warning("Unusable font: " +
+ fileName + " " + ffe.toString());
+ }
+ }
+ if (physicalFont != null &&
+ fontFormat != FONTFORMAT_NATIVE) {
+ registeredFonts.put(fileName, physicalFont);
+ }
+ return physicalFont;
+ }
+
+ public void registerFonts(String[] fileNames,
+ String[][] nativeNames,
+ int fontCount,
+ int fontFormat,
+ boolean useJavaRasterizer,
+ int fontRank, boolean defer) {
+
+ for (int i=0; i < fontCount; i++) {
+ if (defer) {
+ registerDeferredFont(fileNames[i],fileNames[i], nativeNames[i],
+ fontFormat, useJavaRasterizer, fontRank);
+ } else {
+ registerFontFile(fileNames[i], nativeNames[i],
+ fontFormat, useJavaRasterizer, fontRank);
+ }
+ }
+ }
+
+ /*
+ * This is the Physical font used when some other font on the system
+ * can't be located. There has to be at least one font or the font
+ * system is not useful and the graphics environment cannot sustain
+ * the Java platform.
+ */
+ public PhysicalFont getDefaultPhysicalFont() {
+ if (defaultPhysicalFont == null) {
+ /* findFont2D will load all fonts before giving up the search.
+ * If the JRE Lucida isn't found (eg because the JRE fonts
+ * directory is missing), it could find another version of Lucida
+ * from the host system. This is OK because at that point we are
+ * trying to gracefully handle/recover from a system
+ * misconfiguration and this is probably a reasonable substitution.
+ */
+ defaultPhysicalFont = (PhysicalFont)
+ findFont2D("Lucida Sans Regular", Font.PLAIN, NO_FALLBACK);
+ if (defaultPhysicalFont == null) {
+ defaultPhysicalFont = (PhysicalFont)
+ findFont2D("Arial", Font.PLAIN, NO_FALLBACK);
+ }
+ if (defaultPhysicalFont == null) {
+ /* Because of the findFont2D call above, if we reach here, we
+ * know all fonts have already been loaded, just accept any
+ * match at this point. If this fails we are in real trouble
+ * and I don't know how to recover from there being absolutely
+ * no fonts anywhere on the system.
+ */
+ Iterator i = physicalFonts.values().iterator();
+ if (i.hasNext()) {
+ defaultPhysicalFont = (PhysicalFont)i.next();
+ } else {
+ throw new Error("Probable fatal error:No fonts found.");
+ }
+ }
+ }
+ return defaultPhysicalFont;
+ }
+
+ public CompositeFont getDefaultLogicalFont(int style) {
+ return (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
+ }
+
+ /*
+ * return String representation of style prepended with "."
+ * This is useful for performance to avoid unnecessary string operations.
+ */
+ private static String dotStyleStr(int num) {
+ switch(num){
+ case Font.BOLD:
+ return ".bold";
+ case Font.ITALIC:
+ return ".italic";
+ case Font.ITALIC | Font.BOLD:
+ return ".bolditalic";
+ default:
+ return ".plain";
+ }
+ }
+
+ /* This is implemented only on windows and is called from code that
+ * executes only on windows. This isn't pretty but its not a precedent
+ * in this file. This very probably should be cleaned up at some point.
+ */
+ protected void
+ populateFontFileNameMap(HashMap<String,String> fontToFileMap,
+ HashMap<String,String> fontToFamilyNameMap,
+ HashMap<String,ArrayList<String>>
+ familyToFontListMap,
+ Locale locale) {
+ }
+
+ /* Obtained from Platform APIs (windows only)
+ * Map from lower-case font full name to basename of font file.
+ * Eg "arial bold" -> ARIALBD.TTF.
+ * For TTC files, there is a mapping for each font in the file.
+ */
+ private HashMap<String,String> fontToFileMap = null;
+
+ /* Obtained from Platform APIs (windows only)
+ * Map from lower-case font full name to the name of its font family
+ * Eg "arial bold" -> "Arial"
+ */
+ private HashMap<String,String> fontToFamilyNameMap = null;
+
+ /* Obtained from Platform APIs (windows only)
+ * Map from a lower-case family name to a list of full names of
+ * the member fonts, eg:
+ * "arial" -> ["Arial", "Arial Bold", "Arial Italic","Arial Bold Italic"]
+ */
+ private HashMap<String,ArrayList<String>> familyToFontListMap= null;
+
+ /* The directories which contain platform fonts */
+ private String[] pathDirs = null;
+
+ private boolean haveCheckedUnreferencedFontFiles;
+
+ private String[] getFontFilesFromPath(boolean noType1) {
+ final FilenameFilter filter;
+ if (noType1) {
+ filter = ttFilter;
+ } else {
+ filter = new TTorT1Filter();
+ }
+ return (String[])AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ if (pathDirs.length == 1) {
+ File dir = new File(pathDirs[0]);
+ String[] files = dir.list(filter);
+ if (files == null) {
+ return new String[0];
+ }
+ for (int f=0; f<files.length; f++) {
+ files[f] = files[f].toLowerCase();
+ }
+ return files;
+ } else {
+ ArrayList<String> fileList = new ArrayList<String>();
+ for (int i = 0; i< pathDirs.length; i++) {
+ File dir = new File(pathDirs[i]);
+ String[] files = dir.list(filter);
+ if (files == null) {
+ continue;
+ }
+ for (int f=0; f<files.length ; f++) {
+ fileList.add(files[f].toLowerCase());
+ }
+ }
+ return fileList.toArray(STR_ARRAY);
+ }
+ }
+ });
+ }
+
+ /* This is needed since some windows registry names don't match
+ * the font names.
+ * - UPC styled font names have a double space, but the
+ * registry entry mapping to a file doesn't.
+ * - Marlett is in a hidden file not listed in the registry
+ * - The registry advertises that the file david.ttf contains a
+ * font with the full name "David Regular" when in fact its
+ * just "David".
+ * Directly fix up these known cases as this is faster.
+ * If a font which doesn't match these known cases has no file,
+ * it may be a font that has been temporarily added to the known set
+ * or it may be an installed font with a missing registry entry.
+ * Installed fonts are those in the windows font directories.
+ * Make a best effort attempt to locate these.
+ * We obtain the list of TrueType fonts in these directories and
+ * filter out all the font files we already know about from the registry.
+ * What remains may be "bad" fonts, duplicate fonts, or perhaps the
+ * missing font(s) we are looking for.
+ * Open each of these files to find out.
+ */
+ private void resolveWindowsFonts() {
+
+ ArrayList<String> unmappedFontNames = null;
+ for (String font : fontToFamilyNameMap.keySet()) {
+ String file = fontToFileMap.get(font);
+ if (file == null) {
+ if (font.indexOf(" ") > 0) {
+ String newName = font.replaceFirst(" ", " ");
+ file = fontToFileMap.get(newName);
+ /* If this name exists and isn't for a valid name
+ * replace the mapping to the file with this font
+ */
+ if (file != null &&
+ !fontToFamilyNameMap.containsKey(newName)) {
+ fontToFileMap.remove(newName);
+ fontToFileMap.put(font, file);
+ }
+ } else if (font.equals("marlett")) {
+ fontToFileMap.put(font, "marlett.ttf");
+ } else if (font.equals("david")) {
+ file = fontToFileMap.get("david regular");
+ if (file != null) {
+ fontToFileMap.remove("david regular");
+ fontToFileMap.put("david", file);
+ }
+ } else {
+ if (unmappedFontNames == null) {
+ unmappedFontNames = new ArrayList<String>();
+ }
+ unmappedFontNames.add(font);
+ }
+ }
+ }
+
+ if (unmappedFontNames != null) {
+ HashSet<String> unmappedFontFiles = new HashSet<String>();
+
+ /* Every font key in fontToFileMap ought to correspond to a
+ * font key in fontToFamilyNameMap. Entries that don't seem
+ * to correspond are likely fonts that were named differently
+ * by GDI than in the registry. One known cause of this is when
+ * Windows has had its regional settings changed so that from
+ * GDI we get a localised (eg Chinese or Japanese) name for the
+ * font, but the registry retains the English version of the name
+ * that corresponded to the "install" locale for windows.
+ * Since we are in this code block because there are unmapped
+ * font names, we can look to find unused font->file mappings
+ * and then open the files to read the names. We don't generally
+ * want to open font files, as its a performance hit, but this
+ * occurs only for a small number of fonts on specific system
+ * configs - ie is believed that a "true" Japanese windows would
+ * have JA names in the registry too.
+ * Clone fontToFileMap and remove from the clone all keys which
+ * match a fontToFamilyNameMap key. What remains maps to the
+ * files we want to open to find the fonts GDI returned.
+ * A font in such a file is added to the fontToFileMap after
+ * checking its one of the unmappedFontNames we are looking for.
+ * The original name that didn't map is removed from fontToFileMap
+ * so essentially this "fixes up" fontToFileMap to use the same
+ * name as GDI.
+ * Also note that typically the fonts for which this occurs in
+ * CJK locales are TTC fonts and not all fonts in a TTC may have
+ * localised names. Eg MSGOTHIC.TTC contains 3 fonts and one of
+ * them "MS UI Gothic" has no JA name whereas the other two do.
+ * So not every font in these files is unmapped or new.
+ */
+ HashMap<String,String> ffmapCopy =
+ (HashMap<String,String>)(fontToFileMap.clone());
+ for (String key : fontToFamilyNameMap.keySet()) {
+ ffmapCopy.remove(key);
+ }
+ for (String key : ffmapCopy.keySet()) {
+ unmappedFontFiles.add(ffmapCopy.get(key));
+ fontToFileMap.remove(key);
+ }
+
+ resolveFontFiles(unmappedFontFiles, unmappedFontNames);
+
+ /* If there are still unmapped font names, this means there's
+ * something that wasn't in the registry. We need to get all
+ * the font files directly and look at the ones that weren't
+ * found in the registry.
+ */
+ if (unmappedFontNames.size() > 0) {
+
+ /* getFontFilesFromPath() returns all lower case names.
+ * To compare we also need lower case
+ * versions of the names from the registry.
+ */
+ ArrayList<String> registryFiles = new ArrayList<String>();
+
+ for (String regFile : fontToFileMap.values()) {
+ registryFiles.add(regFile.toLowerCase());
+ }
+ /* We don't look for Type1 files here as windows will
+ * not enumerate these, so aren't useful in reconciling
+ * GDI's unmapped files. We do find these later when
+ * we enumerate all fonts.
+ */
+ for (String pathFile : getFontFilesFromPath(true)) {
+ if (!registryFiles.contains(pathFile)) {
+ unmappedFontFiles.add(pathFile);
+ }
+ }
+
+ resolveFontFiles(unmappedFontFiles, unmappedFontNames);
+ }
+
+ /* remove from the set of names that will be returned to the
+ * user any fonts that can't be mapped to files.
+ */
+ if (unmappedFontNames.size() > 0) {
+ int sz = unmappedFontNames.size();
+ for (int i=0; i<sz; i++) {
+ String name = unmappedFontNames.get(i);
+ String familyName = fontToFamilyNameMap.get(name);
+ if (familyName != null) {
+ ArrayList family = familyToFontListMap.get(familyName);
+ if (family != null) {
+ if (family.size() <= 1) {
+ familyToFontListMap.remove(familyName);
+ }
+ }
+ }
+ fontToFamilyNameMap.remove(name);
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("No file for font:" + name);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * In some cases windows may have fonts in the fonts folder that
+ * don't show up in the registry or in the GDI calls to enumerate fonts.
+ * The only way to find these is to list the directory. We invoke this
+ * only in getAllFonts/Families, so most searches for a specific
+ * font that is satisfied by the GDI/registry calls don't take the
+ * additional hit of listing the directory. This hit is small enough
+ * that its not significant in these 'enumerate all the fonts' cases.
+ * The basic approach is to cross-reference the files windows found
+ * with the ones in the directory listing approach, and for each
+ * in the latter list that is missing from the former list, register it.
+ */
+ private synchronized void checkForUnreferencedFontFiles() {
+ if (haveCheckedUnreferencedFontFiles) {
+ return;
+ }
+ haveCheckedUnreferencedFontFiles = true;
+ if (!FontUtilities.isWindows) {
+ return;
+ }
+ /* getFontFilesFromPath() returns all lower case names.
+ * To compare we also need lower case
+ * versions of the names from the registry.
+ */
+ ArrayList<String> registryFiles = new ArrayList<String>();
+ for (String regFile : fontToFileMap.values()) {
+ registryFiles.add(regFile.toLowerCase());
+ }
+
+ /* To avoid any issues with concurrent modification, create
+ * copies of the existing maps, add the new fonts into these
+ * and then replace the references to the old ones with the
+ * new maps. ConcurrentHashmap is another option but its a lot
+ * more changes and with this exception, these maps are intended
+ * to be static.
+ */
+ HashMap<String,String> fontToFileMap2 = null;
+ HashMap<String,String> fontToFamilyNameMap2 = null;
+ HashMap<String,ArrayList<String>> familyToFontListMap2 = null;;
+
+ for (String pathFile : getFontFilesFromPath(false)) {
+ if (!registryFiles.contains(pathFile)) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Found non-registry file : " + pathFile);
+ }
+ PhysicalFont f = registerFontFile(getPathName(pathFile));
+ if (f == null) {
+ continue;
+ }
+ if (fontToFileMap2 == null) {
+ fontToFileMap2 = new HashMap<String,String>(fontToFileMap);
+ fontToFamilyNameMap2 =
+ new HashMap<String,String>(fontToFamilyNameMap);
+ familyToFontListMap2 = new
+ HashMap<String,ArrayList<String>>(familyToFontListMap);
+ }
+ String fontName = f.getFontName(null);
+ String family = f.getFamilyName(null);
+ String familyLC = family.toLowerCase();
+ fontToFamilyNameMap2.put(fontName, family);
+ fontToFileMap2.put(fontName, pathFile);
+ ArrayList<String> fonts = familyToFontListMap2.get(familyLC);
+ if (fonts == null) {
+ fonts = new ArrayList<String>();
+ } else {
+ fonts = new ArrayList<String>(fonts);
+ }
+ fonts.add(fontName);
+ familyToFontListMap2.put(familyLC, fonts);
+ }
+ }
+ if (fontToFileMap2 != null) {
+ fontToFileMap = fontToFileMap2;
+ familyToFontListMap = familyToFontListMap2;
+ fontToFamilyNameMap = fontToFamilyNameMap2;
+ }
+ }
+
+ private void resolveFontFiles(HashSet<String> unmappedFiles,
+ ArrayList<String> unmappedFonts) {
+
+ Locale l = SunToolkit.getStartupLocale();
+
+ for (String file : unmappedFiles) {
+ try {
+ int fn = 0;
+ TrueTypeFont ttf;
+ String fullPath = getPathName(file);
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Trying to resolve file " + fullPath);
+ }
+ do {
+ ttf = new TrueTypeFont(fullPath, null, fn++, true);
+ // prefer the font's locale name.
+ String fontName = ttf.getFontName(l).toLowerCase();
+ if (unmappedFonts.contains(fontName)) {
+ fontToFileMap.put(fontName, file);
+ unmappedFonts.remove(fontName);
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Resolved absent registry entry for " +
+ fontName + " located in " + fullPath);
+ }
+ }
+ }
+ while (fn < ttf.getFontCount());
+ } catch (Exception e) {
+ }
+ }
+ }
+
+ private synchronized HashMap<String,String> getFullNameToFileMap() {
+ if (fontToFileMap == null) {
+
+ pathDirs = getPlatformFontDirs(noType1Font);
+
+ fontToFileMap = new HashMap<String,String>(100);
+ fontToFamilyNameMap = new HashMap<String,String>(100);
+ familyToFontListMap = new HashMap<String,ArrayList<String>>(50);
+ populateFontFileNameMap(fontToFileMap,
+ fontToFamilyNameMap,
+ familyToFontListMap,
+ Locale.ENGLISH);
+ if (FontUtilities.isWindows) {
+ resolveWindowsFonts();
+ }
+ if (FontUtilities.isLogging()) {
+ logPlatformFontInfo();
+ }
+ }
+ return fontToFileMap;
+ }
+
+ private void logPlatformFontInfo() {
+ PlatformLogger logger = FontUtilities.getLogger();
+ for (int i=0; i< pathDirs.length;i++) {
+ logger.info("fontdir="+pathDirs[i]);
+ }
+ for (String keyName : fontToFileMap.keySet()) {
+ logger.info("font="+keyName+" file="+ fontToFileMap.get(keyName));
+ }
+ for (String keyName : fontToFamilyNameMap.keySet()) {
+ logger.info("font="+keyName+" family="+
+ fontToFamilyNameMap.get(keyName));
+ }
+ for (String keyName : familyToFontListMap.keySet()) {
+ logger.info("family="+keyName+ " fonts="+
+ familyToFontListMap.get(keyName));
+ }
+ }
+
+ /* Note this return list excludes logical fonts and JRE fonts */
+ protected String[] getFontNamesFromPlatform() {
+ if (getFullNameToFileMap().size() == 0) {
+ return null;
+ }
+ checkForUnreferencedFontFiles();
+ /* This odd code with TreeMap is used to preserve a historical
+ * behaviour wrt the sorting order .. */
+ ArrayList<String> fontNames = new ArrayList<String>();
+ for (ArrayList<String> a : familyToFontListMap.values()) {
+ for (String s : a) {
+ fontNames.add(s);
+ }
+ }
+ return fontNames.toArray(STR_ARRAY);
+ }
+
+ public boolean gotFontsFromPlatform() {
+ return getFullNameToFileMap().size() != 0;
+ }
+
+ public String getFileNameForFontName(String fontName) {
+ String fontNameLC = fontName.toLowerCase(Locale.ENGLISH);
+ return fontToFileMap.get(fontNameLC);
+ }
+
+ private PhysicalFont registerFontFile(String file) {
+ if (new File(file).isAbsolute() &&
+ !registeredFonts.contains(file)) {
+ int fontFormat = FONTFORMAT_NONE;
+ int fontRank = Font2D.UNKNOWN_RANK;
+ if (ttFilter.accept(null, file)) {
+ fontFormat = FONTFORMAT_TRUETYPE;
+ fontRank = Font2D.TTF_RANK;
+ } else if
+ (t1Filter.accept(null, file)) {
+ fontFormat = FONTFORMAT_TYPE1;
+ fontRank = Font2D.TYPE1_RANK;
+ }
+ if (fontFormat == FONTFORMAT_NONE) {
+ return null;
+ }
+ return registerFontFile(file, null, fontFormat, false, fontRank);
+ }
+ return null;
+ }
+
+ /* Used to register any font files that are found by platform APIs
+ * that weren't previously found in the standard font locations.
+ * the isAbsolute() check is needed since that's whats stored in the
+ * set, and on windows, the fonts in the system font directory that
+ * are in the fontToFileMap are just basenames. We don't want to try
+ * to register those again, but we do want to register other registry
+ * installed fonts.
+ */
+ protected void registerOtherFontFiles(HashSet registeredFontFiles) {
+ if (getFullNameToFileMap().size() == 0) {
+ return;
+ }
+ for (String file : fontToFileMap.values()) {
+ registerFontFile(file);
+ }
+ }
+
+ public boolean
+ getFamilyNamesFromPlatform(TreeMap<String,String> familyNames,
+ Locale requestedLocale) {
+ if (getFullNameToFileMap().size() == 0) {
+ return false;
+ }
+ checkForUnreferencedFontFiles();
+ for (String name : fontToFamilyNameMap.values()) {
+ familyNames.put(name.toLowerCase(requestedLocale), name);
+ }
+ return true;
+ }
+
+ /* Path may be absolute or a base file name relative to one of
+ * the platform font directories
+ */
+ private String getPathName(final String s) {
+ File f = new File(s);
+ if (f.isAbsolute()) {
+ return s;
+ } else if (pathDirs.length==1) {
+ return pathDirs[0] + File.separator + s;
+ } else {
+ String path = java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<String>() {
+ public String run() {
+ for (int p=0; p<pathDirs.length; p++) {
+ File f = new File(pathDirs[p] +File.separator+ s);
+ if (f.exists()) {
+ return f.getAbsolutePath();
+ }
+ }
+ return null;
+ }
+ });
+ if (path != null) {
+ return path;
+ }
+ }
+ return s; // shouldn't happen, but harmless
+ }
+
+ /* lcName is required to be lower case for use as a key.
+ * lcName may be a full name, or a family name, and style may
+ * be specified in addition to either of these. So be sure to
+ * get the right one. Since an app *could* ask for "Foo Regular"
+ * and later ask for "Foo Italic", if we don't register all the
+ * styles, then logic in findFont2D may try to style the original
+ * so we register the entire family if we get a match here.
+ * This is still a big win because this code is invoked where
+ * otherwise we would register all fonts.
+ * It's also useful for the case where "Foo Bold" was specified with
+ * style Font.ITALIC, as we would want in that case to try to return
+ * "Foo Bold Italic" if it exists, and it is only by locating "Foo Bold"
+ * and opening it that we really "know" it's Bold, and can look for
+ * a font that supports that and the italic style.
+ * The code in here is not overtly windows-specific but in fact it
+ * is unlikely to be useful as is on other platforms. It is maintained
+ * in this shared source file to be close to its sole client and
+ * because so much of the logic is intertwined with the logic in
+ * findFont2D.
+ */
+ private Font2D findFontFromPlatform(String lcName, int style) {
+ if (getFullNameToFileMap().size() == 0) {
+ return null;
+ }
+
+ ArrayList<String> family = null;
+ String fontFile = null;
+ String familyName = fontToFamilyNameMap.get(lcName);
+ if (familyName != null) {
+ fontFile = fontToFileMap.get(lcName);
+ family = familyToFontListMap.get
+ (familyName.toLowerCase(Locale.ENGLISH));
+ } else {
+ family = familyToFontListMap.get(lcName); // is lcName is a family?
+ if (family != null && family.size() > 0) {
+ String lcFontName = family.get(0).toLowerCase(Locale.ENGLISH);
+ if (lcFontName != null) {
+ familyName = fontToFamilyNameMap.get(lcFontName);
+ }
+ }
+ }
+ if (family == null || familyName == null) {
+ return null;
+ }
+ String [] fontList = (String[])family.toArray(STR_ARRAY);
+ if (fontList.length == 0) {
+ return null;
+ }
+
+ /* first check that for every font in this family we can find
+ * a font file. The specific reason for doing this is that
+ * in at least one case on Windows a font has the face name "David"
+ * but the registry entry is "David Regular". That is the "unique"
+ * name of the font but in other cases the registry contains the
+ * "full" name. See the specifications of name ids 3 and 4 in the
+ * TrueType 'name' table.
+ * In general this could cause a problem that we fail to register
+ * if we all members of a family that we may end up mapping to
+ * the wrong font member: eg return Bold when Plain is needed.
+ */
+ for (int f=0;f<fontList.length;f++) {
+ String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
+ String fileName = fontToFileMap.get(fontNameLC);
+ if (fileName == null) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Platform lookup : No file for font " +
+ fontList[f] + " in family " +familyName);
+ }
+ return null;
+ }
+ }
+
+ /* Currently this code only looks for TrueType fonts, so format
+ * and rank can be specified without looking at the filename.
+ */
+ PhysicalFont physicalFont = null;
+ if (fontFile != null) {
+ physicalFont = registerFontFile(getPathName(fontFile), null,
+ FONTFORMAT_TRUETYPE, false,
+ Font2D.TTF_RANK);
+ }
+ /* Register all fonts in this family. */
+ for (int f=0;f<fontList.length;f++) {
+ String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
+ String fileName = fontToFileMap.get(fontNameLC);
+ if (fontFile != null && fontFile.equals(fileName)) {
+ continue;
+ }
+ /* Currently this code only looks for TrueType fonts, so format
+ * and rank can be specified without looking at the filename.
+ */
+ registerFontFile(getPathName(fileName), null,
+ FONTFORMAT_TRUETYPE, false, Font2D.TTF_RANK);
+ }
+
+ Font2D font = null;
+ FontFamily fontFamily = FontFamily.getFamily(familyName);
+ /* Handle case where request "MyFont Bold", style=Font.ITALIC */
+ if (physicalFont != null) {
+ style |= physicalFont.style;
+ }
+ if (fontFamily != null) {
+ font = fontFamily.getFont(style);
+ if (font == null) {
+ font = fontFamily.getClosestStyle(style);
+ }
+ }
+ return font;
+ }
+
+ private ConcurrentHashMap<String, Font2D> fontNameCache =
+ new ConcurrentHashMap<String, Font2D>();
+
+ /*
+ * The client supplies a name and a style.
+ * The name could be a family name, or a full name.
+ * A font may exist with the specified style, or it may
+ * exist only in some other style. For non-native fonts the scaler
+ * may be able to emulate the required style.
+ */
+ public Font2D findFont2D(String name, int style, int fallback) {
+ String lowerCaseName = name.toLowerCase(Locale.ENGLISH);
+ String mapName = lowerCaseName + dotStyleStr(style);
+ Font2D font;
+
+ /* If preferLocaleFonts() or preferProportionalFonts() has been
+ * called we may be using an alternate set of composite fonts in this
+ * app context. The presence of a pre-built name map indicates whether
+ * this is so, and gives access to the alternate composite for the
+ * name.
+ */
+ if (_usingPerAppContextComposites) {
+ ConcurrentHashMap<String, Font2D> altNameCache =
+ (ConcurrentHashMap<String, Font2D>)
+ AppContext.getAppContext().get(CompositeFont.class);
+ if (altNameCache != null) {
+ font = (Font2D)altNameCache.get(mapName);
+ } else {
+ font = null;
+ }
+ } else {
+ font = fontNameCache.get(mapName);
+ }
+ if (font != null) {
+ return font;
+ }
+
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().info("Search for font: " + name);
+ }
+
+ // The check below is just so that the bitmap fonts being set by
+ // AWT and Swing thru the desktop properties do not trigger the
+ // the load fonts case. The two bitmap fonts are now mapped to
+ // appropriate equivalents for serif and sansserif.
+ // Note that the cost of this comparison is only for the first
+ // call until the map is filled.
+ if (FontUtilities.isWindows) {
+ if (lowerCaseName.equals("ms sans serif")) {
+ name = "sansserif";
+ } else if (lowerCaseName.equals("ms serif")) {
+ name = "serif";
+ }
+ }
+
+ /* This isn't intended to support a client passing in the
+ * string default, but if a client passes in null for the name
+ * the java.awt.Font class internally substitutes this name.
+ * So we need to recognise it here to prevent a loadFonts
+ * on the unrecognised name. The only potential problem with
+ * this is it would hide any real font called "default"!
+ * But that seems like a potential problem we can ignore for now.
+ */
+ if (lowerCaseName.equals("default")) {
+ name = "dialog";
+ }
+
+ /* First see if its a family name. */
+ FontFamily family = FontFamily.getFamily(name);
+ if (family != null) {
+ font = family.getFontWithExactStyleMatch(style);
+ if (font == null) {
+ font = findDeferredFont(name, style);
+ }
+ if (font == null) {
+ font = family.getFont(style);
+ }
+ if (font == null) {
+ font = family.getClosestStyle(style);
+ }
+ if (font != null) {
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+ }
+
+ /* If it wasn't a family name, it should be a full name of
+ * either a composite, or a physical font
+ */
+ font = fullNameToFont.get(lowerCaseName);
+ if (font != null) {
+ /* Check that the requested style matches the matched font's style.
+ * But also match style automatically if the requested style is
+ * "plain". This because the existing behaviour is that the fonts
+ * listed via getAllFonts etc always list their style as PLAIN.
+ * This does lead to non-commutative behaviours where you might
+ * start with "Lucida Sans Regular" and ask for a BOLD version
+ * and get "Lucida Sans DemiBold" but if you ask for the PLAIN
+ * style of "Lucida Sans DemiBold" you get "Lucida Sans DemiBold".
+ * This consistent however with what happens if you have a bold
+ * version of a font and no plain version exists - alg. styling
+ * doesn't "unbolden" the font.
+ */
+ if (font.style == style || style == Font.PLAIN) {
+ fontNameCache.put(mapName, font);
+ return font;
+ } else {
+ /* If it was a full name like "Lucida Sans Regular", but
+ * the style requested is "bold", then we want to see if
+ * there's the appropriate match against another font in
+ * that family before trying to load all fonts, or applying a
+ * algorithmic styling
+ */
+ family = FontFamily.getFamily(font.getFamilyName(null));
+ if (family != null) {
+ Font2D familyFont = family.getFont(style|font.style);
+ /* We exactly matched the requested style, use it! */
+ if (familyFont != null) {
+ fontNameCache.put(mapName, familyFont);
+ return familyFont;
+ } else {
+ /* This next call is designed to support the case
+ * where bold italic is requested, and if we must
+ * style, then base it on either bold or italic -
+ * not on plain!
+ */
+ familyFont = family.getClosestStyle(style|font.style);
+ if (familyFont != null) {
+ /* The next check is perhaps one
+ * that shouldn't be done. ie if we get this
+ * far we have probably as close a match as we
+ * are going to get. We could load all fonts to
+ * see if somehow some parts of the family are
+ * loaded but not all of it.
+ */
+ if (familyFont.canDoStyle(style|font.style)) {
+ fontNameCache.put(mapName, familyFont);
+ return familyFont;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (FontUtilities.isWindows) {
+ /* Don't want Windows to return a Lucida Sans font from
+ * C:\Windows\Fonts
+ */
+ if (deferredFontFiles.size() > 0) {
+ font = findJREDeferredFont(lowerCaseName, style);
+ if (font != null) {
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+ }
+ font = findFontFromPlatform(lowerCaseName, style);
+ if (font != null) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Found font via platform API for request:\"" +
+ name + "\":, style="+style+
+ " found font: " + font);
+ }
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+ }
+
+ /* If reach here and no match has been located, then if there are
+ * uninitialised deferred fonts, load as many of those as needed
+ * to find the deferred font. If none is found through that
+ * search continue on.
+ * There is possibly a minor issue when more than one
+ * deferred font implements the same font face. Since deferred
+ * fonts are only those in font configuration files, this is a
+ * controlled situation, the known case being Solaris euro_fonts
+ * versions of Arial, Times New Roman, Courier New. However
+ * the larger font will transparently replace the smaller one
+ * - see addToFontList() - when it is needed by the composite font.
+ */
+ if (deferredFontFiles.size() > 0) {
+ font = findDeferredFont(name, style);
+ if (font != null) {
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+ }
+
+ /* Some apps use deprecated 1.0 names such as helvetica and courier. On
+ * Solaris these are Type1 fonts in /usr/openwin/lib/X11/fonts/Type1.
+ * If running on Solaris will register all the fonts in this
+ * directory.
+ * May as well register the whole directory without actually testing
+ * the font name is one of the deprecated names as the next step would
+ * load all fonts which are in this directory anyway.
+ * In the event that this lookup is successful it potentially "hides"
+ * TrueType versions of such fonts that are elsewhere but since they
+ * do not exist on Solaris this is not a problem.
+ * Set a flag to indicate we've done this registration to avoid
+ * repetition and more seriously, to avoid recursion.
+ */
+ if (FontUtilities.isSolaris &&!loaded1dot0Fonts) {
+ /* "timesroman" is a special case since that's not the
+ * name of any known font on Solaris or elsewhere.
+ */
+ if (lowerCaseName.equals("timesroman")) {
+ font = findFont2D("serif", style, fallback);
+ fontNameCache.put(mapName, font);
+ }
+ register1dot0Fonts();
+ loaded1dot0Fonts = true;
+ Font2D ff = findFont2D(name, style, fallback);
+ return ff;
+ }
+
+ /* We check for application registered fonts before
+ * explicitly loading all fonts as if necessary the registration
+ * code will have done so anyway. And we don't want to needlessly
+ * load the actual files for all fonts.
+ * Just as for installed fonts we check for family before fullname.
+ * We do not add these fonts to fontNameCache for the
+ * app context case which eliminates the overhead of a per context
+ * cache for these.
+ */
+
+ if (fontsAreRegistered || fontsAreRegisteredPerAppContext) {
+ Hashtable<String, FontFamily> familyTable = null;
+ Hashtable<String, Font2D> nameTable;
+
+ if (fontsAreRegistered) {
+ familyTable = createdByFamilyName;
+ nameTable = createdByFullName;
+ } else {
+ AppContext appContext = AppContext.getAppContext();
+ familyTable =
+ (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
+ nameTable =
+ (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
+ }
+
+ family = familyTable.get(lowerCaseName);
+ if (family != null) {
+ font = family.getFontWithExactStyleMatch(style);
+ if (font == null) {
+ font = family.getFont(style);
+ }
+ if (font == null) {
+ font = family.getClosestStyle(style);
+ }
+ if (font != null) {
+ if (fontsAreRegistered) {
+ fontNameCache.put(mapName, font);
+ }
+ return font;
+ }
+ }
+ font = nameTable.get(lowerCaseName);
+ if (font != null) {
+ if (fontsAreRegistered) {
+ fontNameCache.put(mapName, font);
+ }
+ return font;
+ }
+ }
+
+ /* If reach here and no match has been located, then if all fonts
+ * are not yet loaded, do so, and then recurse.
+ */
+ if (!loadedAllFonts) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Load fonts looking for:" + name);
+ }
+ loadFonts();
+ loadedAllFonts = true;
+ return findFont2D(name, style, fallback);
+ }
+
+ if (!loadedAllFontFiles) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Load font files looking for:" + name);
+ }
+ loadFontFiles();
+ loadedAllFontFiles = true;
+ return findFont2D(name, style, fallback);
+ }
+
+ /* The primary name is the locale default - ie not US/English but
+ * whatever is the default in this locale. This is the way it always
+ * has been but may be surprising to some developers if "Arial Regular"
+ * were hard-coded in their app and yet "Arial Regular" was not the
+ * default name. Fortunately for them, as a consequence of the JDK
+ * supporting returning names and family names for arbitrary locales,
+ * we also need to support searching all localised names for a match.
+ * But because this case of the name used to reference a font is not
+ * the same as the default for this locale is rare, it makes sense to
+ * search a much shorter list of default locale names and only go to
+ * a longer list of names in the event that no match was found.
+ * So add here code which searches localised names too.
+ * As in 1.4.x this happens only after loading all fonts, which
+ * is probably the right order.
+ */
+ if ((font = findFont2DAllLocales(name, style)) != null) {
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+
+ /* Perhaps its a "compatibility" name - timesroman, helvetica,
+ * or courier, which 1.0 apps used for logical fonts.
+ * We look for these "late" after a loadFonts as we must not
+ * hide real fonts of these names.
+ * Map these appropriately:
+ * On windows this means according to the rules specified by the
+ * FontConfiguration : do it only for encoding==Cp1252
+ *
+ * REMIND: this is something we plan to remove.
+ */
+ if (FontUtilities.isWindows) {
+ String compatName =
+ getFontConfiguration().getFallbackFamilyName(name, null);
+ if (compatName != null) {
+ font = findFont2D(compatName, style, fallback);
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+ } else if (lowerCaseName.equals("timesroman")) {
+ font = findFont2D("serif", style, fallback);
+ fontNameCache.put(mapName, font);
+ return font;
+ } else if (lowerCaseName.equals("helvetica")) {
+ font = findFont2D("sansserif", style, fallback);
+ fontNameCache.put(mapName, font);
+ return font;
+ } else if (lowerCaseName.equals("courier")) {
+ font = findFont2D("monospaced", style, fallback);
+ fontNameCache.put(mapName, font);
+ return font;
+ }
+
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().info("No font found for:" + name);
+ }
+
+ switch (fallback) {
+ case PHYSICAL_FALLBACK: return getDefaultPhysicalFont();
+ case LOGICAL_FALLBACK: return getDefaultLogicalFont(style);
+ default: return null;
+ }
+ }
+
+ /*
+ * Workaround for apps which are dependent on a font metrics bug
+ * in JDK 1.1. This is an unsupported win32 private setting.
+ * Left in for a customer - do not remove.
+ */
+ public boolean usePlatformFontMetrics() {
+ return usePlatformFontMetrics;
+ }
+
+ public int getNumFonts() {
+ return physicalFonts.size()+maxCompFont;
+ }
+
+ private static boolean fontSupportsEncoding(Font font, String encoding) {
+ return FontUtilities.getFont2D(font).supportsEncoding(encoding);
+ }
+
+ public abstract String getFontPath(boolean noType1Fonts);
+
+ private Thread fileCloser = null;
+ Vector<File> tmpFontFiles = null;
+
+ public Font2D createFont2D(File fontFile, int fontFormat,
+ boolean isCopy, CreatedFontTracker tracker)
+ throws FontFormatException {
+
+ String fontFilePath = fontFile.getPath();
+ FileFont font2D = null;
+ final File fFile = fontFile;
+ final CreatedFontTracker _tracker = tracker;
+ try {
+ switch (fontFormat) {
+ case Font.TRUETYPE_FONT:
+ font2D = new TrueTypeFont(fontFilePath, null, 0, true);
+ break;
+ case Font.TYPE1_FONT:
+ font2D = new Type1Font(fontFilePath, null, isCopy);
+ break;
+ default:
+ throw new FontFormatException("Unrecognised Font Format");
+ }
+ } catch (FontFormatException e) {
+ if (isCopy) {
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ if (_tracker != null) {
+ _tracker.subBytes((int)fFile.length());
+ }
+ fFile.delete();
+ return null;
+ }
+ });
+ }
+ throw(e);
+ }
+ if (isCopy) {
+ font2D.setFileToRemove(fontFile, tracker);
+ synchronized (FontManager.class) {
+
+ if (tmpFontFiles == null) {
+ tmpFontFiles = new Vector<File>();
+ }
+ tmpFontFiles.add(fontFile);
+
+ if (fileCloser == null) {
+ final Runnable fileCloserRunnable = new Runnable() {
+ public void run() {
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+
+ for (int i=0;i<CHANNELPOOLSIZE;i++) {
+ if (fontFileCache[i] != null) {
+ try {
+ fontFileCache[i].close();
+ } catch (Exception e) {
+ }
+ }
+ }
+ if (tmpFontFiles != null) {
+ File[] files = new File[tmpFontFiles.size()];
+ files = tmpFontFiles.toArray(files);
+ for (int f=0; f<files.length;f++) {
+ try {
+ files[f].delete();
+ } catch (Exception e) {
+ }
+ }
+ }
+
+ return null;
+ }
+
+ });
+ }
+ };
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ /* The thread must be a member of a thread group
+ * which will not get GCed before VM exit.
+ * Make its parent the top-level thread group.
+ */
+ ThreadGroup tg =
+ Thread.currentThread().getThreadGroup();
+ for (ThreadGroup tgn = tg;
+ tgn != null;
+ tg = tgn, tgn = tg.getParent());
+ fileCloser = new Thread(tg, fileCloserRunnable);
+ Runtime.getRuntime().addShutdownHook(fileCloser);
+ return null;
+ }
+ });
+ }
+ }
+ }
+ return font2D;
+ }
+
+ /* remind: used in X11GraphicsEnvironment and called often enough
+ * that we ought to obsolete this code
+ */
+ public synchronized String getFullNameByFileName(String fileName) {
+ PhysicalFont[] physFonts = getPhysicalFonts();
+ for (int i=0;i<physFonts.length;i++) {
+ if (physFonts[i].platName.equals(fileName)) {
+ return (physFonts[i].getFontName(null));
+ }
+ }
+ return null;
+ }
+
+ /*
+ * This is called when font is determined to be invalid/bad.
+ * It designed to be called (for example) by the font scaler
+ * when in processing a font file it is discovered to be incorrect.
+ * This is different than the case where fonts are discovered to
+ * be incorrect during initial verification, as such fonts are
+ * never registered.
+ * Handles to this font held are re-directed to a default font.
+ * This default may not be an ideal substitute buts it better than
+ * crashing This code assumes a PhysicalFont parameter as it doesn't
+ * make sense for a Composite to be "bad".
+ */
+ public synchronized void deRegisterBadFont(Font2D font2D) {
+ if (!(font2D instanceof PhysicalFont)) {
+ /* We should never reach here, but just in case */
+ return;
+ } else {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .severe("Deregister bad font: " + font2D);
+ }
+ replaceFont((PhysicalFont)font2D, getDefaultPhysicalFont());
+ }
+ }
+
+ /*
+ * This encapsulates all the work that needs to be done when a
+ * Font2D is replaced by a different Font2D.
+ */
+ public synchronized void replaceFont(PhysicalFont oldFont,
+ PhysicalFont newFont) {
+
+ if (oldFont.handle.font2D != oldFont) {
+ /* already done */
+ return;
+ }
+
+ /* If we try to replace the font with itself, that won't work,
+ * so pick any alternative physical font
+ */
+ if (oldFont == newFont) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .severe("Can't replace bad font with itself " + oldFont);
+ }
+ PhysicalFont[] physFonts = getPhysicalFonts();
+ for (int i=0; i<physFonts.length;i++) {
+ if (physFonts[i] != newFont) {
+ newFont = physFonts[i];
+ break;
+ }
+ }
+ if (oldFont == newFont) {
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .severe("This is bad. No good physicalFonts found.");
+ }
+ return;
+ }
+ }
+
+ /* eliminate references to this font, so it won't be located
+ * by future callers, and will be eligible for GC when all
+ * references are removed
+ */
+ oldFont.handle.font2D = newFont;
+ physicalFonts.remove(oldFont.fullName);
+ fullNameToFont.remove(oldFont.fullName.toLowerCase(Locale.ENGLISH));
+ FontFamily.remove(oldFont);
+
+ if (localeFullNamesToFont != null) {
+ Map.Entry[] mapEntries =
+ (Map.Entry[])localeFullNamesToFont.entrySet().
+ toArray(new Map.Entry[0]);
+ /* Should I be replacing these, or just I just remove
+ * the names from the map?
+ */
+ for (int i=0; i<mapEntries.length;i++) {
+ if (mapEntries[i].getValue() == oldFont) {
+ try {
+ mapEntries[i].setValue(newFont);
+ } catch (Exception e) {
+ /* some maps don't support this operation.
+ * In this case just give up and remove the entry.
+ */
+ localeFullNamesToFont.remove(mapEntries[i].getKey());
+ }
+ }
+ }
+ }
+
+ for (int i=0; i<maxCompFont; i++) {
+ /* Deferred initialization of composites shouldn't be
+ * a problem for this case, since a font must have been
+ * initialised to be discovered to be bad.
+ * Some JRE composites on Solaris use two versions of the same
+ * font. The replaced font isn't bad, just "smaller" so there's
+ * no need to make the slot point to the new font.
+ * Since composites have a direct reference to the Font2D (not
+ * via a handle) making this substitution is not safe and could
+ * cause an additional problem and so this substitution is
+ * warranted only when a font is truly "bad" and could cause
+ * a crash. So we now replace it only if its being substituted
+ * with some font other than a fontconfig rank font
+ * Since in practice a substitution will have the same rank
+ * this may never happen, but the code is safer even if its
+ * also now a no-op.
+ * The only obvious "glitch" from this stems from the current
+ * implementation that when asked for the number of glyphs in a
+ * composite it lies and returns the number in slot 0 because
+ * composite glyphs aren't contiguous. Since we live with that
+ * we can live with the glitch that depending on how it was
+ * initialised a composite may return different values for this.
+ * Fixing the issues with composite glyph ids is tricky as
+ * there are exclusion ranges and unlike other fonts even the
+ * true "numGlyphs" isn't a contiguous range. Likely the only
+ * solution is an API that returns an array of glyph ranges
+ * which takes precedence over the existing API. That might
+ * also need to address excluding ranges which represent a
+ * code point supported by an earlier component.
+ */
+ if (newFont.getRank() > Font2D.FONT_CONFIG_RANK) {
+ compFonts[i].replaceComponentFont(oldFont, newFont);
+ }
+ }
+ }
+
+ private synchronized void loadLocaleNames() {
+ if (localeFullNamesToFont != null) {
+ return;
+ }
+ localeFullNamesToFont = new HashMap<String, TrueTypeFont>();
+ Font2D[] fonts = getRegisteredFonts();
+ for (int i=0; i<fonts.length; i++) {
+ if (fonts[i] instanceof TrueTypeFont) {
+ TrueTypeFont ttf = (TrueTypeFont)fonts[i];
+ String[] fullNames = ttf.getAllFullNames();
+ for (int n=0; n<fullNames.length; n++) {
+ localeFullNamesToFont.put(fullNames[n], ttf);
+ }
+ FontFamily family = FontFamily.getFamily(ttf.familyName);
+ if (family != null) {
+ FontFamily.addLocaleNames(family, ttf.getAllFamilyNames());
+ }
+ }
+ }
+ }
+
+ /* This replicate the core logic of findFont2D but operates on
+ * all the locale names. This hasn't been merged into findFont2D to
+ * keep the logic simpler and reduce overhead, since this case is
+ * almost never used. The main case in which it is called is when
+ * a bogus font name is used and we need to check all possible names
+ * before returning the default case.
+ */
+ private Font2D findFont2DAllLocales(String name, int style) {
+
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("Searching localised font names for:" + name);
+ }
+
+ /* If reach here and no match has been located, then if we have
+ * not yet built the map of localeFullNamesToFont for TT fonts, do so
+ * now. This method must be called after all fonts have been loaded.
+ */
+ if (localeFullNamesToFont == null) {
+ loadLocaleNames();
+ }
+ String lowerCaseName = name.toLowerCase();
+ Font2D font = null;
+
+ /* First see if its a family name. */
+ FontFamily family = FontFamily.getLocaleFamily(lowerCaseName);
+ if (family != null) {
+ font = family.getFont(style);
+ if (font == null) {
+ font = family.getClosestStyle(style);
+ }
+ if (font != null) {
+ return font;
+ }
+ }
+
+ /* If it wasn't a family name, it should be a full name. */
+ synchronized (this) {
+ font = localeFullNamesToFont.get(name);
+ }
+ if (font != null) {
+ if (font.style == style || style == Font.PLAIN) {
+ return font;
+ } else {
+ family = FontFamily.getFamily(font.getFamilyName(null));
+ if (family != null) {
+ Font2D familyFont = family.getFont(style);
+ /* We exactly matched the requested style, use it! */
+ if (familyFont != null) {
+ return familyFont;
+ } else {
+ familyFont = family.getClosestStyle(style);
+ if (familyFont != null) {
+ /* The next check is perhaps one
+ * that shouldn't be done. ie if we get this
+ * far we have probably as close a match as we
+ * are going to get. We could load all fonts to
+ * see if somehow some parts of the family are
+ * loaded but not all of it.
+ * This check is commented out for now.
+ */
+ if (!familyFont.canDoStyle(style)) {
+ familyFont = null;
+ }
+ return familyFont;
+ }
+ }
+ }
+ }
+ }
+ return font;
+ }
+
+ /* Supporting "alternate" composite fonts on 2D graphics objects
+ * is accessed by the application by calling methods on the local
+ * GraphicsEnvironment. The overall implementation is described
+ * in one place, here, since otherwise the implementation is spread
+ * around it may be difficult to track.
+ * The methods below call into SunGraphicsEnvironment which creates a
+ * new FontConfiguration instance. The FontConfiguration class,
+ * and its platform sub-classes are updated to take parameters requesting
+ * these behaviours. This is then used to create new composite font
+ * instances. Since this calls the initCompositeFont method in
+ * SunGraphicsEnvironment it performs the same initialization as is
+ * performed normally. There may be some duplication of effort, but
+ * that code is already written to be able to perform properly if called
+ * to duplicate work. The main difference is that if we detect we are
+ * running in an applet/browser/Java plugin environment these new fonts
+ * are not placed in the "default" maps but into an AppContext instance.
+ * The font lookup mechanism in java.awt.Font.getFont2D() is also updated
+ * so that look-up for composite fonts will in that case always
+ * do a lookup rather than returning a cached result.
+ * This is inefficient but necessary else singleton java.awt.Font
+ * instances would not retrieve the correct Font2D for the appcontext.
+ * sun.font.FontManager.findFont2D is also updated to that it uses
+ * a name map cache specific to that appcontext.
+ *
+ * Getting an AppContext is expensive, so there is a global variable
+ * that records whether these methods have ever been called and can
+ * avoid the expense for almost all applications. Once the correct
+ * CompositeFont is associated with the Font, everything should work
+ * through existing mechanisms.
+ * A special case is that GraphicsEnvironment.getAllFonts() must
+ * return an AppContext specific list.
+ *
+ * Calling the methods below is "heavyweight" but it is expected that
+ * these methods will be called very rarely.
+ *
+ * If _usingPerAppContextComposites is true, we are in "applet"
+ * (eg browser) enviroment and at least one context has selected
+ * an alternate composite font behaviour.
+ * If _usingAlternateComposites is true, we are not in an "applet"
+ * environment and the (single) application has selected
+ * an alternate composite font behaviour.
+ *
+ * - Printing: The implementation delegates logical fonts to an AWT
+ * mechanism which cannot use these alternate configurations.
+ * We can detect that alternate fonts are in use and back-off to 2D, but
+ * that uses outlines. Much of this can be fixed with additional work
+ * but that may have to wait. The results should be correct, just not
+ * optimal.
+ */
+ private static final Object altJAFontKey = new Object();
+ private static final Object localeFontKey = new Object();
+ private static final Object proportionalFontKey = new Object();
+ private boolean _usingPerAppContextComposites = false;
+ private boolean _usingAlternateComposites = false;
+
+ /* These values are used only if we are running as a standalone
+ * application, as determined by maybeMultiAppContext();
+ */
+ private static boolean gAltJAFont = false;
+ private boolean gLocalePref = false;
+ private boolean gPropPref = false;
+
+ /* This method doesn't check if alternates are selected in this app
+ * context. Its used by the FontMetrics caching code which in such
+ * a case cannot retrieve a cached metrics solely on the basis of
+ * the Font.equals() method since it needs to also check if the Font2D
+ * is the same.
+ * We also use non-standard composites for Swing native L&F fonts on
+ * Windows. In that case the policy is that the metrics reported are
+ * based solely on the physical font in the first slot which is the
+ * visible java.awt.Font. So in that case the metrics cache which tests
+ * the Font does what we want. In the near future when we expand the GTK
+ * logical font definitions we may need to revisit this if GTK reports
+ * combined metrics instead. For now though this test can be simple.
+ */
+ public boolean maybeUsingAlternateCompositeFonts() {
+ return _usingAlternateComposites || _usingPerAppContextComposites;
+ }
+
+ public boolean usingAlternateCompositeFonts() {
+ return (_usingAlternateComposites ||
+ (_usingPerAppContextComposites &&
+ AppContext.getAppContext().get(CompositeFont.class) != null));
+ }
+
+ private static boolean maybeMultiAppContext() {
+ Boolean appletSM = (Boolean)
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ SecurityManager sm = System.getSecurityManager();
+ return new Boolean
+ (sm instanceof sun.applet.AppletSecurity);
+ }
+ });
+ return appletSM.booleanValue();
+ }
+
+ /* Modifies the behaviour of a subsequent call to preferLocaleFonts()
+ * to use Mincho instead of Gothic for dialoginput in JA locales
+ * on windows. Not needed on other platforms.
+ */
+ public synchronized void useAlternateFontforJALocales() {
+
+ if (!FontUtilities.isWindows) {
+ return;
+ }
+
+ if (!maybeMultiAppContext()) {
+ gAltJAFont = true;
+ } else {
+ AppContext appContext = AppContext.getAppContext();
+ appContext.put(altJAFontKey, altJAFontKey);
+ }
+ }
+
+ public boolean usingAlternateFontforJALocales() {
+ if (!maybeMultiAppContext()) {
+ return gAltJAFont;
+ } else {
+ AppContext appContext = AppContext.getAppContext();
+ return appContext.get(altJAFontKey) == altJAFontKey;
+ }
+ }
+
+ public synchronized void preferLocaleFonts() {
+
+ /* Test if re-ordering will have any effect */
+ if (!FontConfiguration.willReorderForStartupLocale()) {
+ return;
+ }
+
+ if (!maybeMultiAppContext()) {
+ if (gLocalePref == true) {
+ return;
+ }
+ gLocalePref = true;
+ createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
+ _usingAlternateComposites = true;
+ } else {
+ AppContext appContext = AppContext.getAppContext();
+ if (appContext.get(localeFontKey) == localeFontKey) {
+ return;
+ }
+ appContext.put(localeFontKey, localeFontKey);
+ boolean acPropPref =
+ appContext.get(proportionalFontKey) == proportionalFontKey;
+ ConcurrentHashMap<String, Font2D>
+ altNameCache = new ConcurrentHashMap<String, Font2D> ();
+ /* If there is an existing hashtable, we can drop it. */
+ appContext.put(CompositeFont.class, altNameCache);
+ _usingPerAppContextComposites = true;
+ createCompositeFonts(altNameCache, true, acPropPref);
+ }
+ }
+
+ public synchronized void preferProportionalFonts() {
+
+ /* If no proportional fonts are configured, there's no need
+ * to take any action.
+ */
+ if (!FontConfiguration.hasMonoToPropMap()) {
+ return;
+ }
+
+ if (!maybeMultiAppContext()) {
+ if (gPropPref == true) {
+ return;
+ }
+ gPropPref = true;
+ createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
+ _usingAlternateComposites = true;
+ } else {
+ AppContext appContext = AppContext.getAppContext();
+ if (appContext.get(proportionalFontKey) == proportionalFontKey) {
+ return;
+ }
+ appContext.put(proportionalFontKey, proportionalFontKey);
+ boolean acLocalePref =
+ appContext.get(localeFontKey) == localeFontKey;
+ ConcurrentHashMap<String, Font2D>
+ altNameCache = new ConcurrentHashMap<String, Font2D> ();
+ /* If there is an existing hashtable, we can drop it. */
+ appContext.put(CompositeFont.class, altNameCache);
+ _usingPerAppContextComposites = true;
+ createCompositeFonts(altNameCache, acLocalePref, true);
+ }
+ }
+
+ private static HashSet<String> installedNames = null;
+ private static HashSet<String> getInstalledNames() {
+ if (installedNames == null) {
+ Locale l = getSystemStartupLocale();
+ SunFontManager fontManager = SunFontManager.getInstance();
+ String[] installedFamilies =
+ fontManager.getInstalledFontFamilyNames(l);
+ Font[] installedFonts = fontManager.getAllInstalledFonts();
+ HashSet<String> names = new HashSet<String>();
+ for (int i=0; i<installedFamilies.length; i++) {
+ names.add(installedFamilies[i].toLowerCase(l));
+ }
+ for (int i=0; i<installedFonts.length; i++) {
+ names.add(installedFonts[i].getFontName(l).toLowerCase(l));
+ }
+ installedNames = names;
+ }
+ return installedNames;
+ }
+
+ /* Keys are used to lookup per-AppContext Hashtables */
+ private static final Object regFamilyKey = new Object();
+ private static final Object regFullNameKey = new Object();
+ private Hashtable<String,FontFamily> createdByFamilyName;
+ private Hashtable<String,Font2D> createdByFullName;
+ private boolean fontsAreRegistered = false;
+ private boolean fontsAreRegisteredPerAppContext = false;
+
+ public boolean registerFont(Font font) {
+ /* This method should not be called with "null".
+ * It is the caller's responsibility to ensure that.
+ */
+ if (font == null) {
+ return false;
+ }
+
+ /* Initialise these objects only once we start to use this API */
+ synchronized (regFamilyKey) {
+ if (createdByFamilyName == null) {
+ createdByFamilyName = new Hashtable<String,FontFamily>();
+ createdByFullName = new Hashtable<String,Font2D>();
+ }
+ }
+
+ if (! FontAccess.getFontAccess().isCreatedFont(font)) {
+ return false;
+ }
+ /* We want to ensure that this font cannot override existing
+ * installed fonts. Check these conditions :
+ * - family name is not that of an installed font
+ * - full name is not that of an installed font
+ * - family name is not the same as the full name of an installed font
+ * - full name is not the same as the family name of an installed font
+ * The last two of these may initially look odd but the reason is
+ * that (unfortunately) Font constructors do not distinuguish these.
+ * An extreme example of such a problem would be a font which has
+ * family name "Dialog.Plain" and full name of "Dialog".
+ * The one arguably overly stringent restriction here is that if an
+ * application wants to supply a new member of an existing family
+ * It will get rejected. But since the JRE can perform synthetic
+ * styling in many cases its not necessary.
+ * We don't apply the same logic to registered fonts. If apps want
+ * to do this lets assume they have a reason. It won't cause problems
+ * except for themselves.
+ */
+ HashSet<String> names = getInstalledNames();
+ Locale l = getSystemStartupLocale();
+ String familyName = font.getFamily(l).toLowerCase();
+ String fullName = font.getFontName(l).toLowerCase();
+ if (names.contains(familyName) || names.contains(fullName)) {
+ return false;
+ }
+
+ /* Checks passed, now register the font */
+ Hashtable<String,FontFamily> familyTable;
+ Hashtable<String,Font2D> fullNameTable;
+ if (!maybeMultiAppContext()) {
+ familyTable = createdByFamilyName;
+ fullNameTable = createdByFullName;
+ fontsAreRegistered = true;
+ } else {
+ AppContext appContext = AppContext.getAppContext();
+ familyTable =
+ (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
+ fullNameTable =
+ (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
+ if (familyTable == null) {
+ familyTable = new Hashtable<String,FontFamily>();
+ fullNameTable = new Hashtable<String,Font2D>();
+ appContext.put(regFamilyKey, familyTable);
+ appContext.put(regFullNameKey, fullNameTable);
+ }
+ fontsAreRegisteredPerAppContext = true;
+ }
+ /* Create the FontFamily and add font to the tables */
+ Font2D font2D = FontUtilities.getFont2D(font);
+ int style = font2D.getStyle();
+ FontFamily family = familyTable.get(familyName);
+ if (family == null) {
+ family = new FontFamily(font.getFamily(l));
+ familyTable.put(familyName, family);
+ }
+ /* Remove name cache entries if not using app contexts.
+ * To accommodate a case where code may have registered first a plain
+ * family member and then used it and is now registering a bold family
+ * member, we need to remove all members of the family, so that the
+ * new style can get picked up rather than continuing to synthesise.
+ */
+ if (fontsAreRegistered) {
+ removeFromCache(family.getFont(Font.PLAIN));
+ removeFromCache(family.getFont(Font.BOLD));
+ removeFromCache(family.getFont(Font.ITALIC));
+ removeFromCache(family.getFont(Font.BOLD|Font.ITALIC));
+ removeFromCache(fullNameTable.get(fullName));
+ }
+ family.setFont(font2D, style);
+ fullNameTable.put(fullName, font2D);
+ return true;
+ }
+
+ /* Remove from the name cache all references to the Font2D */
+ private void removeFromCache(Font2D font) {
+ if (font == null) {
+ return;
+ }
+ String[] keys = (String[])(fontNameCache.keySet().toArray(STR_ARRAY));
+ for (int k=0; k<keys.length;k++) {
+ if (fontNameCache.get(keys[k]) == font) {
+ fontNameCache.remove(keys[k]);
+ }
+ }
+ }
+
+ // It may look odd to use TreeMap but its more convenient to the caller.
+ public TreeMap<String, String> getCreatedFontFamilyNames() {
+
+ Hashtable<String,FontFamily> familyTable;
+ if (fontsAreRegistered) {
+ familyTable = createdByFamilyName;
+ } else if (fontsAreRegisteredPerAppContext) {
+ AppContext appContext = AppContext.getAppContext();
+ familyTable =
+ (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
+ } else {
+ return null;
+ }
+
+ Locale l = getSystemStartupLocale();
+ synchronized (familyTable) {
+ TreeMap<String, String> map = new TreeMap<String, String>();
+ for (FontFamily f : familyTable.values()) {
+ Font2D font2D = f.getFont(Font.PLAIN);
+ if (font2D == null) {
+ font2D = f.getClosestStyle(Font.PLAIN);
+ }
+ String name = font2D.getFamilyName(l);
+ map.put(name.toLowerCase(l), name);
+ }
+ return map;
+ }
+ }
+
+ public Font[] getCreatedFonts() {
+
+ Hashtable<String,Font2D> nameTable;
+ if (fontsAreRegistered) {
+ nameTable = createdByFullName;
+ } else if (fontsAreRegisteredPerAppContext) {
+ AppContext appContext = AppContext.getAppContext();
+ nameTable =
+ (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
+ } else {
+ return null;
+ }
+
+ Locale l = getSystemStartupLocale();
+ synchronized (nameTable) {
+ Font[] fonts = new Font[nameTable.size()];
+ int i=0;
+ for (Font2D font2D : nameTable.values()) {
+ fonts[i++] = new Font(font2D.getFontName(l), Font.PLAIN, 1);
+ }
+ return fonts;
+ }
+ }
+
+ protected String[] getPlatformFontDirs(boolean noType1Fonts) {
+ String path = getFontPath(true);
+ StringTokenizer parser =
+ new StringTokenizer(path, File.pathSeparator);
+ ArrayList<String> pathList = new ArrayList<String>();
+ try {
+ while (parser.hasMoreTokens()) {
+ pathList.add(parser.nextToken());
+ }
+ } catch (NoSuchElementException e) {
+ }
+ return pathList.toArray(new String[0]);
+ }
+
+ /**
+ * Returns an array of two strings. The first element is the
+ * name of the font. The second element is the file name.
+ */
+ public abstract String[] getDefaultPlatformFont();
+
+ // Begin: Refactored from SunGraphicsEnviroment.
+
+ /*
+ * helper function for registerFonts
+ */
+ private void addDirFonts(String dirName, File dirFile,
+ FilenameFilter filter,
+ int fontFormat, boolean useJavaRasterizer,
+ int fontRank,
+ boolean defer, boolean resolveSymLinks) {
+ String[] ls = dirFile.list(filter);
+ if (ls == null || ls.length == 0) {
+ return;
+ }
+ String[] fontNames = new String[ls.length];
+ String[][] nativeNames = new String[ls.length][];
+ int fontCount = 0;
+
+ for (int i=0; i < ls.length; i++ ) {
+ File theFile = new File(dirFile, ls[i]);
+ String fullName = null;
+ if (resolveSymLinks) {
+ try {
+ fullName = theFile.getCanonicalPath();
+ } catch (IOException e) {
+ }
+ }
+ if (fullName == null) {
+ fullName = dirName + File.separator + ls[i];
+ }
+
+ // REMIND: case compare depends on platform
+ if (registeredFontFiles.contains(fullName)) {
+ continue;
+ }
+
+ if (badFonts != null && badFonts.contains(fullName)) {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .warning("skip bad font " + fullName);
+ }
+ continue; // skip this font file.
+ }
+
+ registeredFontFiles.add(fullName);
+
+ if (FontUtilities.debugFonts()
+ && FontUtilities.getLogger().isLoggable(PlatformLogger.INFO)) {
+ String message = "Registering font " + fullName;
+ String[] natNames = getNativeNames(fullName, null);
+ if (natNames == null) {
+ message += " with no native name";
+ } else {
+ message += " with native name(s) " + natNames[0];
+ for (int nn = 1; nn < natNames.length; nn++) {
+ message += ", " + natNames[nn];
+ }
+ }
+ FontUtilities.getLogger().info(message);
+ }
+ fontNames[fontCount] = fullName;
+ nativeNames[fontCount++] = getNativeNames(fullName, null);
+ }
+ registerFonts(fontNames, nativeNames, fontCount, fontFormat,
+ useJavaRasterizer, fontRank, defer);
+ return;
+ }
+
+ protected String[] getNativeNames(String fontFileName,
+ String platformName) {
+ return null;
+ }
+
+ /**
+ * Returns a file name for the physical font represented by this platform
+ * font name. The default implementation tries to obtain the file name
+ * from the font configuration.
+ * Subclasses may override to provide information from other sources.
+ */
+ protected String getFileNameFromPlatformName(String platformFontName) {
+ return fontConfig.getFileNameFromPlatformName(platformFontName);
+ }
+
+ /**
+ * Return the default font configuration.
+ */
+ public FontConfiguration getFontConfiguration() {
+ return fontConfig;
+ }
+
+ /* A call to this method should be followed by a call to
+ * registerFontDirs(..)
+ */
+ protected String getPlatformFontPath(boolean noType1Font) {
+ if (fontPath == null) {
+ fontPath = getFontPath(noType1Font);
+ }
+ return fontPath;
+ }
+
+ public static boolean isOpenJDK() {
+ return FontUtilities.isOpenJDK;
+ }
+
+ protected void loadFonts() {
+ if (discoveredAllFonts) {
+ return;
+ }
+ /* Use lock specific to the font system */
+ synchronized (lucidaFontName) {
+ if (FontUtilities.debugFonts()) {
+ Thread.dumpStack();
+ FontUtilities.getLogger()
+ .info("SunGraphicsEnvironment.loadFonts() called");
+ }
+ initialiseDeferredFonts();
+
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ if (fontPath == null) {
+ fontPath = getPlatformFontPath(noType1Font);
+ registerFontDirs(fontPath);
+ }
+ if (fontPath != null) {
+ // this will find all fonts including those already
+ // registered. But we have checks in place to prevent
+ // double registration.
+ if (! gotFontsFromPlatform()) {
+ registerFontsOnPath(fontPath, false,
+ Font2D.UNKNOWN_RANK,
+ false, true);
+ loadedAllFontFiles = true;
+ }
+ }
+ registerOtherFontFiles(registeredFontFiles);
+ discoveredAllFonts = true;
+ return null;
+ }
+ });
+ }
+ }
+
+ protected void registerFontDirs(String pathName) {
+ return;
+ }
+
+ private void registerFontsOnPath(String pathName,
+ boolean useJavaRasterizer, int fontRank,
+ boolean defer, boolean resolveSymLinks) {
+
+ StringTokenizer parser = new StringTokenizer(pathName,
+ File.pathSeparator);
+ try {
+ while (parser.hasMoreTokens()) {
+ registerFontsInDir(parser.nextToken(),
+ useJavaRasterizer, fontRank,
+ defer, resolveSymLinks);
+ }
+ } catch (NoSuchElementException e) {
+ }
+ }
+
+ /* Called to register fall back fonts */
+ public void registerFontsInDir(String dirName) {
+ registerFontsInDir(dirName, true, Font2D.JRE_RANK, true, false);
+ }
+
+ private void registerFontsInDir(String dirName, boolean useJavaRasterizer,
+ int fontRank,
+ boolean defer, boolean resolveSymLinks) {
+ File pathFile = new File(dirName);
+ addDirFonts(dirName, pathFile, ttFilter,
+ FONTFORMAT_TRUETYPE, useJavaRasterizer,
+ fontRank==Font2D.UNKNOWN_RANK ?
+ Font2D.TTF_RANK : fontRank,
+ defer, resolveSymLinks);
+ addDirFonts(dirName, pathFile, t1Filter,
+ FONTFORMAT_TYPE1, useJavaRasterizer,
+ fontRank==Font2D.UNKNOWN_RANK ?
+ Font2D.TYPE1_RANK : fontRank,
+ defer, resolveSymLinks);
+ }
+
+ protected void registerFontDir(String path) {
+ }
+
+ /**
+ * Returns file name for default font, either absolute
+ * or relative as needed by registerFontFile.
+ */
+ public synchronized String getDefaultFontFile() {
+ if (defaultFontFileName == null) {
+ initDefaultFonts();
+ }
+ return defaultFontFileName;
+ }
+
+ private void initDefaultFonts() {
+ if (!isOpenJDK()) {
+ defaultFontName = lucidaFontName;
+ if (useAbsoluteFontFileNames()) {
+ defaultFontFileName =
+ jreFontDirName + File.separator + FontUtilities.LUCIDA_FILE_NAME;
+ } else {
+ defaultFontFileName = FontUtilities.LUCIDA_FILE_NAME;
+ }
+ }
+ }
+
+ /**
+ * Whether registerFontFile expects absolute or relative
+ * font file names.
+ */
+ protected boolean useAbsoluteFontFileNames() {
+ return true;
+ }
+
+ /**
+ * Creates this environment's FontConfiguration.
+ */
+ protected abstract FontConfiguration createFontConfiguration();
+
+ public abstract FontConfiguration
+ createFontConfiguration(boolean preferLocaleFonts,
+ boolean preferPropFonts);
+
+ /**
+ * Returns face name for default font, or null if
+ * no face names are used for CompositeFontDescriptors
+ * for this platform.
+ */
+ public synchronized String getDefaultFontFaceName() {
+ if (defaultFontName == null) {
+ initDefaultFonts();
+ }
+ return defaultFontName;
+ }
+
+ public void loadFontFiles() {
+ loadFonts();
+ if (loadedAllFontFiles) {
+ return;
+ }
+ /* Use lock specific to the font system */
+ synchronized (lucidaFontName) {
+ if (FontUtilities.debugFonts()) {
+ Thread.dumpStack();
+ FontUtilities.getLogger().info("loadAllFontFiles() called");
+ }
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ if (fontPath == null) {
+ fontPath = getPlatformFontPath(noType1Font);
+ }
+ if (fontPath != null) {
+ // this will find all fonts including those already
+ // registered. But we have checks in place to prevent
+ // double registration.
+ registerFontsOnPath(fontPath, false,
+ Font2D.UNKNOWN_RANK,
+ false, true);
+ }
+ loadedAllFontFiles = true;
+ return null;
+ }
+ });
+ }
+ }
+
+ /*
+ * This method asks the font configuration API for all platform names
+ * used as components of composite/logical fonts and iterates over these
+ * looking up their corresponding file name and registers these fonts.
+ * It also ensures that the fonts are accessible via platform APIs.
+ * The composites themselves are then registered.
+ */
+ private void
+ initCompositeFonts(FontConfiguration fontConfig,
+ ConcurrentHashMap<String, Font2D> altNameCache) {
+
+ int numCoreFonts = fontConfig.getNumberCoreFonts();
+ String[] fcFonts = fontConfig.getPlatformFontNames();
+ for (int f=0; f<fcFonts.length; f++) {
+ String platformFontName = fcFonts[f];
+ String fontFileName =
+ getFileNameFromPlatformName(platformFontName);
+ String[] nativeNames = null;
+ if (fontFileName == null
+ || fontFileName.equals(platformFontName)) {
+ /* No file located, so register using the platform name,
+ * i.e. as a native font.
+ */
+ fontFileName = platformFontName;
+ } else {
+ if (f < numCoreFonts) {
+ /* If platform APIs also need to access the font, add it
+ * to a set to be registered with the platform too.
+ * This may be used to add the parent directory to the X11
+ * font path if its not already there. See the docs for the
+ * subclass implementation.
+ * This is now mainly for the benefit of X11-based AWT
+ * But for historical reasons, 2D initialisation code
+ * makes these calls.
+ * If the fontconfiguration file is properly set up
+ * so that all fonts are mapped to files and all their
+ * appropriate directories are specified, then this
+ * method will be low cost as it will return after
+ * a test that finds a null lookup map.
+ */
+ addFontToPlatformFontPath(platformFontName);
+ }
+ nativeNames = getNativeNames(fontFileName, platformFontName);
+ }
+ /* Uncomment these two lines to "generate" the XLFD->filename
+ * mappings needed to speed start-up on Solaris.
+ * Augment this with the appendedpathname and the mappings
+ * for native (F3) fonts
+ */
+ //String platName = platformFontName.replaceAll(" ", "_");
+ //System.out.println("filename."+platName+"="+fontFileName);
+ registerFontFile(fontFileName, nativeNames,
+ Font2D.FONT_CONFIG_RANK, true);
+
+
+ }
+ /* This registers accumulated paths from the calls to
+ * addFontToPlatformFontPath(..) and any specified by
+ * the font configuration. Rather than registering
+ * the fonts it puts them in a place and form suitable for
+ * the Toolkit to pick up and use if a toolkit is initialised,
+ * and if it uses X11 fonts.
+ */
+ registerPlatformFontsUsedByFontConfiguration();
+
+ CompositeFontDescriptor[] compositeFontInfo
+ = fontConfig.get2DCompositeFontInfo();
+ for (int i = 0; i < compositeFontInfo.length; i++) {
+ CompositeFontDescriptor descriptor = compositeFontInfo[i];
+ String[] componentFileNames = descriptor.getComponentFileNames();
+ String[] componentFaceNames = descriptor.getComponentFaceNames();
+
+ /* It would be better eventually to handle this in the
+ * FontConfiguration code which should also remove duplicate slots
+ */
+ if (missingFontFiles != null) {
+ for (int ii=0; ii<componentFileNames.length; ii++) {
+ if (missingFontFiles.contains(componentFileNames[ii])) {
+ componentFileNames[ii] = getDefaultFontFile();
+ componentFaceNames[ii] = getDefaultFontFaceName();
+ }
+ }
+ }
+
+ /* FontConfiguration needs to convey how many fonts it has added
+ * as fallback component fonts which should not affect metrics.
+ * The core component count will be the number of metrics slots.
+ * This does not preclude other mechanisms for adding
+ * fall back component fonts to the composite.
+ */
+ if (altNameCache != null) {
+ SunFontManager.registerCompositeFont(
+ descriptor.getFaceName(),
+ componentFileNames, componentFaceNames,
+ descriptor.getCoreComponentCount(),
+ descriptor.getExclusionRanges(),
+ descriptor.getExclusionRangeLimits(),
+ true,
+ altNameCache);
+ } else {
+ registerCompositeFont(descriptor.getFaceName(),
+ componentFileNames, componentFaceNames,
+ descriptor.getCoreComponentCount(),
+ descriptor.getExclusionRanges(),
+ descriptor.getExclusionRangeLimits(),
+ true);
+ }
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .info("registered " + descriptor.getFaceName());
+ }
+ }
+ }
+
+ /**
+ * Notifies graphics environment that the logical font configuration
+ * uses the given platform font name. The graphics environment may
+ * use this for platform specific initialization.
+ */
+ protected void addFontToPlatformFontPath(String platformFontName) {
+ }
+
+ protected void registerFontFile(String fontFileName, String[] nativeNames,
+ int fontRank, boolean defer) {
+// REMIND: case compare depends on platform
+ if (registeredFontFiles.contains(fontFileName)) {
+ return;
+ }
+ int fontFormat;
+ if (ttFilter.accept(null, fontFileName)) {
+ fontFormat = FONTFORMAT_TRUETYPE;
+ } else if (t1Filter.accept(null, fontFileName)) {
+ fontFormat = FONTFORMAT_TYPE1;
+ } else {
+ fontFormat = FONTFORMAT_NATIVE;
+ }
+ registeredFontFiles.add(fontFileName);
+ if (defer) {
+ registerDeferredFont(fontFileName, fontFileName, nativeNames,
+ fontFormat, false, fontRank);
+ } else {
+ registerFontFile(fontFileName, nativeNames, fontFormat, false,
+ fontRank);
+ }
+ }
+
+ protected void registerPlatformFontsUsedByFontConfiguration() {
+ }
+
+ /*
+ * A GE may verify whether a font file used in a fontconfiguration
+ * exists. If it doesn't then either we may substitute the default
+ * font, or perhaps elide it altogether from the composite font.
+ * This makes some sense on windows where the font file is only
+ * likely to be in one place. But on other OSes, eg Linux, the file
+ * can move around depending. So there we probably don't want to assume
+ * its missing and so won't add it to this list.
+ * If this list - missingFontFiles - is non-null then the composite
+ * font initialisation logic tests to see if a font file is in that
+ * set.
+ * Only one thread should be able to add to this set so we don't
+ * synchronize.
+ */
+ protected void addToMissingFontFileList(String fileName) {
+ if (missingFontFiles == null) {
+ missingFontFiles = new HashSet<String>();
+ }
+ missingFontFiles.add(fileName);
+ }
+
+ /*
+ * This is for use only within getAllFonts().
+ * Fonts listed in the fontconfig files for windows were all
+ * on the "deferred" initialisation list. They were registered
+ * either in the course of the application, or in the call to
+ * loadFonts() within getAllFonts(). The fontconfig file specifies
+ * the names of the fonts using the English names. If there's a
+ * different name in the execution locale, then the platform will
+ * report that, and we will construct the font with both names, and
+ * thereby enumerate it twice. This happens for Japanese fonts listed
+ * in the windows fontconfig, when run in the JA locale. The solution
+ * is to rely (in this case) on the platform's font->file mapping to
+ * determine that this name corresponds to a file we already registered.
+ * This works because
+ * - we know when we get here all deferred fonts are already initialised
+ * - when we register a font file, we register all fonts in it.
+ * - we know the fontconfig fonts are all in the windows registry
+ */
+ private boolean isNameForRegisteredFile(String fontName) {
+ String fileName = getFileNameForFontName(fontName);
+ if (fileName == null) {
+ return false;
+ }
+ return registeredFontFiles.contains(fileName);
+ }
+
+ /*
+ * This invocation is not in a privileged block because
+ * all privileged operations (reading files and properties)
+ * was conducted on the creation of the GE
+ */
+ public void
+ createCompositeFonts(ConcurrentHashMap<String, Font2D> altNameCache,
+ boolean preferLocale,
+ boolean preferProportional) {
+
+ FontConfiguration fontConfig =
+ createFontConfiguration(preferLocale, preferProportional);
+ initCompositeFonts(fontConfig, altNameCache);
+ }
+
+ /**
+ * Returns all fonts installed in this environment.
+ */
+ public Font[] getAllInstalledFonts() {
+ if (allFonts == null) {
+ loadFonts();
+ TreeMap fontMapNames = new TreeMap();
+ /* warning: the number of composite fonts could change dynamically
+ * if applications are allowed to create them. "allfonts" could
+ * then be stale.
+ */
+ Font2D[] allfonts = getRegisteredFonts();
+ for (int i=0; i < allfonts.length; i++) {
+ if (!(allfonts[i] instanceof NativeFont)) {
+ fontMapNames.put(allfonts[i].getFontName(null),
+ allfonts[i]);
+ }
+ }
+
+ String[] platformNames = getFontNamesFromPlatform();
+ if (platformNames != null) {
+ for (int i=0; i<platformNames.length; i++) {
+ if (!isNameForRegisteredFile(platformNames[i])) {
+ fontMapNames.put(platformNames[i], null);
+ }
+ }
+ }
+
+ String[] fontNames = null;
+ if (fontMapNames.size() > 0) {
+ fontNames = new String[fontMapNames.size()];
+ Object [] keyNames = fontMapNames.keySet().toArray();
+ for (int i=0; i < keyNames.length; i++) {
+ fontNames[i] = (String)keyNames[i];
+ }
+ }
+ Font[] fonts = new Font[fontNames.length];
+ for (int i=0; i < fontNames.length; i++) {
+ fonts[i] = new Font(fontNames[i], Font.PLAIN, 1);
+ Font2D f2d = (Font2D)fontMapNames.get(fontNames[i]);
+ if (f2d != null) {
+ FontAccess.getFontAccess().setFont2D(fonts[i], f2d.handle);
+ }
+ }
+ allFonts = fonts;
+ }
+
+ Font []copyFonts = new Font[allFonts.length];
+ System.arraycopy(allFonts, 0, copyFonts, 0, allFonts.length);
+ return copyFonts;
+ }
+
+ /**
+ * Get a list of installed fonts in the requested {@link Locale}.
+ * The list contains the fonts Family Names.
+ * If Locale is null, the default locale is used.
+ *
+ * @param requestedLocale, if null the default locale is used.
+ * @return list of installed fonts in the system.
+ */
+ public String[] getInstalledFontFamilyNames(Locale requestedLocale) {
+ if (requestedLocale == null) {
+ requestedLocale = Locale.getDefault();
+ }
+ if (allFamilies != null && lastDefaultLocale != null &&
+ requestedLocale.equals(lastDefaultLocale)) {
+ String[] copyFamilies = new String[allFamilies.length];
+ System.arraycopy(allFamilies, 0, copyFamilies,
+ 0, allFamilies.length);
+ return copyFamilies;
+ }
+
+ TreeMap<String,String> familyNames = new TreeMap<String,String>();
+ // these names are always there and aren't localised
+ String str;
+ str = Font.SERIF; familyNames.put(str.toLowerCase(), str);
+ str = Font.SANS_SERIF; familyNames.put(str.toLowerCase(), str);
+ str = Font.MONOSPACED; familyNames.put(str.toLowerCase(), str);
+ str = Font.DIALOG; familyNames.put(str.toLowerCase(), str);
+ str = Font.DIALOG_INPUT; familyNames.put(str.toLowerCase(), str);
+
+ /* Platform APIs may be used to get the set of available family
+ * names for the current default locale so long as it is the same
+ * as the start-up system locale, rather than loading all fonts.
+ */
+ if (requestedLocale.equals(getSystemStartupLocale()) &&
+ getFamilyNamesFromPlatform(familyNames, requestedLocale)) {
+ /* Augment platform names with JRE font family names */
+ getJREFontFamilyNames(familyNames, requestedLocale);
+ } else {
+ loadFontFiles();
+ Font2D[] physicalfonts = getPhysicalFonts();
+ for (int i=0; i < physicalfonts.length; i++) {
+ if (!(physicalfonts[i] instanceof NativeFont)) {
+ String name =
+ physicalfonts[i].getFamilyName(requestedLocale);
+ familyNames.put(name.toLowerCase(requestedLocale), name);
+ }
+ }
+ }
+
+ String[] retval = new String[familyNames.size()];
+ Object [] keyNames = familyNames.keySet().toArray();
+ for (int i=0; i < keyNames.length; i++) {
+ retval[i] = (String)familyNames.get(keyNames[i]);
+ }
+ if (requestedLocale.equals(Locale.getDefault())) {
+ lastDefaultLocale = requestedLocale;
+ allFamilies = new String[retval.length];
+ System.arraycopy(retval, 0, allFamilies, 0, allFamilies.length);
+ }
+ return retval;
+ }
+
+ public void register1dot0Fonts() {
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ String type1Dir = "/usr/openwin/lib/X11/fonts/Type1";
+ registerFontsInDir(type1Dir, true, Font2D.TYPE1_RANK,
+ false, false);
+ return null;
+ }
+ });
+ }
+
+ /* Really we need only the JRE fonts family names, but there's little
+ * overhead in doing this the easy way by adding all the currently
+ * known fonts.
+ */
+ protected void getJREFontFamilyNames(TreeMap<String,String> familyNames,
+ Locale requestedLocale) {
+ registerDeferredJREFonts(jreFontDirName);
+ Font2D[] physicalfonts = getPhysicalFonts();
+ for (int i=0; i < physicalfonts.length; i++) {
+ if (!(physicalfonts[i] instanceof NativeFont)) {
+ String name =
+ physicalfonts[i].getFamilyName(requestedLocale);
+ familyNames.put(name.toLowerCase(requestedLocale), name);
+ }
+ }
+ }
+
+ /**
+ * Default locale can be changed but we need to know the initial locale
+ * as that is what is used by native code. Changing Java default locale
+ * doesn't affect that.
+ * Returns the locale in use when using native code to communicate
+ * with platform APIs. On windows this is known as the "system" locale,
+ * and it is usually the same as the platform locale, but not always,
+ * so this method also checks an implementation property used only
+ * on windows and uses that if set.
+ */
+ private static Locale systemLocale = null;
+ private static Locale getSystemStartupLocale() {
+ if (systemLocale == null) {
+ systemLocale = (Locale)
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ /* On windows the system locale may be different than the
+ * user locale. This is an unsupported configuration, but
+ * in that case we want to return a dummy locale that will
+ * never cause a match in the usage of this API. This is
+ * important because Windows documents that the family
+ * names of fonts are enumerated using the language of
+ * the system locale. BY returning a dummy locale in that
+ * case we do not use the platform API which would not
+ * return us the names we want.
+ */
+ String fileEncoding = System.getProperty("file.encoding", "");
+ String sysEncoding = System.getProperty("sun.jnu.encoding");
+ if (sysEncoding != null && !sysEncoding.equals(fileEncoding)) {
+ return Locale.ROOT;
+ }
+
+ String language = System.getProperty("user.language", "en");
+ String country = System.getProperty("user.country","");
+ String variant = System.getProperty("user.variant","");
+ return new Locale(language, country, variant);
+ }
+ });
+ }
+ return systemLocale;
+ }
+
+ void addToPool(FileFont font) {
+
+ FileFont fontFileToClose = null;
+ int freeSlot = -1;
+
+ synchronized (fontFileCache) {
+ /* Avoid duplicate entries in the pool, and don't close() it,
+ * since this method is called only from within open().
+ * Seeing a duplicate is most likely to happen if the thread
+ * was interrupted during a read, forcing perhaps repeated
+ * close and open calls and it eventually it ends up pointing
+ * at the same slot.
+ */
+ for (int i=0;i<CHANNELPOOLSIZE;i++) {
+ if (fontFileCache[i] == font) {
+ return;
+ }
+ if (fontFileCache[i] == null && freeSlot < 0) {
+ freeSlot = i;
+ }
+ }
+ if (freeSlot >= 0) {
+ fontFileCache[freeSlot] = font;
+ return;
+ } else {
+ /* replace with new font. */
+ fontFileToClose = fontFileCache[lastPoolIndex];
+ fontFileCache[lastPoolIndex] = font;
+ /* lastPoolIndex is updated so that the least recently opened
+ * file will be closed next.
+ */
+ lastPoolIndex = (lastPoolIndex+1) % CHANNELPOOLSIZE;
+ }
+ }
+ /* Need to close the font file outside of the synchronized block,
+ * since its possible some other thread is in an open() call on
+ * this font file, and could be holding its lock and the pool lock.
+ * Releasing the pool lock allows that thread to continue, so it can
+ * then release the lock on this font, allowing the close() call
+ * below to proceed.
+ * Also, calling close() is safe because any other thread using
+ * the font we are closing() synchronizes all reading, so we
+ * will not close the file while its in use.
+ */
+ if (fontFileToClose != null) {
+ fontFileToClose.close();
+ }
+ }
+
+ protected FontUIResource getFontConfigFUIR(String family, int style,
+ int size)
+ {
+ return new FontUIResource(family, style, size);
+ }
+}
--- a/jdk/src/share/classes/sun/font/TrueTypeFont.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/TrueTypeFont.java Mon Oct 05 18:22:00 2009 -0700
@@ -39,9 +39,10 @@
import java.nio.ShortBuffer;
import java.nio.channels.ClosedChannelException;
import java.nio.channels.FileChannel;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Locale;
-import java.util.logging.Level;
import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
@@ -101,6 +102,9 @@
public static final int FULL_NAME_ID = 4;
public static final int POSTSCRIPT_NAME_ID = 6;
+ private static final short US_LCID = 0x0409; // US English - default
+
+ private static Map<String, Short> lcidMap;
class DirectoryEntry {
int tag;
@@ -176,7 +180,7 @@
* @throws FontFormatException - if the font can't be opened
* or fails verification, or there's no usable cmap
*/
- TrueTypeFont(String platname, Object nativeNames, int fIndex,
+ public TrueTypeFont(String platname, Object nativeNames, int fIndex,
boolean javaRasterizer)
throws FontFormatException {
super(platname, nativeNames);
@@ -207,12 +211,13 @@
* as PCF bitmap fonts on the X11 font path).
* This method is called when creating the first strike for this font.
*/
+ @Override
protected boolean checkUseNatives() {
if (checkedNatives) {
return useNatives;
}
- if (!FontManager.isSolaris || useJavaRasterizer ||
- FontManager.useT2K || nativeNames == null ||
+ if (!FontUtilities.isSolaris || useJavaRasterizer ||
+ FontUtilities.useT2K || nativeNames == null ||
getDirectoryEntry(EBLCTag) != null ||
GraphicsEnvironment.isHeadless()) {
checkedNatives = true;
@@ -279,8 +284,8 @@
*/
private synchronized FileChannel open() throws FontFormatException {
if (disposerRecord.channel == null) {
- if (FontManager.logging) {
- FontManager.logger.info("open TTF: " + platName);
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().info("open TTF: " + platName);
}
try {
RandomAccessFile raf = (RandomAccessFile)
@@ -296,7 +301,10 @@
});
disposerRecord.channel = raf.getChannel();
fileSize = (int)disposerRecord.channel.size();
- FontManager.addToPool(this);
+ FontManager fm = FontManagerFactory.getInstance();
+ if (fm instanceof SunFontManager) {
+ ((SunFontManager) fm).addToPool(this);
+ }
} catch (NullPointerException e) {
close();
throw new FontFormatException(e.toString());
@@ -340,11 +348,11 @@
* isn't updated. If the file has changed whilst we
* are executing we want to bail, not spin.
*/
- if (FontManager.logging) {
+ if (FontUtilities.isLogging()) {
String msg = "Read offset is " + offset +
" file size is " + fileSize+
" file is " + platName;
- FontManager.logger.severe(msg);
+ FontUtilities.getLogger().severe(msg);
}
return -1;
} else {
@@ -362,8 +370,8 @@
msg += " File size was " + fileSize +
" and now is " + currSize;
}
- if (FontManager.logging) {
- FontManager.logger.severe(msg);
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().severe(msg);
}
// We could still flip() the buffer here because
// it's possible that we did read some data in
@@ -377,10 +385,10 @@
// data was read to probably continue.
if (bread > length/2 || bread > 16384) {
buffer.flip();
- if (FontManager.logging) {
+ if (FontUtilities.isLogging()) {
msg = "Returning " + bread +
" bytes instead of " + length;
- FontManager.logger.severe(msg);
+ FontUtilities.getLogger().severe(msg);
}
} else {
bread = -1;
@@ -395,8 +403,8 @@
}
}
} catch (FontFormatException e) {
- if (FontManager.logging) {
- FontManager.logger.log(Level.SEVERE,
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().severe(
"While reading " + platName, e);
}
bread = -1; // signal EOF
@@ -416,8 +424,8 @@
* seems unlikely this would occur as problems opening the
* file are handled as a FontFormatException.
*/
- if (FontManager.logging) {
- FontManager.logger.log(Level.SEVERE,
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().severe(
"While reading " + platName, e);
}
if (bread == 0) {
@@ -540,8 +548,8 @@
}
initNames();
} catch (Exception e) {
- if (FontManager.logging) {
- FontManager.logger.severe(e.toString());
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().severe(e.toString());
}
if (e instanceof FontFormatException) {
throw (FontFormatException)e;
@@ -687,7 +695,7 @@
return defaultCodePage;
}
- if (FontManager.isWindows) {
+ if (FontUtilities.isWindows) {
defaultCodePage =
(String)java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("file.encoding"));
@@ -724,6 +732,7 @@
/* Theoretically, reserved bits must not be set, include symbol bits */
public static final int reserved_bits1 = 0x80000000;
public static final int reserved_bits2 = 0x0000ffff;
+ @Override
boolean supportsEncoding(String encoding) {
if (encoding == null) {
encoding = getCodePage();
@@ -858,6 +867,7 @@
}
}
+ @Override
byte[] getTableBytes(int tag) {
ByteBuffer buffer = getTableBuffer(tag);
if (buffer == null) {
@@ -932,6 +942,7 @@
/* This probably won't get called but is there to support the
* contract() of setStyle() defined in the superclass.
*/
+ @Override
protected void setStyle() {
setStyle(getTableBuffer(os_2Tag));
}
@@ -977,7 +988,7 @@
style = Font.ITALIC;
break;
case fsSelectionBoldBit:
- if (FontManager.isSolaris && platName.endsWith("HG-GothicB.ttf")) {
+ if (FontUtilities.isSolaris && platName.endsWith("HG-GothicB.ttf")) {
/* Workaround for Solaris's use of a JA font that's marked as
* being designed bold, but is used as a PLAIN font.
*/
@@ -1015,6 +1026,7 @@
ulPos = -sb.get(4) / (float)upem;
}
+ @Override
public void getStyleMetrics(float pointSize, float[] metrics, int offset) {
if (ulSize == 0f && ulPos == 0f) {
@@ -1075,8 +1087,8 @@
try {
return new String(bytes, 0, len, charset);
} catch (UnsupportedEncodingException e) {
- if (FontManager.logging) {
- FontManager.logger.warning(e + " EncodingID=" + encoding);
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().warning(e + " EncodingID=" + encoding);
}
return new String(bytes, 0, len);
} catch (Throwable t) {
@@ -1101,7 +1113,7 @@
int stringPtr = sbuffer.get() & 0xffff;
nameLocale = sun.awt.SunToolkit.getStartupLocale();
- short nameLocaleID = FontManager.getLCIDFromLocale(nameLocale);
+ short nameLocaleID = getLCIDFromLocale(nameLocale);
for (int i=0; i<numRecords; i++) {
short platformID = sbuffer.get();
@@ -1232,7 +1244,7 @@
protected synchronized FontScaler getScaler() {
if (scaler == null) {
- scaler = FontManager.getScaler(this, fontIndex,
+ scaler = FontScaler.getScaler(this, fontIndex,
supportsCJK, fileSize);
}
return scaler;
@@ -1242,6 +1254,7 @@
/* Postscript name is rarely requested. Don't waste cycles locating it
* as part of font creation, nor storage to hold it. Get it only on demand.
*/
+ @Override
public String getPostscriptName() {
String name = lookupName(ENGLISH_LOCALE_ID, POSTSCRIPT_NAME_ID);
if (name == null) {
@@ -1251,13 +1264,14 @@
}
}
+ @Override
public String getFontName(Locale locale) {
if (locale == null) {
return fullName;
} else if (locale.equals(nameLocale) && localeFullName != null) {
return localeFullName;
} else {
- short localeID = FontManager.getLCIDFromLocale(locale);
+ short localeID = getLCIDFromLocale(locale);
String name = lookupName(localeID, FULL_NAME_ID);
if (name == null) {
return fullName;
@@ -1267,16 +1281,239 @@
}
}
+ // Return a Microsoft LCID from the given Locale.
+ // Used when getting localized font data.
+
+ private static void addLCIDMapEntry(Map<String, Short> map,
+ String key, short value) {
+ map.put(key, Short.valueOf(value));
+ }
+
+ private static synchronized void createLCIDMap() {
+ if (lcidMap != null) {
+ return;
+ }
+
+ Map<String, Short> map = new HashMap<String, Short>(200);
+
+ // the following statements are derived from the langIDMap
+ // in src/windows/native/java/lang/java_props_md.c using the following
+ // awk script:
+ // $1~/\/\*/ { next}
+ // $3~/\?\?/ { next }
+ // $3!~/_/ { next }
+ // $1~/0x0409/ { next }
+ // $1~/0x0c0a/ { next }
+ // $1~/0x042c/ { next }
+ // $1~/0x0443/ { next }
+ // $1~/0x0812/ { next }
+ // $1~/0x04/ { print " addLCIDMapEntry(map, " substr($3, 0, 3) "\", (short) " substr($1, 0, 6) ");" ; next }
+ // $3~/,/ { print " addLCIDMapEntry(map, " $3 " (short) " substr($1, 0, 6) ");" ; next }
+ // { print " addLCIDMapEntry(map, " $3 ", (short) " substr($1, 0, 6) ");" ; next }
+ // The lines of this script:
+ // - eliminate comments
+ // - eliminate questionable locales
+ // - eliminate language-only locales
+ // - eliminate the default LCID value
+ // - eliminate a few other unneeded LCID values
+ // - print language-only locale entries for x04* LCID values
+ // (apparently Microsoft doesn't use language-only LCID values -
+ // see http://www.microsoft.com/OpenType/otspec/name.htm
+ // - print complete entries for all other LCID values
+ // Run
+ // awk -f awk-script langIDMap > statements
+ addLCIDMapEntry(map, "ar", (short) 0x0401);
+ addLCIDMapEntry(map, "bg", (short) 0x0402);
+ addLCIDMapEntry(map, "ca", (short) 0x0403);
+ addLCIDMapEntry(map, "zh", (short) 0x0404);
+ addLCIDMapEntry(map, "cs", (short) 0x0405);
+ addLCIDMapEntry(map, "da", (short) 0x0406);
+ addLCIDMapEntry(map, "de", (short) 0x0407);
+ addLCIDMapEntry(map, "el", (short) 0x0408);
+ addLCIDMapEntry(map, "es", (short) 0x040a);
+ addLCIDMapEntry(map, "fi", (short) 0x040b);
+ addLCIDMapEntry(map, "fr", (short) 0x040c);
+ addLCIDMapEntry(map, "iw", (short) 0x040d);
+ addLCIDMapEntry(map, "hu", (short) 0x040e);
+ addLCIDMapEntry(map, "is", (short) 0x040f);
+ addLCIDMapEntry(map, "it", (short) 0x0410);
+ addLCIDMapEntry(map, "ja", (short) 0x0411);
+ addLCIDMapEntry(map, "ko", (short) 0x0412);
+ addLCIDMapEntry(map, "nl", (short) 0x0413);
+ addLCIDMapEntry(map, "no", (short) 0x0414);
+ addLCIDMapEntry(map, "pl", (short) 0x0415);
+ addLCIDMapEntry(map, "pt", (short) 0x0416);
+ addLCIDMapEntry(map, "rm", (short) 0x0417);
+ addLCIDMapEntry(map, "ro", (short) 0x0418);
+ addLCIDMapEntry(map, "ru", (short) 0x0419);
+ addLCIDMapEntry(map, "hr", (short) 0x041a);
+ addLCIDMapEntry(map, "sk", (short) 0x041b);
+ addLCIDMapEntry(map, "sq", (short) 0x041c);
+ addLCIDMapEntry(map, "sv", (short) 0x041d);
+ addLCIDMapEntry(map, "th", (short) 0x041e);
+ addLCIDMapEntry(map, "tr", (short) 0x041f);
+ addLCIDMapEntry(map, "ur", (short) 0x0420);
+ addLCIDMapEntry(map, "in", (short) 0x0421);
+ addLCIDMapEntry(map, "uk", (short) 0x0422);
+ addLCIDMapEntry(map, "be", (short) 0x0423);
+ addLCIDMapEntry(map, "sl", (short) 0x0424);
+ addLCIDMapEntry(map, "et", (short) 0x0425);
+ addLCIDMapEntry(map, "lv", (short) 0x0426);
+ addLCIDMapEntry(map, "lt", (short) 0x0427);
+ addLCIDMapEntry(map, "fa", (short) 0x0429);
+ addLCIDMapEntry(map, "vi", (short) 0x042a);
+ addLCIDMapEntry(map, "hy", (short) 0x042b);
+ addLCIDMapEntry(map, "eu", (short) 0x042d);
+ addLCIDMapEntry(map, "mk", (short) 0x042f);
+ addLCIDMapEntry(map, "tn", (short) 0x0432);
+ addLCIDMapEntry(map, "xh", (short) 0x0434);
+ addLCIDMapEntry(map, "zu", (short) 0x0435);
+ addLCIDMapEntry(map, "af", (short) 0x0436);
+ addLCIDMapEntry(map, "ka", (short) 0x0437);
+ addLCIDMapEntry(map, "fo", (short) 0x0438);
+ addLCIDMapEntry(map, "hi", (short) 0x0439);
+ addLCIDMapEntry(map, "mt", (short) 0x043a);
+ addLCIDMapEntry(map, "se", (short) 0x043b);
+ addLCIDMapEntry(map, "gd", (short) 0x043c);
+ addLCIDMapEntry(map, "ms", (short) 0x043e);
+ addLCIDMapEntry(map, "kk", (short) 0x043f);
+ addLCIDMapEntry(map, "ky", (short) 0x0440);
+ addLCIDMapEntry(map, "sw", (short) 0x0441);
+ addLCIDMapEntry(map, "tt", (short) 0x0444);
+ addLCIDMapEntry(map, "bn", (short) 0x0445);
+ addLCIDMapEntry(map, "pa", (short) 0x0446);
+ addLCIDMapEntry(map, "gu", (short) 0x0447);
+ addLCIDMapEntry(map, "ta", (short) 0x0449);
+ addLCIDMapEntry(map, "te", (short) 0x044a);
+ addLCIDMapEntry(map, "kn", (short) 0x044b);
+ addLCIDMapEntry(map, "ml", (short) 0x044c);
+ addLCIDMapEntry(map, "mr", (short) 0x044e);
+ addLCIDMapEntry(map, "sa", (short) 0x044f);
+ addLCIDMapEntry(map, "mn", (short) 0x0450);
+ addLCIDMapEntry(map, "cy", (short) 0x0452);
+ addLCIDMapEntry(map, "gl", (short) 0x0456);
+ addLCIDMapEntry(map, "dv", (short) 0x0465);
+ addLCIDMapEntry(map, "qu", (short) 0x046b);
+ addLCIDMapEntry(map, "mi", (short) 0x0481);
+ addLCIDMapEntry(map, "ar_IQ", (short) 0x0801);
+ addLCIDMapEntry(map, "zh_CN", (short) 0x0804);
+ addLCIDMapEntry(map, "de_CH", (short) 0x0807);
+ addLCIDMapEntry(map, "en_GB", (short) 0x0809);
+ addLCIDMapEntry(map, "es_MX", (short) 0x080a);
+ addLCIDMapEntry(map, "fr_BE", (short) 0x080c);
+ addLCIDMapEntry(map, "it_CH", (short) 0x0810);
+ addLCIDMapEntry(map, "nl_BE", (short) 0x0813);
+ addLCIDMapEntry(map, "no_NO_NY", (short) 0x0814);
+ addLCIDMapEntry(map, "pt_PT", (short) 0x0816);
+ addLCIDMapEntry(map, "ro_MD", (short) 0x0818);
+ addLCIDMapEntry(map, "ru_MD", (short) 0x0819);
+ addLCIDMapEntry(map, "sr_CS", (short) 0x081a);
+ addLCIDMapEntry(map, "sv_FI", (short) 0x081d);
+ addLCIDMapEntry(map, "az_AZ", (short) 0x082c);
+ addLCIDMapEntry(map, "se_SE", (short) 0x083b);
+ addLCIDMapEntry(map, "ga_IE", (short) 0x083c);
+ addLCIDMapEntry(map, "ms_BN", (short) 0x083e);
+ addLCIDMapEntry(map, "uz_UZ", (short) 0x0843);
+ addLCIDMapEntry(map, "qu_EC", (short) 0x086b);
+ addLCIDMapEntry(map, "ar_EG", (short) 0x0c01);
+ addLCIDMapEntry(map, "zh_HK", (short) 0x0c04);
+ addLCIDMapEntry(map, "de_AT", (short) 0x0c07);
+ addLCIDMapEntry(map, "en_AU", (short) 0x0c09);
+ addLCIDMapEntry(map, "fr_CA", (short) 0x0c0c);
+ addLCIDMapEntry(map, "sr_CS", (short) 0x0c1a);
+ addLCIDMapEntry(map, "se_FI", (short) 0x0c3b);
+ addLCIDMapEntry(map, "qu_PE", (short) 0x0c6b);
+ addLCIDMapEntry(map, "ar_LY", (short) 0x1001);
+ addLCIDMapEntry(map, "zh_SG", (short) 0x1004);
+ addLCIDMapEntry(map, "de_LU", (short) 0x1007);
+ addLCIDMapEntry(map, "en_CA", (short) 0x1009);
+ addLCIDMapEntry(map, "es_GT", (short) 0x100a);
+ addLCIDMapEntry(map, "fr_CH", (short) 0x100c);
+ addLCIDMapEntry(map, "hr_BA", (short) 0x101a);
+ addLCIDMapEntry(map, "ar_DZ", (short) 0x1401);
+ addLCIDMapEntry(map, "zh_MO", (short) 0x1404);
+ addLCIDMapEntry(map, "de_LI", (short) 0x1407);
+ addLCIDMapEntry(map, "en_NZ", (short) 0x1409);
+ addLCIDMapEntry(map, "es_CR", (short) 0x140a);
+ addLCIDMapEntry(map, "fr_LU", (short) 0x140c);
+ addLCIDMapEntry(map, "bs_BA", (short) 0x141a);
+ addLCIDMapEntry(map, "ar_MA", (short) 0x1801);
+ addLCIDMapEntry(map, "en_IE", (short) 0x1809);
+ addLCIDMapEntry(map, "es_PA", (short) 0x180a);
+ addLCIDMapEntry(map, "fr_MC", (short) 0x180c);
+ addLCIDMapEntry(map, "sr_BA", (short) 0x181a);
+ addLCIDMapEntry(map, "ar_TN", (short) 0x1c01);
+ addLCIDMapEntry(map, "en_ZA", (short) 0x1c09);
+ addLCIDMapEntry(map, "es_DO", (short) 0x1c0a);
+ addLCIDMapEntry(map, "sr_BA", (short) 0x1c1a);
+ addLCIDMapEntry(map, "ar_OM", (short) 0x2001);
+ addLCIDMapEntry(map, "en_JM", (short) 0x2009);
+ addLCIDMapEntry(map, "es_VE", (short) 0x200a);
+ addLCIDMapEntry(map, "ar_YE", (short) 0x2401);
+ addLCIDMapEntry(map, "es_CO", (short) 0x240a);
+ addLCIDMapEntry(map, "ar_SY", (short) 0x2801);
+ addLCIDMapEntry(map, "en_BZ", (short) 0x2809);
+ addLCIDMapEntry(map, "es_PE", (short) 0x280a);
+ addLCIDMapEntry(map, "ar_JO", (short) 0x2c01);
+ addLCIDMapEntry(map, "en_TT", (short) 0x2c09);
+ addLCIDMapEntry(map, "es_AR", (short) 0x2c0a);
+ addLCIDMapEntry(map, "ar_LB", (short) 0x3001);
+ addLCIDMapEntry(map, "en_ZW", (short) 0x3009);
+ addLCIDMapEntry(map, "es_EC", (short) 0x300a);
+ addLCIDMapEntry(map, "ar_KW", (short) 0x3401);
+ addLCIDMapEntry(map, "en_PH", (short) 0x3409);
+ addLCIDMapEntry(map, "es_CL", (short) 0x340a);
+ addLCIDMapEntry(map, "ar_AE", (short) 0x3801);
+ addLCIDMapEntry(map, "es_UY", (short) 0x380a);
+ addLCIDMapEntry(map, "ar_BH", (short) 0x3c01);
+ addLCIDMapEntry(map, "es_PY", (short) 0x3c0a);
+ addLCIDMapEntry(map, "ar_QA", (short) 0x4001);
+ addLCIDMapEntry(map, "es_BO", (short) 0x400a);
+ addLCIDMapEntry(map, "es_SV", (short) 0x440a);
+ addLCIDMapEntry(map, "es_HN", (short) 0x480a);
+ addLCIDMapEntry(map, "es_NI", (short) 0x4c0a);
+ addLCIDMapEntry(map, "es_PR", (short) 0x500a);
+
+ lcidMap = map;
+ }
+
+ private static short getLCIDFromLocale(Locale locale) {
+ // optimize for common case
+ if (locale.equals(Locale.US)) {
+ return US_LCID;
+ }
+
+ if (lcidMap == null) {
+ createLCIDMap();
+ }
+
+ String key = locale.toString();
+ while (!"".equals(key)) {
+ Short lcidObject = (Short) lcidMap.get(key);
+ if (lcidObject != null) {
+ return lcidObject.shortValue();
+ }
+ int pos = key.lastIndexOf('_');
+ if (pos < 1) {
+ return US_LCID;
+ }
+ key = key.substring(0, pos);
+ }
+
+ return US_LCID;
+ }
+
+ @Override
public String getFamilyName(Locale locale) {
if (locale == null) {
return familyName;
} else if (locale.equals(nameLocale) && localeFamilyName != null) {
return localeFamilyName;
} else {
- short localeID = FontManager.getLCIDFromLocale(locale);
+ short localeID = getLCIDFromLocale(locale);
String name = lookupName(localeID, FAMILY_NAME_ID);
if (name == null) {
- return familyName;
+ return familyName;
} else {
return name;
}
@@ -1353,6 +1590,7 @@
/* Used by the OpenType engine for mark positioning.
*/
+ @Override
Point2D.Float getGlyphPoint(long pScalerContext,
int glyphCode, int ptNumber) {
try {
@@ -1414,6 +1652,7 @@
* REMIND: consider unpacking the table into an array of booleans
* for faster use.
*/
+ @Override
public boolean useAAForPtSize(int ptsize) {
char[] gasp = getGaspTable();
@@ -1433,12 +1672,15 @@
}
}
+ @Override
public boolean hasSupplementaryChars() {
return ((TrueTypeGlyphMapper)getMapper()).hasSupplementaryChars();
}
+ @Override
public String toString() {
return "** TrueType Font: Family="+familyName+ " Name="+fullName+
" style="+style+" fileName="+platName;
}
+
}
--- a/jdk/src/share/classes/sun/font/TrueTypeGlyphMapper.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/TrueTypeGlyphMapper.java Mon Oct 05 18:22:00 2009 -0700
@@ -60,9 +60,9 @@
missingGlyph = 0; /* standard for TrueType fonts */
ByteBuffer buffer = font.getTableBuffer(TrueTypeFont.maxpTag);
numGlyphs = buffer.getChar(4); // offset 4 bytes in MAXP table.
- if (FontManager.isSolaris && isJAlocale && font.supportsJA()) {
+ if (FontUtilities.isSolaris && isJAlocale && font.supportsJA()) {
needsJAremapping = true;
- if (FontManager.isSolaris8 &&
+ if (FontUtilities.isSolaris8 &&
getGlyphFromCMAP(JA_WAVE_DASH_CHAR) == missingGlyph) {
remapJAWaveDash = true;
}
@@ -82,8 +82,8 @@
glyphCode >= FileFontStrike.INVISIBLE_GLYPHS) {
return glyphCode;
} else {
- if (FontManager.logging) {
- FontManager.logger.warning
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().warning
(font + " out of range glyph id=" +
Integer.toHexString((int)glyphCode) +
" for char " + Integer.toHexString(charCode));
@@ -97,11 +97,11 @@
}
private void handleBadCMAP() {
- if (FontManager.logging) {
- FontManager.logger.severe("Null Cmap for " + font +
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger().severe("Null Cmap for " + font +
"substituting for this font");
}
- FontManager.deRegisterBadFont(font);
+ SunFontManager.getInstance().deRegisterBadFont(font);
/* The next line is not really a solution, but might
* reduce the exceptions until references to this font2D
* are gone.
@@ -242,10 +242,10 @@
font.glyphToCharMap[glyphs[i]] = (char)code;
}
- if (code < FontManager.MIN_LAYOUT_CHARCODE) {
+ if (code < FontUtilities.MIN_LAYOUT_CHARCODE) {
continue;
}
- else if (FontManager.isComplexCharCode(code)) {
+ else if (FontUtilities.isComplexCharCode(code)) {
return true;
}
else if (code >= 0x10000) {
--- a/jdk/src/share/classes/sun/font/Type1Font.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/Type1Font.java Mon Oct 05 18:22:00 2009 -0700
@@ -635,7 +635,7 @@
protected synchronized FontScaler getScaler() {
if (scaler == null) {
- scaler = FontManager.getScaler(this, 0, false, fileSize);
+ scaler = FontScaler.getScaler(this, 0, false, fileSize);
}
return scaler;
@@ -652,7 +652,7 @@
try {
return getScaler().getNumGlyphs();
} catch (FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getNumGlyphs();
}
}
@@ -661,7 +661,7 @@
try {
return getScaler().getMissingGlyphCode();
} catch (FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getMissingGlyphCode();
}
}
@@ -670,7 +670,7 @@
try {
return getScaler().getGlyphCode(charCode);
} catch (FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getGlyphCode(charCode);
}
}
@@ -679,5 +679,4 @@
return "** Type1 Font: Family="+familyName+ " Name="+fullName+
" style="+style+" fileName="+platName;
}
-
}
--- a/jdk/src/share/classes/sun/font/Type1GlyphMapper.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/font/Type1GlyphMapper.java Mon Oct 05 18:22:00 2009 -0700
@@ -46,7 +46,7 @@
try {
missingGlyph = scaler.getMissingGlyphCode();
} catch (FontScalerException fe) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
try {
missingGlyph = scaler.getMissingGlyphCode();
} catch (FontScalerException e) { //should not happen
@@ -59,7 +59,7 @@
try {
return scaler.getNumGlyphs();
} catch (FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return getNumGlyphs();
}
}
@@ -72,7 +72,7 @@
try {
return scaler.getGlyphCode(ch) != missingGlyph;
} catch(FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return canDisplay(ch);
}
}
@@ -81,7 +81,7 @@
try {
return scaler.getGlyphCode(ch);
} catch (FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return charToGlyph(ch);
}
}
@@ -93,7 +93,7 @@
try {
return scaler.getGlyphCode((char)ch);
} catch (FontScalerException e) {
- scaler = FontManager.getNullScaler();
+ scaler = FontScaler.getNullScaler();
return charToGlyph(ch);
}
}
@@ -160,10 +160,10 @@
glyphs[i] = charToGlyph(code);
- if (code < FontManager.MIN_LAYOUT_CHARCODE) {
+ if (code < FontUtilities.MIN_LAYOUT_CHARCODE) {
continue;
}
- else if (FontManager.isComplexCharCode(code)) {
+ else if (FontUtilities.isComplexCharCode(code)) {
return true;
}
else if (code >= 0x10000) {
--- a/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Mon Oct 05 18:22:00 2009 -0700
@@ -66,6 +66,7 @@
import java.awt.font.GlyphVector;
import java.awt.font.TextLayout;
import sun.font.FontDesignMetrics;
+import sun.font.FontUtilities;
import sun.java2d.pipe.PixelDrawPipe;
import sun.java2d.pipe.PixelFillPipe;
import sun.java2d.pipe.ShapeDrawPipe;
@@ -592,7 +593,7 @@
}
}
- info.font2D = FontManager.getFont2D(font);
+ info.font2D = FontUtilities.getFont2D(font);
int fmhint = fractionalMetricsHint;
if (fmhint == SunHints.INTVAL_FRACTIONALMETRICS_DEFAULT) {
@@ -741,7 +742,8 @@
font.isTransformed() ||
fontInfo == null || // Precaution, if true shouldn't get here
(fontInfo.aaHint == SunHints.INTVAL_TEXT_ANTIALIAS_ON) !=
- FontManager.getFont2D(font).useAAForPtSize(font.getSize()))) {
+ FontUtilities.getFont2D(font).
+ useAAForPtSize(font.getSize()))) {
textpipe = invalidpipe;
}
this.font = font;
--- a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java Mon Oct 05 18:22:00 2009 -0700
@@ -55,8 +55,6 @@
import java.util.TreeMap;
import java.util.Vector;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import sun.awt.AppContext;
import sun.awt.DisplayChangedListener;
import sun.awt.FontConfiguration;
@@ -64,6 +62,8 @@
import sun.font.CompositeFontDescriptor;
import sun.font.Font2D;
import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontManagerForSGE;
import sun.font.NativeFont;
/**
@@ -73,102 +73,16 @@
* @see GraphicsDevice
* @see GraphicsConfiguration
*/
-
public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
- implements FontSupport, DisplayChangedListener {
-
- public static boolean isLinux;
- public static boolean isSolaris;
- public static boolean isOpenSolaris;
- public static boolean isWindows;
- public static boolean noType1Font;
- private static Font defaultFont;
- private static String defaultFontFileName;
- private static String defaultFontName;
- public static final String lucidaFontName = "Lucida Sans Regular";
- public static final String lucidaFileName = "LucidaSansRegular.ttf";
- public static boolean debugFonts = false;
- protected static Logger logger = null;
- private static ArrayList badFonts;
- public static String jreLibDirName;
- public static String jreFontDirName;
- private static HashSet<String> missingFontFiles = null;
-
- private FontConfiguration fontConfig;
-
- /* fontPath is the location of all fonts on the system, excluding the
- * JRE's own font directory but including any path specified using the
- * sun.java2d.fontpath property. Together with that property, it is
- * initialised by the getPlatformFontPath() method
- * This call must be followed by a call to registerFontDirs(fontPath)
- * once any extra debugging path has been appended.
- */
- protected String fontPath;
-
- /* discoveredAllFonts is set to true when all fonts on the font path are
- * discovered. This usually also implies opening, validating and
- * registering, but an implementation may be optimized to avold this.
- * So see also "loadedAllFontFiles"
- */
- private boolean discoveredAllFonts = false;
+ implements DisplayChangedListener {
- /* loadedAllFontFiles is set to true when all fonts on the font path are
- * actually opened, validated and registered. This always implies
- * discoveredAllFonts is true.
- */
- private boolean loadedAllFontFiles = false;
-
- protected HashSet registeredFontFiles = new HashSet();
- public static String eudcFontFileName; /* Initialised only on windows */
-
- private static boolean isOpenJDK;
- /**
- * A few things in Java 2D code are different in OpenJDK,
- * so need a way to tell which implementation this is.
- * The absence of Lucida Sans Regular is the simplest way for now.
- */
- public static boolean isOpenJDK() {
- return isOpenJDK;
- }
-
- static {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
-
- jreLibDirName = System.getProperty("java.home","") +
- File.separator + "lib";
- jreFontDirName = jreLibDirName + File.separator + "fonts";
- File lucidaFile =
- new File(jreFontDirName + File.separator + lucidaFileName);
- isOpenJDK = !lucidaFile.exists();
-
- String debugLevel =
- System.getProperty("sun.java2d.debugfonts");
-
- if (debugLevel != null && !debugLevel.equals("false")) {
- debugFonts = true;
- logger = Logger.getLogger("sun.java2d");
- if (debugLevel.equals("warning")) {
- logger.setLevel(Level.WARNING);
- } else if (debugLevel.equals("severe")) {
- logger.setLevel(Level.SEVERE);
- }
- }
- return null;
- }
- });
- };
+ public static boolean isOpenSolaris;
+ private static Font defaultFont;
public SunGraphicsEnvironment() {
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {
public Object run() {
- String osName = System.getProperty("os.name");
- if ("Linux".equals(osName)) {
- isLinux = true;
- } else if ("SunOS".equals(osName)) {
- isSolaris = true;
String version = System.getProperty("os.version", "0.0");
try {
float ver = Float.parseFloat(version);
@@ -186,188 +100,6 @@
}
} catch (Exception e) {
}
- } else if ("Windows".equals(osName)) {
- isWindows = true;
- }
-
- noType1Font = "true".
- equals(System.getProperty("sun.java2d.noType1Font"));
-
- if (!isOpenJDK()) {
- defaultFontName = lucidaFontName;
- if (useAbsoluteFontFileNames()) {
- defaultFontFileName =
- jreFontDirName + File.separator + lucidaFileName;
- } else {
- defaultFontFileName = lucidaFileName;
- }
- }
-
- File badFontFile =
- new File(jreFontDirName + File.separator + "badfonts.txt");
- if (badFontFile.exists()) {
- FileInputStream fis = null;
- try {
- badFonts = new ArrayList();
- fis = new FileInputStream(badFontFile);
- InputStreamReader isr = new InputStreamReader(fis);
- BufferedReader br = new BufferedReader(isr);
- while (true) {
- String name = br.readLine();
- if (name == null) {
- break;
- } else {
- if (debugFonts) {
- logger.warning("read bad font: " + name);
- }
- badFonts.add(name);
- }
- }
- } catch (IOException e) {
- try {
- if (fis != null) {
- fis.close();
- }
- } catch (IOException ioe) {
- }
- }
- }
-
- /* Here we get the fonts in jre/lib/fonts and register them
- * so they are always available and preferred over other fonts.
- * This needs to be registered before the composite fonts as
- * otherwise some native font that corresponds may be found
- * as we don't have a way to handle two fonts of the same
- * name, so the JRE one must be the first one registered.
- * Pass "true" to registerFonts method as on-screen these
- * JRE fonts always go through the T2K rasteriser.
- */
- if (isLinux) {
- /* Linux font configuration uses these fonts */
- registerFontDir(jreFontDirName);
- }
- registerFontsInDir(jreFontDirName, true, Font2D.JRE_RANK,
- true, false);
-
- /* Register the JRE fonts so that the native platform can
- * access them. This is used only on Windows so that when
- * printing the printer driver can access the fonts.
- */
- registerJREFontsWithPlatform(jreFontDirName);
-
- /* Create the font configuration and get any font path
- * that might be specified.
- */
- fontConfig = createFontConfiguration();
- if (isOpenJDK()) {
- String[] fontInfo = FontManager.getDefaultPlatformFont();
- defaultFontName = fontInfo[0];
- defaultFontFileName = fontInfo[1];
- }
- getPlatformFontPathFromFontConfig();
-
- String extraFontPath = fontConfig.getExtraFontPath();
-
- /* In prior releases the debugging font path replaced
- * all normally located font directories except for the
- * JRE fonts dir. This directory is still always located and
- * placed at the head of the path but as an augmentation
- * to the previous behaviour the
- * changes below allow you to additionally append to
- * the font path by starting with append: or prepend by
- * starting with a prepend: sign. Eg: to append
- * -Dsun.java2d.fontpath=append:/usr/local/myfonts
- * and to prepend
- * -Dsun.java2d.fontpath=prepend:/usr/local/myfonts Disp
- *
- * If there is an appendedfontpath it in the font configuration
- * it is used instead of searching the system for dirs.
- * The behaviour of append and prepend is then similar
- * to the normal case. ie it goes after what
- * you prepend and * before what you append. If the
- * sun.java2d.fontpath property is used, but it
- * neither the append or prepend syntaxes is used then as
- * except for the JRE dir the path is replaced and it is
- * up to you to make sure that all the right directories
- * are located. This is platform and locale-specific so
- * its almost impossible to get right, so it should be
- * used with caution.
- */
- boolean prependToPath = false;
- boolean appendToPath = false;
- String dbgFontPath = System.getProperty("sun.java2d.fontpath");
-
- if (dbgFontPath != null) {
- if (dbgFontPath.startsWith("prepend:")) {
- prependToPath = true;
- dbgFontPath =
- dbgFontPath.substring("prepend:".length());
- } else if (dbgFontPath.startsWith("append:")) {
- appendToPath = true;
- dbgFontPath =
- dbgFontPath.substring("append:".length());
- }
- }
-
- if (debugFonts) {
- logger.info("JRE font directory: " + jreFontDirName);
- logger.info("Extra font path: " + extraFontPath);
- logger.info("Debug font path: " + dbgFontPath);
- }
-
- if (dbgFontPath != null) {
- /* In debugging mode we register all the paths
- * Caution: this is a very expensive call on Solaris:-
- */
- fontPath = getPlatformFontPath(noType1Font);
-
- if (extraFontPath != null) {
- fontPath =
- extraFontPath + File.pathSeparator + fontPath;
- }
- if (appendToPath) {
- fontPath = fontPath + File.pathSeparator + dbgFontPath;
- } else if (prependToPath) {
- fontPath = dbgFontPath + File.pathSeparator + fontPath;
- } else {
- fontPath = dbgFontPath;
- }
- registerFontDirs(fontPath);
- } else if (extraFontPath != null) {
- /* If the font configuration contains an "appendedfontpath"
- * entry, it is interpreted as a set of locations that
- * should always be registered.
- * It may be additional to locations normally found for
- * that place, or it may be locations that need to have
- * all their paths registered to locate all the needed
- * platform names.
- * This is typically when the same .TTF file is referenced
- * from multiple font.dir files and all of these must be
- * read to find all the native (XLFD) names for the font,
- * so that X11 font APIs can be used for as many code
- * points as possible.
- */
- registerFontDirs(extraFontPath);
- }
-
- /* On Solaris, we need to register the Japanese TrueType
- * directory so that we can find the corresponding bitmap
- * fonts. This could be done by listing the directory in
- * the font configuration file, but we don't want to
- * confuse users with this quirk. There are no bitmap fonts
- * for other writing systems that correspond to TrueType
- * fonts and have matching XLFDs. We need to register the
- * bitmap fonts only in environments where they're on the
- * X font path, i.e., in the Japanese locale.
- * Note that if the X Toolkit is in use the font path isn't
- * set up by JDK, but users of a JA locale should have it
- * set up already by their login environment.
- */
- if (isSolaris && Locale.JAPAN.equals(Locale.getDefault())) {
- registerFontDir("/usr/openwin/lib/locale/ja/X11/fonts/TT");
- }
-
- initCompositeFonts(fontConfig, null);
/* Establish the default font to be used by SG2D etc */
defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12);
@@ -395,7 +127,22 @@
return ret;
}
+ /**
+ * Returns the number of screen devices of this graphics environment.
+ *
+ * @return the number of screen devices of this graphics environment
+ */
protected abstract int getNumScreens();
+
+ /**
+ * Create and return the screen device with the specified number. The
+ * device with number <code>0</code> will be the default device (returned
+ * by {@link #getDefaultScreenDevice()}.
+ *
+ * @param screennum the number of the screen to create
+ *
+ * @return the created screen device
+ */
protected abstract GraphicsDevice makeScreenDevice(int screennum);
/**
@@ -418,220 +165,17 @@
return new SunGraphics2D(sd, Color.white, Color.black, defaultFont);
}
- /* A call to this method should be followed by a call to
- * registerFontDirs(..)
- */
- protected String getPlatformFontPath(boolean noType1Font) {
- if (fontPath == null) {
- fontPath = FontManager.getFontPath(noType1Font);
- }
- return fontPath;
- }
-
- private String[] platformFontDirs;
- /**
- * Get all directories which contain installed fonts.
- */
- public String[] getPlatformFontDirs() {
- if (platformFontDirs == null) {
- String path = getPlatformFontPath(noType1Font);
- StringTokenizer parser =
- new StringTokenizer(path, File.pathSeparator);;
- ArrayList<String> pathList = new ArrayList<String>();
- try {
- while (parser.hasMoreTokens()) {
- pathList.add(parser.nextToken());
- }
- } catch (NoSuchElementException e) {
- }
- platformFontDirs = pathList.toArray(new String[0]);
- }
- return platformFontDirs;
- }
-
- /**
- * Whether registerFontFile expects absolute or relative
- * font file names.
- */
- protected boolean useAbsoluteFontFileNames() {
- return true;
- }
-
- /**
- * Returns file name for default font, either absolute
- * or relative as needed by registerFontFile.
- */
- public String getDefaultFontFile() {
- return defaultFontFileName;
- }
-
- /**
- * Returns face name for default font, or null if
- * no face names are used for CompositeFontDescriptors
- * for this platform.
- */
- public String getDefaultFontFaceName() {
- return defaultFontName;
- }
-
- public void loadFonts() {
- if (discoveredAllFonts) {
- return;
- }
- /* Use lock specific to the font system */
- synchronized (lucidaFontName) {
- if (debugFonts) {
- Thread.dumpStack();
- logger.info("SunGraphicsEnvironment.loadFonts() called");
- }
- FontManager.initialiseDeferredFonts();
-
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- if (fontPath == null) {
- fontPath = getPlatformFontPath(noType1Font);
- registerFontDirs(fontPath);
- }
- if (fontPath != null) {
- // this will find all fonts including those already
- // registered. But we have checks in place to prevent
- // double registration.
- if (!FontManager.gotFontsFromPlatform()) {
- registerFontsOnPath(fontPath, false,
- Font2D.UNKNOWN_RANK,
- false, true);
- loadedAllFontFiles = true;
- }
- }
- FontManager.registerOtherFontFiles(registeredFontFiles);
- discoveredAllFonts = true;
- return null;
- }
- });
- }
+ private static FontManagerForSGE getFontManagerForSGE() {
+ FontManager fm = FontManagerFactory.getInstance();
+ return (FontManagerForSGE) fm;
}
-
-
- public void loadFontFiles() {
- loadFonts();
- if (loadedAllFontFiles) {
- return;
- }
- /* Use lock specific to the font system */
- synchronized (lucidaFontName) {
- if (debugFonts) {
- Thread.dumpStack();
- logger.info("loadAllFontFiles() called");
- }
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- if (fontPath == null) {
- fontPath = getPlatformFontPath(noType1Font);
- }
- if (fontPath != null) {
- // this will find all fonts including those already
- // registered. But we have checks in place to prevent
- // double registration.
- registerFontsOnPath(fontPath, false,
- Font2D.UNKNOWN_RANK,
- false, true);
- }
- loadedAllFontFiles = true;
- return null;
- }
- });
- }
- }
-
- /*
- * This is for use only within getAllFonts().
- * Fonts listed in the fontconfig files for windows were all
- * on the "deferred" initialisation list. They were registered
- * either in the course of the application, or in the call to
- * loadFonts() within getAllFonts(). The fontconfig file specifies
- * the names of the fonts using the English names. If there's a
- * different name in the execution locale, then the platform will
- * report that, and we will construct the font with both names, and
- * thereby enumerate it twice. This happens for Japanese fonts listed
- * in the windows fontconfig, when run in the JA locale. The solution
- * is to rely (in this case) on the platform's font->file mapping to
- * determine that this name corresponds to a file we already registered.
- * This works because
- * - we know when we get here all deferred fonts are already initialised
- * - when we register a font file, we register all fonts in it.
- * - we know the fontconfig fonts are all in the windows registry
- */
- private boolean isNameForRegisteredFile(String fontName) {
- String fileName = FontManager.getFileNameForFontName(fontName);
- if (fileName == null) {
- return false;
- }
- return registeredFontFiles.contains(fileName);
- }
-
- private Font[] allFonts;
-
- /**
- * Returns all fonts installed in this environment.
- */
- public Font[] getAllInstalledFonts() {
- if (allFonts == null) {
- loadFonts();
- TreeMap fontMapNames = new TreeMap();
- /* warning: the number of composite fonts could change dynamically
- * if applications are allowed to create them. "allfonts" could
- * then be stale.
- */
-
- Font2D[] allfonts = FontManager.getRegisteredFonts();
- for (int i=0; i < allfonts.length; i++) {
- if (!(allfonts[i] instanceof NativeFont)) {
- fontMapNames.put(allfonts[i].getFontName(null),
- allfonts[i]);
- }
- }
-
- String[] platformNames = FontManager.getFontNamesFromPlatform();
- if (platformNames != null) {
- for (int i=0; i<platformNames.length; i++) {
- if (!isNameForRegisteredFile(platformNames[i])) {
- fontMapNames.put(platformNames[i], null);
- }
- }
- }
-
- String[] fontNames = null;
- if (fontMapNames.size() > 0) {
- fontNames = new String[fontMapNames.size()];
- Object [] keyNames = fontMapNames.keySet().toArray();
- for (int i=0; i < keyNames.length; i++) {
- fontNames[i] = (String)keyNames[i];
- }
- }
- Font[] fonts = new Font[fontNames.length];
- for (int i=0; i < fontNames.length; i++) {
- fonts[i] = new Font(fontNames[i], Font.PLAIN, 1);
- Font2D f2d = (Font2D)fontMapNames.get(fontNames[i]);
- if (f2d != null) {
- FontManager.setFont2D(fonts[i], f2d.handle);
- }
- }
- allFonts = fonts;
- }
-
- Font []copyFonts = new Font[allFonts.length];
- System.arraycopy(allFonts, 0, copyFonts, 0, allFonts.length);
- return copyFonts;
- }
-
/**
* Returns all fonts available in this environment.
*/
public Font[] getAllFonts() {
- Font[] installedFonts = getAllInstalledFonts();
- Font[] created = FontManager.getCreatedFonts();
+ FontManagerForSGE fm = getFontManagerForSGE();
+ Font[] installedFonts = fm.getAllInstalledFonts();
+ Font[] created = fm.getCreatedFonts();
if (created == null || created.length == 0) {
return installedFonts;
} else {
@@ -643,126 +187,9 @@
}
}
- /**
- * Default locale can be changed but we need to know the initial locale
- * as that is what is used by native code. Changing Java default locale
- * doesn't affect that.
- * Returns the locale in use when using native code to communicate
- * with platform APIs. On windows this is known as the "system" locale,
- * and it is usually the same as the platform locale, but not always,
- * so this method also checks an implementation property used only
- * on windows and uses that if set.
- */
- private static Locale systemLocale = null;
- public static Locale getSystemStartupLocale() {
- if (systemLocale == null) {
- systemLocale = (Locale)
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- /* On windows the system locale may be different than the
- * user locale. This is an unsupported configuration, but
- * in that case we want to return a dummy locale that will
- * never cause a match in the usage of this API. This is
- * important because Windows documents that the family
- * names of fonts are enumerated using the language of
- * the system locale. BY returning a dummy locale in that
- * case we do not use the platform API which would not
- * return us the names we want.
- */
- String fileEncoding = System.getProperty("file.encoding", "");
- String sysEncoding = System.getProperty("sun.jnu.encoding");
- if (sysEncoding != null && !sysEncoding.equals(fileEncoding)) {
- return Locale.ROOT;
- }
-
- String language = System.getProperty("user.language", "en");
- String country = System.getProperty("user.country","");
- String variant = System.getProperty("user.variant","");
- return new Locale(language, country, variant);
- }
- });
- }
- return systemLocale;
- }
-
- /* Really we need only the JRE fonts family names, but there's little
- * overhead in doing this the easy way by adding all the currently
- * known fonts.
- */
- protected void getJREFontFamilyNames(TreeMap<String,String> familyNames,
- Locale requestedLocale) {
- FontManager.registerDeferredJREFonts(jreFontDirName);
- Font2D[] physicalfonts = FontManager.getPhysicalFonts();
- for (int i=0; i < physicalfonts.length; i++) {
- if (!(physicalfonts[i] instanceof NativeFont)) {
- String name =
- physicalfonts[i].getFamilyName(requestedLocale);
- familyNames.put(name.toLowerCase(requestedLocale), name);
- }
- }
- }
-
- private String[] allFamilies; // cache for default locale only
- private Locale lastDefaultLocale;
-
- public String[] getInstalledFontFamilyNames(Locale requestedLocale) {
- if (requestedLocale == null) {
- requestedLocale = Locale.getDefault();
- }
- if (allFamilies != null && lastDefaultLocale != null &&
- requestedLocale.equals(lastDefaultLocale)) {
- String[] copyFamilies = new String[allFamilies.length];
- System.arraycopy(allFamilies, 0, copyFamilies,
- 0, allFamilies.length);
- return copyFamilies;
- }
-
- TreeMap<String,String> familyNames = new TreeMap<String,String>();
- // these names are always there and aren't localised
- String str;
- str = Font.SERIF; familyNames.put(str.toLowerCase(), str);
- str = Font.SANS_SERIF; familyNames.put(str.toLowerCase(), str);
- str = Font.MONOSPACED; familyNames.put(str.toLowerCase(), str);
- str = Font.DIALOG; familyNames.put(str.toLowerCase(), str);
- str = Font.DIALOG_INPUT; familyNames.put(str.toLowerCase(), str);
-
- /* Platform APIs may be used to get the set of available family
- * names for the current default locale so long as it is the same
- * as the start-up system locale, rather than loading all fonts.
- */
- if (requestedLocale.equals(getSystemStartupLocale()) &&
- FontManager.getFamilyNamesFromPlatform(familyNames,
- requestedLocale)) {
- /* Augment platform names with JRE font family names */
- getJREFontFamilyNames(familyNames, requestedLocale);
- } else {
- loadFontFiles();
- Font2D[] physicalfonts = FontManager.getPhysicalFonts();
- for (int i=0; i < physicalfonts.length; i++) {
- if (!(physicalfonts[i] instanceof NativeFont)) {
- String name =
- physicalfonts[i].getFamilyName(requestedLocale);
- familyNames.put(name.toLowerCase(requestedLocale), name);
- }
- }
- }
-
- String[] retval = new String[familyNames.size()];
- Object [] keyNames = familyNames.keySet().toArray();
- for (int i=0; i < keyNames.length; i++) {
- retval[i] = (String)familyNames.get(keyNames[i]);
- }
- if (requestedLocale.equals(Locale.getDefault())) {
- lastDefaultLocale = requestedLocale;
- allFamilies = new String[retval.length];
- System.arraycopy(retval, 0, allFamilies, 0, allFamilies.length);
- }
- return retval;
- }
-
public String[] getAvailableFontFamilyNames(Locale requestedLocale) {
- String[] installed = getInstalledFontFamilyNames(requestedLocale);
+ FontManagerForSGE fm = getFontManagerForSGE();
+ String[] installed = fm.getInstalledFontFamilyNames(requestedLocale);
/* Use a new TreeMap as used in getInstalledFontFamilyNames
* and insert all the keys in lower case, so that the sort order
* is the same as the installed families. This preserves historical
@@ -771,7 +198,7 @@
* the tree map and just insert new entries, but not so much as
* to justify the extra internal interface.
*/
- TreeMap<String, String> map = FontManager.getCreatedFontFamilyNames();
+ TreeMap<String, String> map = fm.getCreatedFontFamilyNames();
if (map == null || map.size() == 0) {
return installed;
} else {
@@ -793,405 +220,6 @@
}
/**
- * Returns a file name for the physical font represented by this platform
- * font name. The default implementation tries to obtain the file name
- * from the font configuration.
- * Subclasses may override to provide information from other sources.
- */
- protected String getFileNameFromPlatformName(String platformFontName) {
- return fontConfig.getFileNameFromPlatformName(platformFontName);
- }
-
- public static class TTFilter implements FilenameFilter {
- public boolean accept(File dir,String name) {
- /* all conveniently have the same suffix length */
- int offset = name.length()-4;
- if (offset <= 0) { /* must be at least A.ttf */
- return false;
- } else {
- return(name.startsWith(".ttf", offset) ||
- name.startsWith(".TTF", offset) ||
- name.startsWith(".ttc", offset) ||
- name.startsWith(".TTC", offset) ||
- name.startsWith(".otf", offset) ||
- name.startsWith(".OTF", offset));
- }
- }
- }
-
- public static class T1Filter implements FilenameFilter {
- public boolean accept(File dir,String name) {
- if (noType1Font) {
- return false;
- }
- /* all conveniently have the same suffix length */
- int offset = name.length()-4;
- if (offset <= 0) { /* must be at least A.pfa */
- return false;
- } else {
- return(name.startsWith(".pfa", offset) ||
- name.startsWith(".pfb", offset) ||
- name.startsWith(".PFA", offset) ||
- name.startsWith(".PFB", offset));
- }
- }
- }
-
- public static class TTorT1Filter implements FilenameFilter {
- public boolean accept(File dir, String name) {
- return SunGraphicsEnvironment.ttFilter.accept(dir, name) ||
- SunGraphicsEnvironment.t1Filter.accept(dir, name);
- }
- }
-
- /* No need to keep consing up new instances - reuse a singleton.
- * The trade-off is that these objects don't get GC'd.
- */
- public static final TTFilter ttFilter = new TTFilter();
- public static final T1Filter t1Filter = new T1Filter();
-
- /* The majority of the register functions in this class are
- * registering platform fonts in the JRE's font maps.
- * The next one is opposite in function as it registers the JRE
- * fonts as platform fonts. If subsequent to calling this
- * your implementation enumerates platform fonts in a way that
- * would return these fonts too you may get duplicates.
- * This function is primarily used to install the JRE fonts
- * so that the native platform can access them.
- * It is intended to be overridden by platform subclasses
- * Currently minimal use is made of this as generally
- * Java 2D doesn't need the platform to be able to
- * use its fonts and platforms which already have matching
- * fonts registered (possibly even from other different JRE
- * versions) generally can't be guaranteed to use the
- * one registered by this JRE version in response to
- * requests from this JRE.
- */
- protected void registerJREFontsWithPlatform(String pathName) {
- return;
- }
-
- /* Called from FontManager - has Solaris specific implementation */
- public void register1dot0Fonts() {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- String type1Dir = "/usr/openwin/lib/X11/fonts/Type1";
- registerFontsInDir(type1Dir, true, Font2D.TYPE1_RANK,
- false, false);
- return null;
- }
- });
- }
-
- protected void registerFontDirs(String pathName) {
- return;
- }
-
- /* Called to register fall back fonts */
- public void registerFontsInDir(String dirName) {
- registerFontsInDir(dirName, true, Font2D.JRE_RANK, true, false);
- }
-
- private void registerFontsInDir(String dirName, boolean useJavaRasterizer,
- int fontRank,
- boolean defer, boolean resolveSymLinks) {
- File pathFile = new File(dirName);
- addDirFonts(dirName, pathFile, ttFilter,
- FontManager.FONTFORMAT_TRUETYPE, useJavaRasterizer,
- fontRank==Font2D.UNKNOWN_RANK ?
- Font2D.TTF_RANK : fontRank,
- defer, resolveSymLinks);
- addDirFonts(dirName, pathFile, t1Filter,
- FontManager.FONTFORMAT_TYPE1, useJavaRasterizer,
- fontRank==Font2D.UNKNOWN_RANK ?
- Font2D.TYPE1_RANK : fontRank,
- defer, resolveSymLinks);
- }
-
- private void registerFontsOnPath(String pathName,
- boolean useJavaRasterizer, int fontRank,
- boolean defer, boolean resolveSymLinks) {
-
- StringTokenizer parser = new StringTokenizer(pathName,
- File.pathSeparator);
- try {
- while (parser.hasMoreTokens()) {
- registerFontsInDir(parser.nextToken(),
- useJavaRasterizer, fontRank,
- defer, resolveSymLinks);
- }
- } catch (NoSuchElementException e) {
- }
- }
-
- protected void registerFontFile(String fontFileName, String[] nativeNames,
- int fontRank, boolean defer) {
- // REMIND: case compare depends on platform
- if (registeredFontFiles.contains(fontFileName)) {
- return;
- }
- int fontFormat;
- if (ttFilter.accept(null, fontFileName)) {
- fontFormat = FontManager.FONTFORMAT_TRUETYPE;
- } else if (t1Filter.accept(null, fontFileName)) {
- fontFormat = FontManager.FONTFORMAT_TYPE1;
- } else {
- fontFormat = FontManager.FONTFORMAT_NATIVE;
- }
- registeredFontFiles.add(fontFileName);
- if (defer) {
- FontManager.registerDeferredFont(fontFileName,
- fontFileName, nativeNames,
- fontFormat, false, fontRank);
- } else {
- FontManager.registerFontFile(fontFileName, nativeNames,
- fontFormat, false, fontRank);
- }
- }
-
- protected void registerFontDir(String path) {
- }
-
- protected String[] getNativeNames(String fontFileName,
- String platformName) {
- return null;
- }
-
- /*
- * helper function for registerFonts
- */
- private void addDirFonts(String dirName, File dirFile,
- FilenameFilter filter,
- int fontFormat, boolean useJavaRasterizer,
- int fontRank,
- boolean defer, boolean resolveSymLinks) {
- String[] ls = dirFile.list(filter);
- if (ls == null || ls.length == 0) {
- return;
- }
- String[] fontNames = new String[ls.length];
- String[][] nativeNames = new String[ls.length][];
- int fontCount = 0;
-
- for (int i=0; i < ls.length; i++ ) {
- File theFile = new File(dirFile, ls[i]);
- String fullName = null;
- if (resolveSymLinks) {
- try {
- fullName = theFile.getCanonicalPath();
- } catch (IOException e) {
- }
- }
- if (fullName == null) {
- fullName = dirName + File.separator + ls[i];
- }
-
- // REMIND: case compare depends on platform
- if (registeredFontFiles.contains(fullName)) {
- continue;
- }
-
- if (badFonts != null && badFonts.contains(fullName)) {
- if (debugFonts) {
- logger.warning("skip bad font " + fullName);
- }
- continue; // skip this font file.
- }
-
- registeredFontFiles.add(fullName);
-
- if (debugFonts && logger.isLoggable(Level.INFO)) {
- String message = "Registering font " + fullName;
- String[] natNames = getNativeNames(fullName, null);
- if (natNames == null) {
- message += " with no native name";
- } else {
- message += " with native name(s) " + natNames[0];
- for (int nn = 1; nn < natNames.length; nn++) {
- message += ", " + natNames[nn];
- }
- }
- logger.info(message);
- }
- fontNames[fontCount] = fullName;
- nativeNames[fontCount++] = getNativeNames(fullName, null);
- }
- FontManager.registerFonts(fontNames, nativeNames, fontCount,
- fontFormat, useJavaRasterizer, fontRank,
- defer);
- return;
- }
-
- /*
- * A GE may verify whether a font file used in a fontconfiguration
- * exists. If it doesn't then either we may substitute the default
- * font, or perhaps elide it altogether from the composite font.
- * This makes some sense on windows where the font file is only
- * likely to be in one place. But on other OSes, eg Linux, the file
- * can move around depending. So there we probably don't want to assume
- * its missing and so won't add it to this list.
- * If this list - missingFontFiles - is non-null then the composite
- * font initialisation logic tests to see if a font file is in that
- * set.
- * Only one thread should be able to add to this set so we don't
- * synchronize.
- */
- protected void addToMissingFontFileList(String fileName) {
- if (missingFontFiles == null) {
- missingFontFiles = new HashSet<String>();
- }
- missingFontFiles.add(fileName);
- }
-
- /**
- * Creates this environment's FontConfiguration.
- */
- protected abstract FontConfiguration createFontConfiguration();
-
- public abstract FontConfiguration
- createFontConfiguration(boolean preferLocaleFonts,
- boolean preferPropFonts);
-
- /*
- * This method asks the font configuration API for all platform names
- * used as components of composite/logical fonts and iterates over these
- * looking up their corresponding file name and registers these fonts.
- * It also ensures that the fonts are accessible via platform APIs.
- * The composites themselves are then registered.
- */
- private void
- initCompositeFonts(FontConfiguration fontConfig,
- ConcurrentHashMap<String, Font2D> altNameCache) {
-
- int numCoreFonts = fontConfig.getNumberCoreFonts();
- String[] fcFonts = fontConfig.getPlatformFontNames();
- for (int f=0; f<fcFonts.length; f++) {
- String platformFontName = fcFonts[f];
- String fontFileName =
- getFileNameFromPlatformName(platformFontName);
- String[] nativeNames = null;
- if (fontFileName == null || fontFileName.equals(platformFontName)){
- /* No file located, so register using the platform name,
- * i.e. as a native font.
- */
- fontFileName = platformFontName;
- } else {
- if (f < numCoreFonts) {
- /* If platform APIs also need to access the font, add it
- * to a set to be registered with the platform too.
- * This may be used to add the parent directory to the X11
- * font path if its not already there. See the docs for the
- * subclass implementation.
- * This is now mainly for the benefit of X11-based AWT
- * But for historical reasons, 2D initialisation code
- * makes these calls.
- * If the fontconfiguration file is properly set up
- * so that all fonts are mapped to files and all their
- * appropriate directories are specified, then this
- * method will be low cost as it will return after
- * a test that finds a null lookup map.
- */
- addFontToPlatformFontPath(platformFontName);
- }
- nativeNames = getNativeNames(fontFileName, platformFontName);
- }
- /* Uncomment these two lines to "generate" the XLFD->filename
- * mappings needed to speed start-up on Solaris.
- * Augment this with the appendedpathname and the mappings
- * for native (F3) fonts
- */
- //String platName = platformFontName.replaceAll(" ", "_");
- //System.out.println("filename."+platName+"="+fontFileName);
- registerFontFile(fontFileName, nativeNames,
- Font2D.FONT_CONFIG_RANK, true);
-
-
- }
- /* This registers accumulated paths from the calls to
- * addFontToPlatformFontPath(..) and any specified by
- * the font configuration. Rather than registering
- * the fonts it puts them in a place and form suitable for
- * the Toolkit to pick up and use if a toolkit is initialised,
- * and if it uses X11 fonts.
- */
- registerPlatformFontsUsedByFontConfiguration();
-
- CompositeFontDescriptor[] compositeFontInfo
- = fontConfig.get2DCompositeFontInfo();
- for (int i = 0; i < compositeFontInfo.length; i++) {
- CompositeFontDescriptor descriptor = compositeFontInfo[i];
- String[] componentFileNames = descriptor.getComponentFileNames();
- String[] componentFaceNames = descriptor.getComponentFaceNames();
-
- /* It would be better eventually to handle this in the
- * FontConfiguration code which should also remove duplicate slots
- */
- if (missingFontFiles != null) {
- for (int ii=0; ii<componentFileNames.length; ii++) {
- if (missingFontFiles.contains(componentFileNames[ii])) {
- componentFileNames[ii] = getDefaultFontFile();
- componentFaceNames[ii] = getDefaultFontFaceName();
- }
- }
- }
-
- /* FontConfiguration needs to convey how many fonts it has added
- * as fallback component fonts which should not affect metrics.
- * The core component count will be the number of metrics slots.
- * This does not preclude other mechanisms for adding
- * fall back component fonts to the composite.
- */
- if (altNameCache != null) {
- FontManager.registerCompositeFont(
- descriptor.getFaceName(),
- componentFileNames, componentFaceNames,
- descriptor.getCoreComponentCount(),
- descriptor.getExclusionRanges(),
- descriptor.getExclusionRangeLimits(),
- true,
- altNameCache);
- } else {
- FontManager.registerCompositeFont(
- descriptor.getFaceName(),
- componentFileNames, componentFaceNames,
- descriptor.getCoreComponentCount(),
- descriptor.getExclusionRanges(),
- descriptor.getExclusionRangeLimits(),
- true);
- }
- if (debugFonts) {
- logger.info("registered " + descriptor.getFaceName());
- }
- }
- }
-
- /**
- * Notifies graphics environment that the logical font configuration
- * uses the given platform font name. The graphics environment may
- * use this for platform specific initialization.
- */
- protected void addFontToPlatformFontPath(String platformFontName) {
- }
-
- protected void registerPlatformFontsUsedByFontConfiguration() {
- }
-
- /**
- * Determines whether the given font is a logical font.
- */
- public static boolean isLogicalFont(Font f) {
- return FontConfiguration.isLogicalFontFamilyName(f.getFamily());
- }
-
- /**
- * Return the default font configuration.
- */
- public FontConfiguration getFontConfiguration() {
- return fontConfig;
- }
-
- /**
* Return the bounds of a GraphicsDevice, less its screen insets.
* See also java.awt.GraphicsEnvironment.getUsableBounds();
*/
@@ -1209,45 +237,6 @@
}
/**
- * This method is provided for internal and exclusive use by Swing.
- * This method should no longer be called, instead directly call
- * FontManager.fontSupportsDefaultEncoding(Font).
- * This method will be removed once Swing is updated to no longer
- * call it.
- */
- public static boolean fontSupportsDefaultEncoding(Font font) {
- return FontManager.fontSupportsDefaultEncoding(font);
- }
-
- public static void useAlternateFontforJALocales() {
- FontManager.useAlternateFontforJALocales();
- }
-
- /*
- * This invocation is not in a privileged block because
- * all privileged operations (reading files and properties)
- * was conducted on the creation of the GE
- */
- public void
- createCompositeFonts(ConcurrentHashMap<String, Font2D> altNameCache,
- boolean preferLocale,
- boolean preferProportional) {
-
- FontConfiguration fontConfig =
- createFontConfiguration(preferLocale, preferProportional);
- initCompositeFonts(fontConfig, altNameCache);
- }
-
- /* If (as we do on X11) need to set a platform font path,
- * then the needed path may be specified by the platform
- * specific FontConfiguration class & data file. Such platforms
- * (ie X11) need to override this method to retrieve this information
- * into suitable data structures.
- */
- protected void getPlatformFontPathFromFontConfig() {
- }
-
- /**
* From the DisplayChangedListener interface; called
* when the display mode has been changed.
*/
--- a/jdk/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java Mon Oct 05 18:22:00 2009 -0700
@@ -171,9 +171,9 @@
float lw;
if (thin) {
if (antialias) {
- lw = 0.5f;
+ lw = userSpaceLineWidth(at, 0.5f);
} else {
- lw = 1.0f;
+ lw = userSpaceLineWidth(at, 1.0f);
}
} else {
lw = bs.getLineWidth();
@@ -189,6 +189,72 @@
lsink);
}
+ private float userSpaceLineWidth(AffineTransform at, float lw) {
+
+ double widthScale;
+
+ if ((at.getType() & (AffineTransform.TYPE_GENERAL_TRANSFORM |
+ AffineTransform.TYPE_GENERAL_SCALE)) != 0) {
+ widthScale = Math.sqrt(at.getDeterminant());
+ } else {
+ /* First calculate the "maximum scale" of this transform. */
+ double A = at.getScaleX(); // m00
+ double C = at.getShearX(); // m01
+ double B = at.getShearY(); // m10
+ double D = at.getScaleY(); // m11
+
+ /*
+ * Given a 2 x 2 affine matrix [ A B ] such that
+ * [ C D ]
+ * v' = [x' y'] = [Ax + Cy, Bx + Dy], we want to
+ * find the maximum magnitude (norm) of the vector v'
+ * with the constraint (x^2 + y^2 = 1).
+ * The equation to maximize is
+ * |v'| = sqrt((Ax+Cy)^2+(Bx+Dy)^2)
+ * or |v'| = sqrt((AA+BB)x^2 + 2(AC+BD)xy + (CC+DD)y^2).
+ * Since sqrt is monotonic we can maximize |v'|^2
+ * instead and plug in the substitution y = sqrt(1 - x^2).
+ * Trigonometric equalities can then be used to get
+ * rid of most of the sqrt terms.
+ */
+
+ double EA = A*A + B*B; // x^2 coefficient
+ double EB = 2*(A*C + B*D); // xy coefficient
+ double EC = C*C + D*D; // y^2 coefficient
+
+ /*
+ * There is a lot of calculus omitted here.
+ *
+ * Conceptually, in the interests of understanding the
+ * terms that the calculus produced we can consider
+ * that EA and EC end up providing the lengths along
+ * the major axes and the hypot term ends up being an
+ * adjustment for the additional length along the off-axis
+ * angle of rotated or sheared ellipses as well as an
+ * adjustment for the fact that the equation below
+ * averages the two major axis lengths. (Notice that
+ * the hypot term contains a part which resolves to the
+ * difference of these two axis lengths in the absence
+ * of rotation.)
+ *
+ * In the calculus, the ratio of the EB and (EA-EC) terms
+ * ends up being the tangent of 2*theta where theta is
+ * the angle that the long axis of the ellipse makes
+ * with the horizontal axis. Thus, this equation is
+ * calculating the length of the hypotenuse of a triangle
+ * along that axis.
+ */
+
+ double hypot = Math.sqrt(EB*EB + (EA-EC)*(EA-EC));
+ /* sqrt omitted, compare to squared limits below. */
+ double widthsquared = ((EA + EC + hypot)/2.0);
+
+ widthScale = Math.sqrt(widthsquared);
+ }
+
+ return (float) (lw / widthScale);
+ }
+
void strokeTo(Shape src,
AffineTransform at,
float width,
--- a/jdk/src/share/classes/sun/print/PSPrinterJob.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java Mon Oct 05 18:22:00 2009 -0700
@@ -87,6 +87,8 @@
import sun.awt.FontDescriptor;
import sun.awt.PlatformFont;
import sun.awt.SunToolkit;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
import java.nio.charset.*;
import java.nio.CharBuffer;
@@ -1077,7 +1079,7 @@
}
int styleMask = font.getStyle() |
- sun.font.FontManager.getFont2D(font).getStyle();
+ FontUtilities.getFont2D(font).getStyle();
String style = FontConfiguration.getStyleString(styleMask);
--- a/jdk/src/share/classes/sun/print/PathGraphics.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/print/PathGraphics.java Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,8 @@
import sun.font.Font2D;
import sun.font.Font2DHandle;
import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
import java.awt.Color;
import java.awt.Font;
@@ -698,7 +700,7 @@
}
Font font = g.getFont();
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
if (font2D.handle.font2D != font2D) {
/* suspicious, may be a bad font. lets bail */
return false;
@@ -933,7 +935,7 @@
* The logic here is erring on the side of caution, in particular
* in including supplementary characters.
*/
- if (FontManager.isComplexText(chars, 0, chars.length)) {
+ if (FontUtilities.isComplexText(chars, 0, chars.length)) {
return printGlyphVector(g, x, y);
}
--- a/jdk/src/share/classes/sun/swing/SwingUtilities2.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/classes/sun/swing/SwingUtilities2.java Mon Oct 05 18:22:00 2009 -0700
@@ -53,7 +53,7 @@
import java.io.*;
import java.util.*;
import sun.font.FontDesignMetrics;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
import sun.java2d.SunGraphicsEnvironment;
import java.util.concurrent.Callable;
@@ -202,7 +202,7 @@
* <tt>false</tt> if TextLayout is not required
*/
public static final boolean isComplexLayout(char[] text, int start, int limit) {
- return FontManager.isComplexText(text, start, limit);
+ return FontUtilities.isComplexText(text, start, limit);
}
//
--- a/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -37,6 +37,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 AlternateSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
{
// NOTE: For now, we'll just pick the first alternative...
@@ -64,3 +66,5 @@
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __ALTERNATESUBSTITUTIONSUBTABLES_H
#define __ALTERNATESUBSTITUTIONSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "OpenTypeTables.h"
#include "GlyphSubstitutionTables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct AlternateSetTable
{
le_uint16 glyphCount;
@@ -52,4 +59,5 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/AnchorTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AnchorTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "AnchorTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
void AnchorTable::getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstance,
LEPoint &anchor) const
{
@@ -124,3 +126,6 @@
fontInstance->pixelsToUnits(pixels, anchor);
}
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/AnchorTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AnchorTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,10 +32,17 @@
#ifndef __ANCHORTABLES_H
#define __ANCHORTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
struct AnchorTable
{
le_uint16 anchorFormat;
@@ -66,5 +73,7 @@
void getAnchor(const LEFontInstance *fontInstance, LEPoint &anchor) const;
};
+U_NAMESPACE_END
+#endif
-#endif
+
--- a/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -49,23 +49,25 @@
#include "ArabicShaping.h"
#include "CanonShaping.h"
+U_NAMESPACE_BEGIN
+
le_bool CharSubstitutionFilter::accept(LEGlyphID glyph) const
{
return fFontInstance->canDisplay((LEUnicode) glyph);
}
-ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(
- const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ArabicOpenTypeLayoutEngine)
+
+ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
{
fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
fFeatureOrder = TRUE;
}
-ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(
- const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
{
fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
@@ -86,9 +88,8 @@
// Input: characters
// Output: characters, char indices, tags
// Returns: output character count
-le_int32 ArabicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 ArabicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -124,8 +125,8 @@
return count;
}
-void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -137,24 +138,20 @@
}
if (fGPOSTable != NULL) {
- OpenTypeLayoutEngine::adjustGlyphPositions(chars, offset, count,
- reverse, glyphStorage, success);
+ OpenTypeLayoutEngine::adjustGlyphPositions(chars, offset, count, reverse, glyphStorage, success);
} else if (fGDEFTable != NULL) {
GDEFMarkFilter filter(fGDEFTable);
adjustMarkGlyphs(glyphStorage, &filter, success);
} else {
- GlyphDefinitionTableHeader *gdefTable =
- (GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
+ GlyphDefinitionTableHeader *gdefTable = (GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
GDEFMarkFilter filter(gdefTable);
adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
}
}
-UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(
- const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
: ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
{
fGSUBTable = (const GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
@@ -169,8 +166,7 @@
}
// "glyphs", "indices" -> glyphs, indices
-le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(
- LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -193,17 +189,14 @@
glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
- ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE,
- TRUE, glyphStorage, success);
+ ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE, TRUE, glyphStorage, success);
LE_DELETE_ARRAY(tempChars);
return tempGlyphCount;
}
-void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -228,9 +221,8 @@
}
}
-void UnicodeArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void UnicodeArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -245,3 +237,6 @@
adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
}
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -43,6 +43,8 @@
#include "GlyphDefinitionTables.h"
#include "GlyphPositioningTables.h"
+U_NAMESPACE_BEGIN
+
/**
* This class implements OpenType layout for Arabic fonts. It overrides
* the characerProcessing method to assign the correct OpenType feature
@@ -71,8 +73,8 @@
*
* @internal
*/
- ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+ ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
/**
* This constructor is used when the font requires a "canned" GSUB table which can't be known
@@ -87,8 +89,8 @@
*
* @internal
*/
- ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, le_int32 typoFlags);
+ ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -97,6 +99,20 @@
*/
virtual ~ArabicOpenTypeLayoutEngine();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
/**
@@ -108,8 +124,7 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a
- * right to left directional run
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
*
* Output parameters:
* @param outChars - the output character arrayt
@@ -121,9 +136,8 @@
*
* @internal
*/
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method applies the GPOS table if it is present, otherwise it ensures that all vowel
@@ -142,11 +156,9 @@
*
* @internal
*/
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
- // static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
- // le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ // static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
};
@@ -178,8 +190,8 @@
*
* @internal
*/
- UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+ UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -208,8 +220,7 @@
*
* @internal
*/
- virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method copies the input characters into the output glyph index array,
@@ -227,8 +238,7 @@
*
* @internal
*/
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, le_bool mirror,
+ virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
@@ -245,8 +255,9 @@
*
* @internal
*/
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/ArabicShaping.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicShaping.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "LEGlyphStorage.h"
#include "ClassDefinitionTables.h"
+U_NAMESPACE_BEGIN
+
// This table maps Unicode joining types to
// ShapeTypes.
const ArabicShaping::ShapeType ArabicShaping::shapeTypes[] =
@@ -102,9 +104,7 @@
#define markFeatureMask 0x00040000UL
#define mkmkFeatureMask 0x00020000UL
-#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | \
- markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | \
- dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
+#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
#define SHAPE_MASK 0xF0000000UL
@@ -226,3 +226,5 @@
adjustTags(erout, 2, glyphStorage);
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ArabicShaping.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicShaping.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __ARABICSHAPING_H
#define __ARABICSHAPING_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
-class ArabicShaping {
+class ArabicShaping /* not : public UObject because all methods are static */ {
public:
// Joining types
enum JoiningTypes
@@ -74,8 +81,8 @@
typedef le_int32 ShapeType;
- static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount,
- le_int32 charMax, le_bool rightToLeft, LEGlyphStorage &glyphStorage);
+ static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
+ le_bool rightToLeft, LEGlyphStorage &glyphStorage);
static const FeatureMap *getFeatureMap(le_int32 &count);
@@ -88,8 +95,8 @@
static const le_uint8 shapingTypeTable[];
static const ShapeType shapeTypes[];
- static void adjustTags(le_int32 outIndex, le_int32 shapeOffset,
- LEGlyphStorage &glyphStorage);
+ static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage);
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/AttachmentPosnSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AttachmentPosnSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __ATTACHMENTPOSITIONINGSUBTABLES_H
#define __ATTACHMENTPOSITIONINGSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "GlyphPositioningTables.h"
#include "ValueRecords.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct AttachmentPositioningSubtable : GlyphPositioningSubtable
{
Offset baseCoverageTableOffset;
@@ -55,4 +62,6 @@
return getGlyphCoverage(baseCoverageTableOffset, baseGlyphID);
}
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/CanonData.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CanonData.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,8 @@
#include "LETypes.h"
#include "CanonShaping.h"
+U_NAMESPACE_BEGIN
+
const le_uint8 CanonShaping::glyphSubstitutionTable[] = {
0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x58, 0x02, 0x86, 0x00, 0x12, 0x61, 0x72, 0x61, 0x62,
0x00, 0x6E, 0x62, 0x65, 0x6E, 0x67, 0x00, 0x82, 0x63, 0x79, 0x72, 0x6C, 0x00, 0x8E, 0x64, 0x65,
@@ -3773,3 +3775,5 @@
0x00, 0xDC, 0xD1, 0x85, 0xD1, 0x89, 0x00, 0xE6, 0xD1, 0x8A, 0xD1, 0x8B, 0x00, 0xDC, 0xD1, 0xAA,
0xD1, 0xAD, 0x00, 0xE6, 0xD2, 0x42, 0xD2, 0x44, 0x00, 0xE6
};
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CanonShaping.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CanonShaping.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,8 +35,9 @@
#include "GlyphDefinitionTables.h"
#include "ClassDefinitionTables.h"
-void CanonShaping::sortMarks(le_int32 *indices,
- const le_int32 *combiningClasses, le_int32 index, le_int32 limit)
+U_NAMESPACE_BEGIN
+
+void CanonShaping::sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit)
{
for (le_int32 j = index + 1; j < limit; j += 1) {
le_int32 i;
@@ -55,13 +56,11 @@
}
}
-void CanonShaping::reorderMarks(const LEUnicode *inChars, le_int32 charCount,
- le_bool rightToLeft, LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+void CanonShaping::reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage)
{
- const GlyphDefinitionTableHeader *gdefTable =
- (const GlyphDefinitionTableHeader *) glyphDefinitionTable;
- const ClassDefinitionTable *classTable =
- gdefTable->getMarkAttachClassDefinitionTable();
+ const GlyphDefinitionTableHeader *gdefTable = (const GlyphDefinitionTableHeader *) glyphDefinitionTable;
+ const ClassDefinitionTable *classTable = gdefTable->getMarkAttachClassDefinitionTable();
le_int32 *combiningClasses = LE_NEW_ARRAY(le_int32, charCount);
le_int32 *indices = LE_NEW_ARRAY(le_int32, charCount);
LEErrorCode status = LE_NO_ERROR;
@@ -103,3 +102,5 @@
LE_DELETE_ARRAY(indices);
LE_DELETE_ARRAY(combiningClasses);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CanonShaping.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CanonShaping.h Mon Oct 05 18:22:00 2009 -0700
@@ -34,20 +34,22 @@
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
-class CanonShaping
+class CanonShaping /* not : public UObject because all members are static */
{
public:
static const le_uint8 glyphSubstitutionTable[];
static const le_uint8 glyphDefinitionTable[];
- static void reorderMarks(const LEUnicode *inChars, le_int32 charCount,
- le_bool rightToLeft, LEUnicode *outChars, LEGlyphStorage &glyphStorage);
+ static void reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage);
private:
- static void sortMarks(le_int32 *indices, const le_int32 *combiningClasses,
- le_int32 index, le_int32 limit);
+ static void sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit);
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "LETypes.h"
#include "LEGlyphFilter.h"
+U_NAMESPACE_BEGIN
+
class LEFontInstance;
/**
@@ -43,7 +45,7 @@
*
* @internal
*/
-class CharSubstitutionFilter : public LEGlyphFilter
+class CharSubstitutionFilter : public UMemory, public LEGlyphFilter
{
private:
/**
@@ -98,4 +100,7 @@
le_bool accept(LEGlyphID glyph) const;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "ClassDefinitionTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_int32 ClassDefinitionTable::getGlyphClass(LEGlyphID glyphID) const
{
switch(SWAPW(classFormat)) {
@@ -139,3 +141,5 @@
return FALSE;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __CLASSDEFINITIONTABLES_H
#define __CLASSDEFINITIONTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
struct ClassDefinitionTable
{
le_uint16 classFormat;
@@ -69,4 +76,5 @@
le_bool hasGlyphClass(le_int32 glyphClass) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphInsertion.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphInsertion.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __CONTEXTUALGLYPHINSERTION_H
#define __CONTEXTUALGLYPHINSERTION_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
#include "StateTables.h"
#include "MorphTables.h"
#include "MorphStateTables.h"
+U_NAMESPACE_BEGIN
+
struct ContextualGlyphInsertionHeader : MorphStateTableHeader
{
};
@@ -60,4 +67,5 @@
ByteOffset markedInsertionListOffset;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -39,6 +39,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ContextualGlyphSubstitutionProcessor)
+
ContextualGlyphSubstitutionProcessor::ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
: StateTableProcessor(morphSubtableHeader)
{
@@ -57,8 +61,7 @@
markGlyph = 0;
}
-ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage,
- le_int32 &currGlyph, EntryTableIndex index)
+ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
{
const ContextualGlyphSubstitutionStateEntry *entry = &entryTable[index];
ByteOffset newState = SWAPW(entry->newStateOffset);
@@ -97,3 +100,5 @@
void ContextualGlyphSubstitutionProcessor::endStateTable()
{
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
#define __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "StateTableProcessor.h"
#include "ContextualGlyphSubstitution.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class ContextualGlyphSubstitutionProcessor : public StateTableProcessor
@@ -52,6 +59,20 @@
ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
virtual ~ContextualGlyphSubstitutionProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
ContextualGlyphSubstitutionProcessor();
@@ -62,6 +83,8 @@
le_int32 markGlyph;
const ContextualGlyphSubstitutionHeader *contextualGlyphSubstitutionHeader;
+
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstitution.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstitution.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,18 @@
#ifndef __CONTEXTUALGLYPHSUBSTITUTION_H
#define __CONTEXTUALGLYPHSUBSTITUTION_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
#include "StateTables.h"
#include "MorphTables.h"
+U_NAMESPACE_BEGIN
+
struct ContextualGlyphSubstitutionHeader : MorphStateTableHeader
{
ByteOffset substitutionTableOffset;
@@ -55,4 +62,5 @@
WordOffset currOffset;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -39,6 +38,8 @@
#include "CoverageTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
/*
NOTE: This could be optimized somewhat by keeping track
of the previous sequenceIndex in the loop and doing next()
@@ -350,7 +351,7 @@
// NOTE: This could be a #define, but that seems to confuse
// the Visual Studio .NET 2003 compiler on the calls to the
-// GlyphIterator constructor. It somehow can't decide if
+// GlyphIterator constructor. It somehow can't decide if
// emptyFeatureList matches an le_uint32 or an le_uint16...
static const FeatureMask emptyFeatureList = 0x00000000UL;
@@ -542,3 +543,5 @@
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __CONTEXTUALSUBSTITUTIONSUBTABLES_H
#define __CONTEXTUALSUBSTITUTIONSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "GlyphIterator.h"
#include "LookupProcessor.h"
+U_NAMESPACE_BEGIN
+
struct SubstitutionLookupRecord
{
le_uint16 sequenceIndex;
@@ -218,4 +225,5 @@
le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/CoverageTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CoverageTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "CoverageTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_int32 CoverageTable::getGlyphCoverage(LEGlyphID glyphID) const
{
switch(SWAPW(coverageFormat))
@@ -106,3 +108,5 @@
return startCoverageIndex + (ttGlyphID - firstInRange);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CoverageTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CoverageTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __COVERAGETABLES_H
#define __COVERAGETABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
struct CoverageTable
{
le_uint16 coverageFormat;
@@ -58,5 +65,5 @@
le_int32 getGlyphCoverage(LEGlyphID glyphID) const;
};
-
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -37,6 +37,8 @@
#include "OpenTypeUtilities.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 CursiveAttachmentSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
{
LEGlyphID glyphID = glyphIterator->getCurrGlyphID();
@@ -68,3 +70,5 @@
return 1;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,10 +32,17 @@
#ifndef __CURSIVEATTACHMENTSUBTABLES_H
#define __CURSIVEATTACHMENTSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "GlyphPositioningTables.h"
+U_NAMESPACE_BEGIN
+
class LEFontInstance;
class GlyphIterator;
@@ -53,4 +60,7 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/DefaultCharMapper.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/DefaultCharMapper.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -32,9 +31,16 @@
#ifndef __DEFAULTCHARMAPPER_H
#define __DEFAULTCHARMAPPER_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
+U_NAMESPACE_BEGIN
+
/**
* This class is an instance of LECharMapper which
* implements control character filtering and bidi
@@ -42,7 +48,7 @@
*
* @see LECharMapper
*/
-class DefaultCharMapper : public LECharMapper
+class DefaultCharMapper : public UMemory, public LECharMapper
{
private:
le_bool fFilterControls;
@@ -77,4 +83,5 @@
LEUnicode32 mapChar(LEUnicode32 ch) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/DeviceTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/DeviceTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
*
*/
@@ -34,6 +35,8 @@
#include "DeviceTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
const le_uint16 DeviceTable::fieldMasks[] = {0x0003, 0x000F, 0x00FF};
const le_uint16 DeviceTable::fieldSignBits[] = {0x0002, 0x0008, 0x0080};
const le_uint16 DeviceTable::fieldBits[] = { 2, 4, 8};
@@ -62,3 +65,5 @@
return result;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/DeviceTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/DeviceTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -32,10 +33,15 @@
#ifndef __DEVICETABLES_H
#define __DEVICETABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
-#include "GlyphIterator.h"
-#include "GlyphPositionAdjustments.h"
+
+U_NAMESPACE_BEGIN
struct DeviceTable
{
@@ -52,5 +58,7 @@
static const le_uint16 fieldBits[];
};
+U_NAMESPACE_END
+#endif
-#endif
+
--- a/jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,7 +25,8 @@
/*
*
- * (C) Copyright IBM Corp. 2003 - All Rights Reserved
+ *
+ * (C) Copyright IBM Corp. 2002 - All Rights Reserved
*
*/
@@ -37,6 +38,9 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+
// FIXME: should look at the format too... maybe have a sub-class for it?
le_uint32 ExtensionSubtable::process(const LookupProcessor *lookupProcessor, le_uint16 lookupType,
GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
@@ -52,3 +56,5 @@
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ExtensionSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ExtensionSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 2002-2003 - All Rights Reserved
*
*/
@@ -32,12 +33,19 @@
#ifndef __EXTENSIONSUBTABLES_H
#define __EXTENSIONSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "GlyphSubstitutionTables.h"
#include "LookupProcessor.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct ExtensionSubtable //: GlyphSubstitutionSubtable
{
le_uint16 substFormat;
@@ -48,4 +56,5 @@
GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/Features.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Features.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
*
*/
@@ -35,6 +36,8 @@
#include "Features.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
const FeatureTable *FeatureListTable::getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const
{
if (featureIndex >= SWAPW(featureCount)) {
@@ -79,3 +82,5 @@
return 0;
#endif
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/Features.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Features.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __FEATURES_H
#define __FEATURES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
struct FeatureRecord
{
ATag featureTag;
@@ -53,9 +60,10 @@
le_uint16 featureCount;
FeatureRecord featureRecordArray[ANY_NUMBER];
- const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
+ const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
const FeatureTable *getFeatureTable(LETag featureTag) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,8 @@
#include "GDEFMarkFilter.h"
#include "GlyphDefinitionTables.h"
+U_NAMESPACE_BEGIN
+
GDEFMarkFilter::GDEFMarkFilter(const GlyphDefinitionTableHeader *gdefTable)
{
classDefTable = gdefTable->getGlyphClassDefinitionTable();
@@ -50,3 +52,5 @@
return glyphClass == gcdMarkGlyph;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,18 @@
#ifndef __GDEFMARKFILTER__H
#define __GDEFMARKFILTER__H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "GlyphDefinitionTables.h"
-class GDEFMarkFilter : public LEGlyphFilter
+U_NAMESPACE_BEGIN
+
+class GDEFMarkFilter : public UMemory, public LEGlyphFilter
{
private:
const GlyphClassDefinitionTable *classDefTable;
@@ -51,5 +58,5 @@
virtual le_bool accept(LEGlyphID glyph) const;
};
-
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -23,6 +23,7 @@
*
*/
+
/*
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -36,8 +37,11 @@
#include "MorphTables.h"
-GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, const MorphTableHeader *morphTable)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(GXLayoutEngine)
+
+GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable)
: LayoutEngine(fontInstance, scriptCode, languageCode, 0), fMorphTable(morphTable)
{
// nothing else to do?
@@ -49,9 +53,7 @@
}
// apply 'mort' table
-le_int32 GXLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage,
- LEErrorCode &success)
+le_int32 GXLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -74,9 +76,8 @@
}
// apply positional tables
-void GXLayoutEngine::adjustGlyphPositions(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_bool /*reverse*/,
- LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
+void GXLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool /*reverse*/,
+ LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -89,3 +90,5 @@
// FIXME: no positional processing yet...
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GXLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GXLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -23,6 +23,7 @@
*
*/
+
/*
*
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
@@ -37,6 +38,8 @@
#include "MorphTables.h"
+U_NAMESPACE_BEGIN
+
class LEFontInstance;
class LEGlyphStorage;
@@ -70,8 +73,7 @@
*
* @internal
*/
- GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, const MorphTableHeader *morphTable);
+ GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -80,6 +82,20 @@
*/
virtual ~GXLayoutEngine();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
/**
@@ -99,10 +115,8 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the text is in a
- * right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph
- * and char index arrays will be set.
+ * @param rightToLeft - <code>TRUE</code> if the text is in a right to left directional run
+ * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
*
* Output parameters:
* @param success - set to an error code if the operation fails
@@ -111,8 +125,7 @@
*
* @internal
*/
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
+ virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
@@ -120,16 +133,18 @@
* 'kern', 'trak', 'bsln', 'opbd' and 'just' tables.
*
* Input parameters:
- * @param glyphStorage - the object holding the glyph storage.
- * The positions will be updated as needed.
+ * @param glyphStorage - the object holding the glyph storage. The positions will be updated as needed.
*
* Output parameters:
* @param success - set to an error code if the operation fails
*
* @internal
*/
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,8 @@
#include "GlyphDefinitionTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
const GlyphClassDefinitionTable *GlyphDefinitionTableHeader::getGlyphClassDefinitionTable() const
{
return (const GlyphClassDefinitionTable *) ((char *) this + SWAPW(glyphClassDefOffset));
@@ -53,3 +55,5 @@
{
return (const MarkAttachClassDefinitionTable *) ((char *) this + SWAPW(MarkAttachClassDefOffset));
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,10 +32,17 @@
#ifndef __GLYPHDEFINITIONTABLES_H
#define __GLYPHDEFINITIONTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "ClassDefinitionTables.h"
+U_NAMESPACE_BEGIN
+
typedef ClassDefinitionTable GlyphClassDefinitionTable;
enum GlyphClassDefinitions
@@ -110,4 +117,5 @@
const MarkAttachClassDefinitionTable *getMarkAttachClassDefinitionTable() const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GlyphIterator.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphIterator.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,11 +38,10 @@
#include "Lookups.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
-GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage,
- GlyphPositionAdjustments *theGlyphPositionAdjustments,
- le_bool rightToLeft, le_uint16 theLookupFlags, FeatureMask theFeatureMask,
- const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
+GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
+ FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
: direction(1), position(-1), nextLimit(-1), prevLimit(-1),
glyphStorage(theGlyphStorage), glyphPositionAdjustments(theGlyphPositionAdjustments),
srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureMask(theFeatureMask),
@@ -262,8 +261,8 @@
glyphPositionAdjustments->setBaseOffset(position, baseOffset);
}
-void GlyphIterator::adjustCurrGlyphPositionAdjustment(float xPlacementAdjust,
- float yPlacementAdjust, float xAdvanceAdjust, float yAdvanceAdjust)
+void GlyphIterator::adjustCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
+ float xAdvanceAdjust, float yAdvanceAdjust)
{
if (direction < 0) {
if (position <= nextLimit || position >= prevLimit) {
@@ -281,8 +280,8 @@
glyphPositionAdjustments->adjustYAdvance(position, yAdvanceAdjust);
}
-void GlyphIterator::setCurrGlyphPositionAdjustment(float xPlacementAdjust,
- float yPlacementAdjust, float xAdvanceAdjust, float yAdvanceAdjust)
+void GlyphIterator::setCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
+ float xAdvanceAdjust, float yAdvanceAdjust)
{
if (direction < 0) {
if (position <= nextLimit || position >= prevLimit) {
@@ -484,10 +483,11 @@
do {
newPosition -= direction;
- } while (newPosition != prevLimit && glyphStorage[newPosition] != 0xFFFE &&
- filterGlyph(newPosition));
+ } while (newPosition != prevLimit && glyphStorage[newPosition] != 0xFFFE && filterGlyph(newPosition));
position = newPosition;
return position != prevLimit;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphIterator.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphIterator.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,26 +32,24 @@
#ifndef __GLYPHITERATOR_H
#define __GLYPHITERATOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "GlyphDefinitionTables.h"
-struct InsertionRecord
-{
- InsertionRecord *next;
- le_int32 position;
- le_int32 count;
- LEGlyphID glyphs[ANY_NUMBER];
-};
+U_NAMESPACE_BEGIN
class LEGlyphStorage;
class GlyphPositionAdjustments;
-class GlyphIterator {
+class GlyphIterator : public UMemory {
public:
- GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments,
- le_bool rightToLeft, le_uint16 theLookupFlags, FeatureMask theFeatureMask,
- const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
+ GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
+ FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
GlyphIterator(GlyphIterator &that);
@@ -122,4 +120,5 @@
GlyphIterator &operator=(const GlyphIterator &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GlyphLookupTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphLookupTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "GlyphLookupTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_bool GlyphLookupTableHeader::coversScript(LETag scriptTag) const
{
const ScriptListTable *scriptListTable = (const ScriptListTable *) ((char *)this + SWAPW(scriptListOffset));
@@ -51,3 +53,5 @@
// Note: don't have to SWAPW langSysTable->featureCount to check for non-zero.
return langSysTable != NULL && langSysTable->featureCount != 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphLookupTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphLookupTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __GLYPHLOOKUPTABLES_H
#define __GLYPHLOOKUPTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
struct GlyphLookupTableHeader
{
fixed32 version;
@@ -46,4 +53,7 @@
le_bool coversScriptAndLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
};
+U_NAMESPACE_END
+
#endif
+
--- a/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,8 @@
#include "LEGlyphStorage.h"
#include "LEFontInstance.h"
+U_NAMESPACE_BEGIN
+
#define CHECK_ALLOCATE_ARRAY(array, type, size) \
if (array == NULL) { \
array = (type *) new type[size]; \
@@ -185,3 +187,5 @@
return NULL;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,16 +32,23 @@
#ifndef __GLYPHPOSITIONADJUSTMENTS_H
#define __GLYPHPOSITIONADJUSTMENTS_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class LEFontInstance;
-class GlyphPositionAdjustments
+class GlyphPositionAdjustments : public UMemory
{
private:
- class Adjustment {
+ class Adjustment : public UMemory {
public:
inline Adjustment();
@@ -78,7 +85,7 @@
// allow copying of this class because all of its fields are simple types
};
- class EntryExitPoint
+ class EntryExitPoint : public UMemory
{
public:
inline EntryExitPoint();
@@ -144,14 +151,11 @@
inline void adjustXAdvance(le_int32 index, float xAdjustment);
inline void adjustYAdvance(le_int32 index, float yAdjustment);
- void setEntryPoint(le_int32 index, LEPoint &newEntryPoint,
- le_bool baselineIsLogicalEnd);
- void setExitPoint(le_int32 index, LEPoint &newExitPoint,
- le_bool baselineIsLogicalEnd);
+ void setEntryPoint(le_int32 index, LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd);
+ void setExitPoint(le_int32 index, LEPoint &newExitPoint, le_bool baselineIsLogicalEnd);
void setCursiveGlyph(le_int32 index, le_bool baselineIsLogicalEnd);
- void applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft,
- const LEFontInstance *fontInstance);
+ void applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft, const LEFontInstance *fontInstance);
};
inline GlyphPositionAdjustments::Adjustment::Adjustment()
@@ -160,10 +164,8 @@
// nothing else to do!
}
-inline GlyphPositionAdjustments::Adjustment::Adjustment(float xPlace, float yPlace,
- float xAdv, float yAdv, le_int32 baseOff)
- : xPlacement(xPlace), yPlacement(yPlace), xAdvance(xAdv), yAdvance(yAdv),
- baseOffset(baseOff)
+inline GlyphPositionAdjustments::Adjustment::Adjustment(float xPlace, float yPlace, float xAdv, float yAdv, le_int32 baseOff)
+ : xPlacement(xPlace), yPlacement(yPlace), xAdvance(xAdv), yAdvance(yAdv), baseOffset(baseOff)
{
// nothing else to do!
}
@@ -246,7 +248,7 @@
inline GlyphPositionAdjustments::EntryExitPoint::EntryExitPoint()
: fFlags(0)
{
- fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fEntryPoint.fY = 0;
+ fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fExitPoint.fY = 0;
}
inline GlyphPositionAdjustments::EntryExitPoint::~EntryExitPoint()
@@ -264,12 +266,10 @@
return (fFlags & EEF_BASELINE_IS_LOGICAL_END) != 0;
}
-inline void GlyphPositionAdjustments::EntryExitPoint::setEntryPoint(
- LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd)
+inline void GlyphPositionAdjustments::EntryExitPoint::setEntryPoint(LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd)
{
if (baselineIsLogicalEnd) {
- fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH |
- EEF_BASELINE_IS_LOGICAL_END);
+ fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
} else {
fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH);
}
@@ -277,12 +277,10 @@
fEntryPoint = newEntryPoint;
}
-inline void GlyphPositionAdjustments::EntryExitPoint::setExitPoint(
- LEPoint &newExitPoint, le_bool baselineIsLogicalEnd)
+inline void GlyphPositionAdjustments::EntryExitPoint::setExitPoint(LEPoint &newExitPoint, le_bool baselineIsLogicalEnd)
{
if (baselineIsLogicalEnd) {
- fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH |
- EEF_BASELINE_IS_LOGICAL_END);
+ fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
} else {
fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH);
}
@@ -290,8 +288,7 @@
fExitPoint = newExitPoint;
}
-inline void GlyphPositionAdjustments::EntryExitPoint::setCursiveGlyph(
- le_bool baselineIsLogicalEnd)
+inline void GlyphPositionAdjustments::EntryExitPoint::setCursiveGlyph(le_bool baselineIsLogicalEnd)
{
if (baselineIsLogicalEnd) {
fFlags |= (EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
@@ -386,4 +383,5 @@
return fEntryExitPoints != NULL;
}
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -40,18 +39,18 @@
#include "LEGlyphStorage.h"
#include "GlyphPositionAdjustments.h"
-void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage,
- GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft,
- LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
+U_NAMESPACE_BEGIN
+
+void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft,
+ LETag scriptTag, LETag languageTag,
+ const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
+ const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
{
- GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap,
- featureMapCount, featureOrder);
+ GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap, featureMapCount, featureOrder);
- processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft,
- glyphDefinitionTableHeader, fontInstance);
+ processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance);
glyphPositionAdjustments->applyCursiveAdjustments(glyphStorage, rightToLeft, fontInstance);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -32,11 +31,18 @@
#ifndef __GLYPHPOSITIONINGTABLES_H
#define __GLYPHPOSITIONINGTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "Lookups.h"
#include "GlyphLookupTables.h"
+U_NAMESPACE_BEGIN
+
class LEFontInstance;
class LEGlyphStorage;
class LEGlyphFilter;
@@ -45,12 +51,10 @@
struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
{
- void process(LEGlyphStorage &glyphStorage,
- GlyphPositionAdjustments *glyphPositionAdjustments,
+ void process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
le_bool rightToLeft, LETag scriptTag, LETag languageTag,
const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
+ const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
};
enum GlyphPositioningSubtableTypes
@@ -68,4 +72,5 @@
typedef LookupSubtable GlyphPositioningSubtable;
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
*
*/
@@ -50,6 +49,8 @@
#include "GlyphPosnLookupProc.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
// Aside from the names, the contextual positioning subtables are
// the same as the contextual substitution subtables.
typedef ContextualSubstitutionSubtable ContextualPositioningSubtable;
@@ -57,8 +58,7 @@
GlyphPositioningLookupProcessor::GlyphPositioningLookupProcessor(
const GlyphPositioningTableHeader *glyphPositioningTableHeader,
- LETag scriptTag, LETag languageTag,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
: LookupProcessor(
(char *) glyphPositioningTableHeader,
SWAPW(glyphPositioningTableHeader->scriptListOffset),
@@ -166,3 +166,5 @@
GlyphPositioningLookupProcessor::~GlyphPositioningLookupProcessor()
{
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -32,6 +31,11 @@
#ifndef __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
#define __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -42,12 +46,13 @@
#include "GlyphIterator.h"
#include "LookupProcessor.h"
+U_NAMESPACE_BEGIN
+
class GlyphPositioningLookupProcessor : public LookupProcessor
{
public:
GlyphPositioningLookupProcessor(const GlyphPositioningTableHeader *glyphPositioningTableHeader,
- LETag scriptTag, LETag languageTag,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
virtual ~GlyphPositioningLookupProcessor();
@@ -63,4 +68,5 @@
GlyphPositioningLookupProcessor &operator=(const GlyphPositioningLookupProcessor &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -48,17 +48,17 @@
#include "GlyphSubstLookupProc.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
GlyphSubstitutionLookupProcessor::GlyphSubstitutionLookupProcessor(
const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
- LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
+ LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
: LookupProcessor(
(char *) glyphSubstitutionTableHeader,
SWAPW(glyphSubstitutionTableHeader->scriptListOffset),
SWAPW(glyphSubstitutionTableHeader->featureListOffset),
SWAPW(glyphSubstitutionTableHeader->lookupListOffset),
- scriptTag, languageTag, featureMap, featureMapCount, featureOrder)
- , fFilter(filter)
+ scriptTag, languageTag, featureMap, featureMapCount, featureOrder), fFilter(filter)
{
// anything?
}
@@ -143,3 +143,5 @@
GlyphSubstitutionLookupProcessor::~GlyphSubstitutionLookupProcessor()
{
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -32,6 +31,11 @@
#ifndef __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
#define __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "LEFontInstance.h"
@@ -43,12 +47,13 @@
#include "GlyphIterator.h"
#include "LookupProcessor.h"
+U_NAMESPACE_BEGIN
+
class GlyphSubstitutionLookupProcessor : public LookupProcessor
{
public:
GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
- LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
+ LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
virtual ~GlyphSubstitutionLookupProcessor();
@@ -65,4 +70,5 @@
GlyphSubstitutionLookupProcessor &operator=(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -40,14 +40,15 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
-le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage,
- le_bool rightToLeft, LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEGlyphFilter *filter, const FeatureMap *featureMap,
- le_int32 featureMapCount, le_bool featureOrder) const
+U_NAMESPACE_BEGIN
+
+le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
+ const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
+ const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
{
- GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap,
- featureMapCount, featureOrder);
+ GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder);
return processor.process(glyphStorage, NULL, rightToLeft, glyphDefinitionTableHeader, NULL);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,22 +32,27 @@
#ifndef __GLYPHSUBSTITUTIONTABLES_H
#define __GLYPHSUBSTITUTIONTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
#include "Lookups.h"
#include "GlyphLookupTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class LEGlyphFilter;
struct GlyphDefinitionTableHeader;
struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
{
- le_int32 process(LEGlyphStorage &glyphStorage,
- le_bool rightToLeft, LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEGlyphFilter *filter, const FeatureMap *featureMap,
- le_int32 featureMapCount, le_bool featureOrder) const;
+ le_int32 process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
+ const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEGlyphFilter *filter,
+ const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
};
enum GlyphSubstitutionSubtableTypes
@@ -64,4 +69,5 @@
typedef LookupSubtable GlyphSubstitutionSubtable;
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/HanLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/HanLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* HanLayoutEngine.cpp: OpenType processing for Han fonts.
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
@@ -41,6 +40,10 @@
#include "LEGlyphStorage.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HanOpenTypeLayoutEngine)
+
#define loclFeatureTag LE_LOCL_FEATURE_TAG
#define smplFeatureTag LE_SMPL_FEATURE_TAG
#define tradFeatureTag LE_TRAD_FEATURE_TAG
@@ -60,9 +63,8 @@
#define features (loclFeatureMask)
-HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
- const GlyphSubstitutionTableHeader *gsubTable)
+HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
{
fFeatureMap = featureMap;
@@ -74,9 +76,8 @@
// nothing to do
}
-le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
- LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
+ LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -104,3 +105,5 @@
return count;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/HanLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/HanLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -23,8 +23,8 @@
*
*/
+
/*
- *
* HanLayoutEngine.h: OpenType processing for Han fonts.
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
@@ -40,6 +40,8 @@
#include "GlyphSubstitutionTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
/**
@@ -69,9 +71,8 @@
*
* @internal
*/
- HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+ HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
/**
@@ -81,6 +82,20 @@
*/
virtual ~HanOpenTypeLayoutEngine();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
/**
@@ -92,10 +107,8 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a
- * right to left directional run
- * @param glyphStorage - the object holding the glyph storage. The char
- * index and auxillary data arrays will be set.
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+ * @param glyphStorage - the object holding the glyph storage. The char index and auxillary data arrays will be set.
*
* Output parameters:
* @param outChars - the output character arrayt
@@ -107,9 +120,10 @@
*
* @internal
*/
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/IndicClassTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicClassTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "OpenTypeUtilities.h"
#include "IndicReordering.h"
+U_NAMESPACE_BEGIN
+
// Split matra table indices
#define _x1 (1 << CF_INDEX_SHIFT)
#define _x2 (2 << CF_INDEX_SHIFT)
@@ -279,7 +281,7 @@
static const IndicClassTable mlymClassTable = {0x0D00, 0x0D6F, 3, MLYM_SCRIPT_FLAGS, mlymCharClasses, mlymSplitTable};
-static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 3, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable};
+static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 4, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable};
//
// IndicClassTable addresses
@@ -385,3 +387,5 @@
return classTable->getWorstCaseExpansion();
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -45,20 +45,20 @@
#include "IndicReordering.h"
-IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
- const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable),
- fMPreFixups(NULL)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicOpenTypeLayoutEngine)
+
+IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+ : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable), fMPreFixups(NULL)
{
fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
fFeatureOrder = TRUE;
}
-IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
- fMPreFixups(NULL)
+IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+ : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fMPreFixups(NULL)
{
fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
fFeatureOrder = TRUE;
@@ -71,9 +71,8 @@
// Input: characters, tags
// Output: glyphs, char indices
-le_int32 IndicOpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 IndicOpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -84,8 +83,7 @@
return 0;
}
- le_int32 retCount = OpenTypeLayoutEngine::glyphProcessing(chars, offset, count, max,
- rightToLeft, glyphStorage, success);
+ le_int32 retCount = OpenTypeLayoutEngine::glyphProcessing(chars, offset, count, max, rightToLeft, glyphStorage, success);
if (LE_FAILURE(success)) {
return 0;
@@ -99,9 +97,8 @@
// Input: characters
// Output: characters, char indices, tags
// Returns: output character count
-le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -131,9 +128,10 @@
// NOTE: assumes this allocates featureTags...
// (probably better than doing the worst case stuff here...)
- le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode,
- outChars, glyphStorage, &fMPreFixups);
+ le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage, &fMPreFixups);
+
glyphStorage.adoptGlyphCount(outCharCount);
-
return outCharCount;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -43,6 +43,8 @@
#include "GlyphDefinitionTables.h"
#include "GlyphPositioningTables.h"
+U_NAMESPACE_BEGIN
+
class MPreFixups;
class LEGlyphStorage;
@@ -77,9 +79,8 @@
*
* @internal
*/
- IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+ IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
/**
* This constructor is used when the font requires a "canned" GSUB table which can't be known
@@ -94,8 +95,8 @@
*
* @internal
*/
- IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+ IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -104,6 +105,20 @@
*/
virtual ~IndicOpenTypeLayoutEngine();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
/**
@@ -117,10 +132,9 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a
- * right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and character
- * index arrays will be set. The auxillary data array will be set to the feature tags.
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+ * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
+ * the auxillary data array will be set to the feature tags.
*
* Output parameters:
* @param success - set to an error code if the operation fails
@@ -129,9 +143,8 @@
*
* @internal
*/
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method does character to glyph mapping, applies the GSUB table and applies
@@ -147,11 +160,9 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a
- * right to left directional run
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
* @param featureTags - the feature tag array
- * @param glyphStorage - the glyph storage object. The glyph and char
- * index arrays will be set.
+ * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
*
* Output parameters:
* @param success - set to an error code if the operation fails
@@ -163,12 +174,14 @@
*
* @internal
*/
- virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage,
- LEErrorCode &success);
+ virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success);
private:
+
MPreFixups *fMPreFixups;
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/IndicRearrangement.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicRearrangement.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __INDICREARRANGEMENT_H
#define __INDICREARRANGEMENT_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
#include "StateTables.h"
#include "MorphTables.h"
#include "MorphStateTables.h"
+U_NAMESPACE_BEGIN
+
struct IndicRearrangementSubtableHeader : MorphStateTableHeader
{
};
@@ -78,4 +85,6 @@
{
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -39,6 +39,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicRearrangementProcessor)
+
IndicRearrangementProcessor::IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader)
: StateTableProcessor(morphSubtableHeader)
{
@@ -56,8 +60,7 @@
lastGlyph = 0;
}
-ByteOffset IndicRearrangementProcessor::processStateEntry(LEGlyphStorage &glyphStorage,
- le_int32 &currGlyph, EntryTableIndex index)
+ByteOffset IndicRearrangementProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
{
const IndicRearrangementStateEntry *entry = &entryTable[index];
ByteOffset newState = SWAPW(entry->newStateOffset);
@@ -416,3 +419,5 @@
break;
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __INDICREARRANGEMENTPROCESSOR_H
#define __INDICREARRANGEMENTPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "StateTableProcessor.h"
#include "IndicRearrangement.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class IndicRearrangementProcessor : public StateTableProcessor
@@ -54,12 +61,28 @@
IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader);
virtual ~IndicRearrangementProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
le_int32 firstGlyph;
le_int32 lastGlyph;
const IndicRearrangementStateEntry *entryTable;
const IndicRearrangementSubtableHeader *indicRearrangementSubtableHeader;
+
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/IndicReordering.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicReordering.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,8 @@
#include "LEGlyphStorage.h"
#include "MPreFixups.h"
+U_NAMESPACE_BEGIN
+
#define initFeatureTag LE_INIT_FEATURE_TAG
#define nuktFeatureTag LE_NUKT_FEATURE_TAG
#define akhnFeatureTag LE_AKHN_FEATURE_TAG
@@ -71,7 +73,7 @@
#define distFeatureMask 0x00020000UL
#define initFeatureMask 0x00010000UL
-class ReorderingOutput {
+class ReorderingOutput : public UMemory {
private:
le_int32 fOutIndex;
LEUnicode *fOutChars;
@@ -187,8 +189,7 @@
fOutIndex += 1;
}
- le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex,
- FeatureMask matraFeatures, le_bool wordStart)
+ le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex, FeatureMask matraFeatures, le_bool wordStart)
{
IndicClassTable::CharClass matraClass = classTable->getCharClass(matra);
@@ -219,13 +220,12 @@
return FALSE;
}
- void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier,
- le_uint32 vowelModifierIndex, FeatureMask vowelModifierFeatures)
+ void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier, le_uint32 vowelModifierIndex, FeatureMask vowelModifierFeatures)
{
IndicClassTable::CharClass vmClass = classTable->getCharClass(vowelModifier);
fVMIndex = vowelModifierIndex;
- fVMFeatures = vowelModifierFeatures;
+ fVMFeatures = vowelModifierFeatures;
if (IndicClassTable::isVowelModifier(vmClass)) {
switch (vmClass & CF_POS_MASK) {
@@ -244,13 +244,12 @@
}
}
- void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark,
- le_uint32 stressMarkIndex, FeatureMask stressMarkFeatures)
+ void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark, le_uint32 stressMarkIndex, FeatureMask stressMarkFeatures)
{
IndicClassTable::CharClass smClass = classTable->getCharClass(stressMark);
fSMIndex = stressMarkIndex;
- fSMFeatures = stressMarkFeatures;
+ fSMFeatures = stressMarkFeatures;
if (IndicClassTable::isStressMark(smClass)) {
switch (smClass & CF_POS_MASK) {
@@ -360,9 +359,7 @@
};
// TODO: Find better names for these!
-#define tagArray4 (nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | \
- blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | \
- blwmFeatureMask | abvmFeatureMask | distFeatureMask)
+#define tagArray4 (nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | blwmFeatureMask | abvmFeatureMask | distFeatureMask)
#define tagArray3 (pstfFeatureMask | tagArray4)
#define tagArray2 (halfFeatureMask | tagArray3)
#define tagArray1 (blwfFeatureMask | tagArray2)
@@ -415,8 +412,7 @@
return featureMap;
}
-le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable,
- const LEUnicode *chars, le_int32 prev, le_int32 charCount)
+le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
{
le_int32 cursor = prev;
le_int8 state = 0;
@@ -752,3 +748,5 @@
delete mpreFixups;
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicReordering.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicReordering.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __INDICREORDERING_H
#define __INDICREORDERING_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
// Characters that get refered to by name...
#define C_SIGN_ZWNJ 0x200C
#define C_SIGN_ZWJ 0x200D
@@ -140,7 +147,7 @@
static const IndicClassTable *getScriptClassTable(le_int32 scriptCode);
};
-class IndicReordering {
+class IndicReordering /* not : public UObject because all methods are static */ {
public:
static le_int32 getWorstCaseExpansion(le_int32 scriptCode);
@@ -156,8 +163,7 @@
// do not instantiate
IndicReordering();
- static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars,
- le_int32 prev, le_int32 charCount);
+ static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
};
@@ -305,4 +311,5 @@
return hasBelowBaseForm(getCharClass(ch));
}
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/KernTable.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KernTable.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 2004-2005 - All Rights Reserved
*
*/
@@ -39,6 +40,8 @@
#define DEBUG 0
+U_NAMESPACE_BEGIN
+
struct PairInfo {
le_uint32 key; // sigh, MSVC compiler gags on union here
le_int16 value; // fword, kern value in funits
@@ -191,6 +194,12 @@
float adjust = 0;
for (int i = 1, e = storage.getGlyphCount(); i < e; ++i) {
key = key << 16 | (storage[i] & 0xffff);
+
+ // argh, to do a binary search, we need to have the pair list in sorted order
+ // but it is not in sorted order on win32 platforms because of the endianness difference
+ // so either I have to swap the element each time I examine it, or I have to swap
+ // all the elements ahead of time and store them in the font
+
const PairInfo* p = pairs;
const PairInfo* tp = (const PairInfo*)(p + rangeShift);
if (key > tp->key) {
@@ -238,3 +247,6 @@
storage.adjustPosition(storage.getGlyphCount(), adjust, 0, success);
}
}
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/KernTable.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KernTable.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 2004-2005 - All Rights Reserved
*
*/
@@ -37,9 +38,12 @@
#endif
#include "LETypes.h"
+//#include "LEFontInstance.h"
+//#include "LEGlyphStorage.h"
#include <stdio.h>
+U_NAMESPACE_BEGIN
struct PairInfo;
class LEFontInstance;
class LEGlyphStorage;
@@ -67,4 +71,6 @@
void process(LEGlyphStorage& storage);
};
+U_NAMESPACE_END
+
#endif
--- a/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -23,8 +23,8 @@
*
*/
+
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
* This file is a modification of the ICU file IndicLayoutEngine.cpp
@@ -38,17 +38,20 @@
#include "LEGlyphStorage.h"
#include "KhmerReordering.h"
-KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
- const GlyphSubstitutionTableHeader *gsubTable)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(KhmerOpenTypeLayoutEngine)
+
+KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
{
fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
fFeatureOrder = TRUE;
}
-KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
{
fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
@@ -63,16 +66,14 @@
// Input: characters
// Output: characters, char indices, tags
// Returns: output character count
-le_int32 KhmerOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 KhmerOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
}
- if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
- offset >= max || offset + count > max) {
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
success = LE_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
@@ -96,9 +97,10 @@
// NOTE: assumes this allocates featureTags...
// (probably better than doing the worst case stuff here...)
- le_int32 outCharCount = KhmerReordering::reorder(&chars[offset], count,
- fScriptCode, outChars, glyphStorage);
+ le_int32 outCharCount = KhmerReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage);
glyphStorage.adoptGlyphCount(outCharCount);
return outCharCount;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -23,6 +23,7 @@
*
*/
+
/*
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -45,19 +46,18 @@
// #include "GlyphDefinitionTables.h"
// #include "GlyphPositioningTables.h"
+U_NAMESPACE_BEGIN
+
// class MPreFixups;
// class LEGlyphStorage;
/**
* This class implements OpenType layout for Khmer OpenType fonts, as
- * specified by Microsoft in "Creating and Supporting OpenType Fonts
- * for Khmer Scripts"
- * (http://www.microsoft.com/typography/otspec/indicot/default.htm)
- * TODO: change url
+ * specified by Microsoft in "Creating and Supporting OpenType Fonts for
+ * Khmer Scripts" (http://www.microsoft.com/typography/otspec/indicot/default.htm) TODO: change url
*
- * This class overrides the characterProcessing method to do Khmer
- * character processing and reordering (See the MS spec. for more
- * details)
+ * This class overrides the characterProcessing method to do Khmer character processing
+ * and reordering (See the MS spec. for more details)
*
* @internal
*/
@@ -65,11 +65,10 @@
{
public:
/**
- * This is the main constructor. It constructs an instance of
- * KhmerOpenTypeLayoutEngine for a particular font, script and
- * language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to
- * know that it has an Khmer OpenType font.
+ * This is the main constructor. It constructs an instance of KhmerOpenTypeLayoutEngine for
+ * a particular font, script and language. It takes the GSUB table as a parameter since
+ * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
+ * Khmer OpenType font.
*
* @param fontInstance - the font
* @param scriptCode - the script
@@ -82,14 +81,12 @@
*
* @internal
*/
- KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
- const GlyphSubstitutionTableHeader *gsubTable);
+ KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
/**
- * This constructor is used when the font requires a "canned" GSUB
- * table which can't be known until after this constructor has
- * been invoked.
+ * This constructor is used when the font requires a "canned" GSUB table which can't be known
+ * until after this constructor has been invoked.
*
* @param fontInstance - the font
* @param scriptCode - the script
@@ -100,8 +97,8 @@
*
* @internal
*/
- KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+ KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -110,25 +107,35 @@
*/
virtual ~KhmerOpenTypeLayoutEngine();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
/**
- * This method does Khmer OpenType character processing. It
- * assigns the OpenType feature tags to the characters, and may
- * generate output characters which have been reordered. It may
- * also split some vowels, resulting in more output characters
- * than input characters.
+ * This method does Khmer OpenType character processing. It assigns the OpenType feature
+ * tags to the characters, and may generate output characters which have been reordered.
+ * It may also split some vowels, resulting in more output characters than input characters.
*
* Input parameters:
* @param chars - the input character context
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in
- * a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and
- * character index arrays will be set. the auxillary data array
- * will be set to the feature tags.
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+ * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
+ * the auxillary data array will be set to the feature tags.
*
* Output parameters:
* @param success - set to an error code if the operation fails
@@ -137,9 +144,11 @@
*
* @internal
*/
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/KhmerReordering.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerReordering.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -37,6 +37,9 @@
#include "KhmerReordering.h"
#include "LEGlyphStorage.h"
+
+U_NAMESPACE_BEGIN
+
// Characters that get refered to by name...
enum
{
@@ -53,35 +56,23 @@
enum
{
- // simple classes, they are used in the statetable (in this file)
- // to control the length of a syllable they are also used to know
- // where a character should be placed (location in reference to
- // the base character) and also to know if a character, when
- // independtly displayed, should be displayed with a dotted-circle
- // to indicate error in syllable construction
-
+ // simple classes, they are used in the statetable (in this file) to control the length of a syllable
+ // they are also used to know where a character should be placed (location in reference to the base character)
+ // and also to know if a character, when independtly displayed, should be displayed with a dotted-circle to
+ // indicate error in syllable construction
_xx = KhmerClassTable::CC_RESERVED,
- _sa = KhmerClassTable::CC_SIGN_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE
- | KhmerClassTable::CF_POS_ABOVE,
- _sp = KhmerClassTable::CC_SIGN_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE
- | KhmerClassTable::CF_POS_AFTER,
+ _sa = KhmerClassTable::CC_SIGN_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_POS_ABOVE,
+ _sp = KhmerClassTable::CC_SIGN_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE| KhmerClassTable::CF_POS_AFTER,
_c1 = KhmerClassTable::CC_CONSONANT | KhmerClassTable::CF_CONSONANT,
_c2 = KhmerClassTable::CC_CONSONANT2 | KhmerClassTable::CF_CONSONANT,
_c3 = KhmerClassTable::CC_CONSONANT3 | KhmerClassTable::CF_CONSONANT,
- _rb = KhmerClassTable::CC_ROBAT | KhmerClassTable::CF_POS_ABOVE
- | KhmerClassTable::CF_DOTTED_CIRCLE,
- _cs = KhmerClassTable::CC_CONSONANT_SHIFTER | KhmerClassTable::CF_DOTTED_CIRCLE
- | KhmerClassTable::CF_SHIFTER,
- _dl = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BEFORE
- | KhmerClassTable::CF_DOTTED_CIRCLE,
- _db = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BELOW
- | KhmerClassTable::CF_DOTTED_CIRCLE,
- _da = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_ABOVE
- | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_ABOVE_VOWEL,
- _dr = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_AFTER
- | KhmerClassTable::CF_DOTTED_CIRCLE,
- _co = KhmerClassTable::CC_COENG | KhmerClassTable::CF_COENG
- | KhmerClassTable::CF_DOTTED_CIRCLE,
+ _rb = KhmerClassTable::CC_ROBAT | KhmerClassTable::CF_POS_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE,
+ _cs = KhmerClassTable::CC_CONSONANT_SHIFTER | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_SHIFTER,
+ _dl = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BEFORE | KhmerClassTable::CF_DOTTED_CIRCLE,
+ _db = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BELOW | KhmerClassTable::CF_DOTTED_CIRCLE,
+ _da = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_ABOVE_VOWEL,
+ _dr = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE,
+ _co = KhmerClassTable::CC_COENG | KhmerClassTable::CF_COENG | KhmerClassTable::CF_DOTTED_CIRCLE,
// split vowel
_va = _da | KhmerClassTable::CF_SPLIT_VOWEL,
@@ -90,13 +81,10 @@
// Character class tables
-
-// _xx character does not combine into syllable, such as numbers,
-// puntuation marks, non-Khmer signs...
+// _xx character does not combine into syllable, such as numbers, puntuation marks, non-Khmer signs...
// _sa Sign placed above the base
// _sp Sign placed after the base
-// _c1 Consonant of type 1 or independent vowel (independent vowels
-// behave as type 1 consonants)
+// _c1 Consonant of type 1 or independent vowel (independent vowels behave as type 1 consonants)
// _c2 Consonant of type 2 (only RO)
// _c3 Consonant of type 3
// _rb Khmer sign robat u17CC. combining mark for subscript consonants
@@ -105,13 +93,10 @@
// _db Dependent vowel placed below the base
// _da Dependent vowel placed above the base
// _dr Dependent vowel placed behind the base (right of the base)
-// _co Khmer combining mark COENG u17D2, combines with the consonant
-// or independent vowel following it to create a subscript consonant
-// or independent vowel
-// _va Khmer split vowel in wich the first part is before the base and
-// the second one above the base
-// _vr Khmer split vowel in wich the first part is before the base and
-// the second one behind (right of) the base
+// _co Khmer combining mark COENG u17D2, combines with the consonant or independent vowel following
+// it to create a subscript consonant or independent vowel
+// _va Khmer split vowel in wich the first part is before the base and the second one above the base
+// _vr Khmer split vowel in wich the first part is before the base and the second one behind (right of) the base
static const KhmerClassTable::CharClass khmerCharClasses[] =
{
@@ -129,19 +114,19 @@
//
//
-// The range of characters defined in the above table is defined
-// here. FOr Khmer 1780 to 17DF Even if the Khmer range is bigger, all
-// other characters are not combinable, and therefore treated as _xx
+// The range of characters defined in the above table is defined here. FOr Khmer 1780 to 17DF
+// Even if the Khmer range is bigger, all other characters are not combinable, and therefore treated
+// as _xx
static const KhmerClassTable khmerClassTable = {0x1780, 0x17df, khmerCharClasses};
-// Below we define how a character in the input string is either in
-// the khmerCharClasses table (in which case we get its type back), a
-// ZWJ or ZWNJ (two characters that may appear within the syllable,
-// but are not in the table) we also get their type back, or an
-// unknown object in which case we get _xx (CC_RESERVED) back
+// Below we define how a character in the input string is either in the khmerCharClasses table
+// (in which case we get its type back), a ZWJ or ZWNJ (two characters that may appear
+// within the syllable, but are not in the table) we also get their type back, or an unknown object
+// in which case we get _xx (CC_RESERVED) back
KhmerClassTable::CharClass KhmerClassTable::getCharClass(LEUnicode ch) const
{
+
if (ch == C_SIGN_ZWJ) {
return CC_ZERO_WIDTH_J_MARK;
}
@@ -164,13 +149,14 @@
-class ReorderingOutput {
+class ReorderingOutput : public UMemory {
private:
le_int32 fOutIndex;
LEUnicode *fOutChars;
LEGlyphStorage &fGlyphStorage;
+
public:
ReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
: fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage)
@@ -232,18 +218,11 @@
#define abvmFeatureMask 0x00100000UL
#define mkmkFeatureMask 0x00080000UL
-#define tagPref (prefFeatureMask | presFeatureMask | \
- cligFeatureMask | distFeatureMask)
-#define tagAbvf (abvfFeatureMask | abvsFeatureMask | \
- cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
-#define tagPstf (blwfFeatureMask | blwsFeatureMask | prefFeatureMask | \
- presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | \
- distFeatureMask | blwmFeatureMask)
-#define tagBlwf (blwfFeatureMask | blwsFeatureMask | cligFeatureMask | \
- distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
-#define tagDefault (prefFeatureMask | blwfFeatureMask | presFeatureMask | \
- blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | \
- blwmFeatureMask | mkmkFeatureMask)
+#define tagPref (prefFeatureMask | presFeatureMask | cligFeatureMask | distFeatureMask)
+#define tagAbvf (abvfFeatureMask | abvsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
+#define tagPstf (blwfFeatureMask | blwsFeatureMask | prefFeatureMask | presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask)
+#define tagBlwf (blwfFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
+#define tagDefault (prefFeatureMask | blwfFeatureMask | presFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask | mkmkFeatureMask)
@@ -274,35 +253,32 @@
// The stateTable is used to calculate the end (the length) of a well
// formed Khmer Syllable.
//
-// Each horizontal line is ordered exactly the same way as the values
-// in KhmerClassTable CharClassValues in KhmerReordering.h This
-// coincidence of values allows the follow up of the table.
+// Each horizontal line is ordered exactly the same way as the values in KhmerClassTable
+// CharClassValues in KhmerReordering.h This coincidence of values allows the
+// follow up of the table.
//
-// Each line corresponds to a state, which does not necessarily need
-// to be a type of component... for example, state 2 is a base, with
-// is always a first character in the syllable, but the state could be
-// produced a consonant of any type when it is the first character
-// that is analysed (in ground state).
+// Each line corresponds to a state, which does not necessarily need to be a type
+// of component... for example, state 2 is a base, with is always a first character
+// in the syllable, but the state could be produced a consonant of any type when
+// it is the first character that is analysed (in ground state).
//
// Differentiating 3 types of consonants is necessary in order to
// forbid the use of certain combinations, such as having a second
-// coeng after a coeng RO.
-// The inexistent possibility of having a type 3 after another type 3
-// is permitted, eliminating it would very much complicate the table,
-// and it does not create typing problems, as the case above.
+// coeng after a coeng RO,
+// The inexistent possibility of having a type 3 after another type 3 is permitted,
+// eliminating it would very much complicate the table, and it does not create typing
+// problems, as the case above.
//
-// The table is quite complex, in order to limit the number of coeng
-// consonants to 2 (by means of the table).
+// The table is quite complex, in order to limit the number of coeng consonants
+// to 2 (by means of the table).
//
// There a peculiarity, as far as Unicode is concerned:
// - The consonant-shifter is considered in two possible different
-// locations, the one considered in Unicode 3.0 and the one considered
-// in Unicode 4.0. (there is a backwards compatibility problem in this
-// standard).
+// locations, the one considered in Unicode 3.0 and the one considered in
+// Unicode 4.0. (there is a backwards compatibility problem in this standard).
-// xx independent character, such as a number, punctuation sign or
-// non-khmer char
+// xx independent character, such as a number, punctuation sign or non-khmer char
//
// c1 Khmer consonant of type 1 or an independent vowel
// that is, a letter in which the subscript for is only under the
@@ -320,10 +296,9 @@
//
// co coeng character (u17D2)
//
-// dv dependent vowel (including split vowels, they are treated in the
-// same way). even if dv is not defined above, the component that is
-// really tested for is KhmerClassTable::CC_DEPENDENT_VOWEL, which is
-// common to all dependent vowels
+// dv dependent vowel (including split vowels, they are treated in the same way).
+// even if dv is not defined above, the component that is really tested for is
+// KhmerClassTable::CC_DEPENDENT_VOWEL, which is common to all dependent vowels
//
// zwj Zero Width joiner
//
@@ -352,8 +327,7 @@
{-1, -1, -1, -1, 12, 13, -1, -1, 16, 17, 1, 14}, // 8 - First consonant of type 2 after coeng
{-1, -1, -1, -1, 12, 13, -1, 10, 16, 17, 1, 14}, // 9 - First consonant or type 3 after ceong
{-1, 11, 11, 11, -1, -1, -1, -1, -1, -1, -1, -1}, // 10 - Second Coeng (no register shifter before)
- {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 11 - Second coeng consonant
- // (or ind. vowel) no register shifter before
+ {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 11 - Second coeng consonant (or ind. vowel) no register shifter before
{-1, -1, 1, -1, -1, 13, -1, -1, 16, -1, -1, -1}, // 12 - Second ZWNJ before a register shifter
{-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 13 - Second register shifter
{-1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1}, // 14 - ZWJ before vowel
@@ -363,6 +337,7 @@
{-1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1}, // 18 - ZWJ after vowel
{-1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1}, // 19 - Third coeng
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1}, // 20 - dependent vowel after a Robat
+
};
@@ -377,15 +352,13 @@
// Given an input string of characters and a location in which to start looking
// calculate, using the state table, which one is the last character of the syllable
// that starts in the starting position.
-le_int32 KhmerReordering::findSyllable(const KhmerClassTable *classTable,
- const LEUnicode *chars, le_int32 prev, le_int32 charCount)
+le_int32 KhmerReordering::findSyllable(const KhmerClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
{
le_int32 cursor = prev;
le_int8 state = 0;
while (cursor < charCount) {
- KhmerClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor])
- & KhmerClassTable::CF_CLASS_MASK);
+ KhmerClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor]) & KhmerClassTable::CF_CLASS_MASK);
state = khmerStateTable[state][charClass];
@@ -402,8 +375,8 @@
// This is the real reordering function as applied to the Khmer language
-le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount,
- le_int32 /*scriptCode*/, LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32 /*scriptCode*/,
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage)
{
const KhmerClassTable *classTable = KhmerClassTable::getKhmerClassTable();
@@ -442,8 +415,7 @@
// and because CC_CONSONANT2 is enough to identify it, as it is the only consonant
// with this flag
if ( (charClass & KhmerClassTable::CF_COENG) && (i + 1 < syllable) &&
- ( (classTable->getCharClass(chars[i + 1]) &
- KhmerClassTable::CF_CLASS_MASK) == KhmerClassTable::CC_CONSONANT2) )
+ ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK) == KhmerClassTable::CC_CONSONANT2) )
{
coengRo = i;
}
@@ -455,16 +427,15 @@
output.writeChar(C_RO, coengRo + 1, tagPref);
}
- // shall we add a dotted circle? If in the position in which
- // the base should be (first char in the string) there is a
- // character that has the Dotted circle flag (a character that
- // cannot be a base) then write a dotted circle
+ // shall we add a dotted circle?
+ // If in the position in which the base should be (first char in the string) there is
+ // a character that has the Dotted circle flag (a character that cannot be a base)
+ // then write a dotted circle
if (classTable->getCharClass(chars[prev]) & KhmerClassTable::CF_DOTTED_CIRCLE) {
output.writeChar(C_DOTTED_CIRCLE, prev, tagDefault);
}
- // copy what is left to the output, skipping before vowels and
- // coeng Ro if they are present
+ // copy what is left to the output, skipping before vowels and coeng Ro if they are present
for (i = prev; i < syllable; i += 1) {
charClass = classTable->getCharClass(chars[i]);
@@ -515,30 +486,14 @@
// and there is an extra rule for C_VOWEL_AA + C_SIGN_NIKAHIT also for two
// different positions, right after the shifter or after a vowel (Unicode 4)
if ( (charClass & KhmerClassTable::CF_SHIFTER) && (i + 1 < syllable) ) {
- if (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_ABOVE_VOWEL ) {
- output.writeChar(chars[i], i, tagBlwf);
- break;
- }
- if (i + 2 < syllable &&
- ( (classTable->getCharClass(chars[i + 1]) &
- KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA) &&
- ( (classTable->getCharClass(chars[i + 2]) &
- KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) )
- {
- output.writeChar(chars[i], i, tagBlwf);
- break;
- }
- if (i + 3 < syllable && (classTable->getCharClass(chars[i + 3]) &
- KhmerClassTable::CF_ABOVE_VOWEL) )
- {
- output.writeChar(chars[i], i, tagBlwf);
- break;
- }
- if (i + 4 < syllable &&
- ( (classTable->getCharClass(chars[i + 3]) &
- KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA) &&
- ( (classTable->getCharClass(chars[i + 4]) &
- KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) )
+ if ((classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_ABOVE_VOWEL)
+ || (i + 2 < syllable
+ && ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
+ && ( (classTable->getCharClass(chars[i + 2]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT))
+ || (i + 3 < syllable && (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_ABOVE_VOWEL))
+ || (i + 4 < syllable
+ && ( (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
+ && ( (classTable->getCharClass(chars[i + 4]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) ) )
{
output.writeChar(chars[i], i, tagBlwf);
break;
@@ -556,3 +511,6 @@
return output.getOutputIndex();
}
+
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/KhmerReordering.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerReordering.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
* This file is a modification of the ICU file IndicReordering.h
@@ -35,80 +34,60 @@
#ifndef __KHMERREORDERING_H
#define __KHMERREORDERING_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
// Vocabulary
-
-// Base ->
-// A consonant or an independent vowel in its full (not
-// subscript) form. It is the center of the syllable, it can be
-// souranded by coeng (subscript) consonants, vowels, split
-// vowels, signs... but there is only one base in a syllable, it
-// has to be coded as the first character of the syllable.
-// split vowel ->
-// vowel that has two parts placed separately (e.g. Before and
-// after the consonant). Khmer language has five of them. Khmer
-// split vowels either have one part before the base and one after
-// the base or they have a part before the base and a part above
-// the base. The first part of all Khmer split vowels is the same
-// character, identical to the glyph of Khmer dependent vowel SRA
-// EI
-// coeng ->
-// modifier used in Khmer to construct coeng (subscript)
-// consonants differently than indian languages, the coeng
-// modifies the consonant that follows it, not the one preceding
-// it Each consonant has two forms, the base form and the
-// subscript form the base form is the normal one (using the
-// consonants code-point), the subscript form is displayed when
-// the combination coeng + consonant is encountered.
-// Consonant of type 1 ->
-// A consonant which has subscript for that only occupies space
-// under a base consonant
-// Consonant of type 2 ->
-// Its subscript form occupies space under and before the base
-// (only one, RO)
-// Consonant of Type 3 ->
-// Its subscript form occupies space under and after the base
-// (KHO, CHHO, THHO, BA, YO, SA)
-// Consonant shifter ->
-// Khmer has to series of consonants. The same dependent vowel has
-// different sounds if it is attached to a consonant of the first
-// series or a consonant of the second series Most consonants have
-// an equivalent in the other series, but some of theme exist only
-// in one series (for example SA). If we want to use the consonant
-// SA with a vowel sound that can only be done with a vowel sound
-// that corresponds to a vowel accompanying a consonant of the
-// other series, then we need to use a consonant shifter: TRIISAP
-// or MUSIKATOAN x17C9 y x17CA. TRIISAP changes a first series
-// consonant to second series sound and MUSIKATOAN a second series
-// consonant to have a first series vowel sound. Consonant
-// shifter are both normally supercript marks, but, when they are
-// followed by a superscript, they change shape and take the form
-// of subscript dependent vowel SRA U. If they are in the same
-// syllable as a coeng consonant, Unicode 3.0 says that they
-// should be typed before the coeng. Unicode 4.0 breaks the
-// standard and says that it should be placed after the coeng
-// consonant.
-// Dependent vowel ->
-// In khmer dependent vowels can be placed above, below, before or
-// after the base Each vowel has its own position. Only one vowel
-// per syllable is allowed.
-// Signs ->
-// Khmer has above signs and post signs. Only one above sign
-// and/or one post sign are Allowed in a syllable.
+// Base -> A consonant or an independent vowel in its full (not subscript) form. It is the
+// center of the syllable, it can be souranded by coeng (subscript) consonants, vowels,
+// split vowels, signs... but there is only one base in a syllable, it has to be coded as
+// the first character of the syllable.
+// split vowel --> vowel that has two parts placed separately (e.g. Before and after the consonant).
+// Khmer language has five of them. Khmer split vowels either have one part before the
+// base and one after the base or they have a part before the base and a part above the base.
+// The first part of all Khmer split vowels is the same character, identical to
+// the glyph of Khmer dependent vowel SRA EI
+// coeng --> modifier used in Khmer to construct coeng (subscript) consonants
+// Differently than indian languages, the coeng modifies the consonant that follows it,
+// not the one preceding it Each consonant has two forms, the base form and the subscript form
+// the base form is the normal one (using the consonants code-point), the subscript form is
+// displayed when the combination coeng + consonant is encountered.
+// Consonant of type 1 -> A consonant which has subscript for that only occupies space under a base consonant
+// Consonant of type 2.-> Its subscript form occupies space under and before the base (only one, RO)
+// Consonant of Type 3 -> Its subscript form occupies space under and after the base (KHO, CHHO, THHO, BA, YO, SA)
+// Consonant shifter -> Khmer has to series of consonants. The same dependent vowel has different sounds
+// if it is attached to a consonant of the first series or a consonant of the second series
+// Most consonants have an equivalent in the other series, but some of theme exist only in
+// one series (for example SA). If we want to use the consonant SA with a vowel sound that
+// can only be done with a vowel sound that corresponds to a vowel accompanying a consonant
+// of the other series, then we need to use a consonant shifter: TRIISAP or MUSIKATOAN
+// x17C9 y x17CA. TRIISAP changes a first series consonant to second series sound and
+// MUSIKATOAN a second series consonant to have a first series vowel sound.
+// Consonant shifter are both normally supercript marks, but, when they are followed by a
+// superscript, they change shape and take the form of subscript dependent vowel SRA U.
+// If they are in the same syllable as a coeng consonant, Unicode 3.0 says that they
+// should be typed before the coeng. Unicode 4.0 breaks the standard and says that it should
+// be placed after the coeng consonant.
+// Dependent vowel -> In khmer dependent vowels can be placed above, below, before or after the base
+// Each vowel has its own position. Only one vowel per syllable is allowed.
+// Signs -> Khmer has above signs and post signs. Only one above sign and/or one post sign are
+// Allowed in a syllable.
+//
//
-// This list must include all types of components that can be used
-// inside a syllable
-struct KhmerClassTable
+struct KhmerClassTable // This list must include all types of components that can be used inside a syllable
{
- // order is important here! This order must be the same that is
- // found in each horizontal line in the statetable for Khmer (file
- // KhmerReordering.cpp).
- enum CharClassValues
+ enum CharClassValues // order is important here! This order must be the same that is found in each horizontal
+ // line in the statetable for Khmer (file KhmerReordering.cpp).
{
CC_RESERVED = 0,
CC_CONSONANT = 1, // consonant of type 1 or independent vowel
@@ -116,8 +95,7 @@
CC_CONSONANT3 = 3, // Consonant of type 3
CC_ZERO_WIDTH_NJ_MARK = 4, // Zero Width non joiner character (0x200C)
CC_CONSONANT_SHIFTER = 5,
- CC_ROBAT = 6, // Khmer special diacritic accent
- // -treated differently in state table
+ CC_ROBAT = 6, // Khmer special diacritic accent -treated differently in state table
CC_COENG = 7, // Subscript consonant combining character
CC_DEPENDENT_VOWEL = 8,
CC_SIGN_ABOVE = 9,
@@ -131,10 +109,8 @@
CF_CLASS_MASK = 0x0000FFFF,
CF_CONSONANT = 0x01000000, // flag to speed up comparing
- CF_SPLIT_VOWEL = 0x02000000, // flag for a split vowel -> the first part
- // is added in front of the syllable
- CF_DOTTED_CIRCLE = 0x04000000, // add a dotted circle if a character with
- // this flag is the first in a syllable
+ CF_SPLIT_VOWEL = 0x02000000, // flag for a split vowel -> the first part is added in front of the syllable
+ CF_DOTTED_CIRCLE = 0x04000000, // add a dotted circle if a character with this flag is the first in a syllable
CF_COENG = 0x08000000, // flag to speed up comparing
CF_SHIFTER = 0x10000000, // flag to speed up comparing
CF_ABOVE_VOWEL = 0x20000000, // flag to speed up comparing
@@ -161,10 +137,10 @@
};
-class KhmerReordering {
+class KhmerReordering /* not : public UObject because all methods are static */ {
public:
- static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount,
- le_int32 scriptCode, LEUnicode *outChars, LEGlyphStorage &glyphStorage);
+ static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage);
static const FeatureMap *getFeatureMap(le_int32 &count);
@@ -172,8 +148,10 @@
// do not instantiate
KhmerReordering();
- static le_int32 findSyllable(const KhmerClassTable *classTable,
- const LEUnicode *chars, le_int32 prev, le_int32 charCount);
+ static le_int32 findSyllable(const KhmerClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
+
};
+
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LEFontInstance.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEFontInstance.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
*******************************************************************************
*
* Copyright (C) 1999-2005, International Business Machines
@@ -42,6 +41,10 @@
#include "LEFontInstance.h"
#include "LEGlyphStorage.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEFontInstance)
+
const LEFontInstance *LEFontInstance::getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit,
le_int32 script, LEErrorCode &success) const
{
@@ -59,7 +62,7 @@
}
void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
- le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const
+ le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const
{
le_int32 i, out = 0, dir = 1;
@@ -100,3 +103,5 @@
return mapCharToGlyph(mappedChar);
}
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/LEFontInstance.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEFontInstance.h Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,12 @@
#define __LEFONTINSTANCE_H
#include "LETypes.h"
+/**
+ * \file
+ * \brief C++ API: Layout Engine Font Instance object
+ */
+
+U_NAMESPACE_BEGIN
/**
* Instances of this class are used by <code>LEFontInstance::mapCharsToGlyphs</code> and
@@ -44,7 +50,7 @@
*
* @stable ICU 3.2
*/
-class LECharMapper
+class LECharMapper /* not : public UObject because this is an interface/mixin class */
{
public:
/**
@@ -97,7 +103,7 @@
*
* @draft ICU 3.0
*/
-class LEFontInstance
+class U_LAYOUT_API LEFontInstance : public UObject
{
public:
@@ -160,8 +166,7 @@
*
* @stable ICU 3.2
*/
- virtual const LEFontInstance *getSubFont(const LEUnicode chars[], le_int32 *offset,
- le_int32 limit, le_int32 script, LEErrorCode &success) const;
+ virtual const LEFontInstance *getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit, le_int32 script, LEErrorCode &success) const;
//
// Font file access
@@ -238,8 +243,7 @@
*
* @draft ICU 3.0
*/
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
- le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const;
+ virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const;
/**
* This method maps a single character to a glyph index, using the
@@ -502,6 +506,21 @@
* @stable ICU 3.2
*/
virtual le_int32 getLineHeight() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 3.2
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 3.2
+ */
+ static UClassID getStaticClassID();
+
};
inline le_bool LEFontInstance::canDisplay(LEUnicode32 ch) const
@@ -562,4 +581,7 @@
return getAscent() + getDescent() + getLeading();
}
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/LEGlyphFilter.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEGlyphFilter.h Mon Oct 05 18:22:00 2009 -0700
@@ -34,14 +34,15 @@
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
/**
* This is a helper class that is used to
* recognize a set of glyph indices.
*
* @internal
*/
-class LEGlyphFilter
-{
+class LEGlyphFilter /* not : public UObject because this is an interface/mixin class */ {
public:
/**
* Destructor.
@@ -63,4 +64,5 @@
virtual le_bool accept(LEGlyphID glyph) const = 0;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
**********************************************************************
* Copyright (C) 1998-2005, International Business Machines
* Corporation and others. All Rights Reserved.
@@ -35,6 +34,10 @@
#include "LEInsertionList.h"
#include "LEGlyphStorage.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEGlyphStorage)
+
LEGlyphStorage::LEGlyphStorage()
: fGlyphCount(0), fGlyphs(NULL), fCharIndices(NULL), fPositions(NULL),
fAuxData(NULL), fInsertionList(NULL), fSrcIndex(0), fDestIndex(0)
@@ -603,3 +606,6 @@
return FALSE;
}
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/LEGlyphStorage.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEGlyphStorage.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
**********************************************************************
* Copyright (C) 1998-2005, International Business Machines
* Corporation and others. All Rights Reserved.
@@ -38,6 +37,13 @@
#include "LEInsertionList.h"
/**
+ * \file
+ * \brief C++ API: This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
+ */
+
+U_NAMESPACE_BEGIN
+
+/**
* This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
* For each glyph it holds the glyph ID, the index of the backing store character
* which produced the glyph, the X and Y position of the glyph and an auxillary data
@@ -50,7 +56,7 @@
*
* @draft ICU 3.6
*/
-class U_LAYOUT_API LEGlyphStorage : protected LEInsertionCallback
+class U_LAYOUT_API LEGlyphStorage : public UObject, protected LEInsertionCallback
{
private:
/**
@@ -112,35 +118,37 @@
protected:
/**
- * This implements <code>LEInsertionCallback</code>. The
- * <code>LEInsertionList</code> will call this method once for
- * each insertion.
+ * This implements <code>LEInsertionCallback</code>. The <code>LEInsertionList</code>
+ * will call this method once for each insertion.
*
* @param atPosition the position of the insertion
* @param count the number of glyphs being inserted
* @param newGlyphs the address of the new glyph IDs
*
- * @return <code>true</code> if <code>LEInsertionList</code>
- * should stop processing the insertion list after this insertion.
+ * @return <code>true</code> if <code>LEInsertionList</code> should stop
+ * processing the insertion list after this insertion.
*
* @see LEInsertionList.h
*
* @draft ICU 3.0
*/
- virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count,
- LEGlyphID newGlyphs[]);
+ virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[]);
public:
/**
- * Allocates an empty <code>LEGlyphStorage</code> object. You must
- * call <code>allocateGlyphArray, allocatePositions and
- * allocateAuxData</code> to allocate the data.
+ * Allocates an empty <code>LEGlyphStorage</code> object. You must call
+ * <code>allocateGlyphArray, allocatePositions and allocateAuxData</code>
+ * to allocate the data.
+ *
+ * @draft ICU 3.0
*/
LEGlyphStorage();
/**
* The destructor. This will deallocate all of the arrays.
+ *
+ * @draft ICU 3.0
*/
~LEGlyphStorage();
@@ -154,9 +162,9 @@
inline le_int32 getGlyphCount() const;
/**
- * This method copies the glyph array into a caller supplied
- * array. The caller must ensure that the array is large enough
- * to hold all the glyphs.
+ * This method copies the glyph array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold all
+ * the glyphs.
*
* @param glyphs - the destiniation glyph array
* @param success - set to an error code if the operation fails
@@ -166,10 +174,10 @@
void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
/**
- * This method copies the glyph array into a caller supplied
- * array, ORing in extra bits. (This functionality is needed by
- * the JDK, which uses 32 bits pre glyph idex, with the high 16
- * bits encoding the composite font slot number)
+ * This method copies the glyph array into a caller supplied array,
+ * ORing in extra bits. (This functionality is needed by the JDK,
+ * which uses 32 bits pre glyph idex, with the high 16 bits encoding
+ * the composite font slot number)
*
* @param glyphs - the destination (32 bit) glyph array
* @param extraBits - this value will be ORed with each glyph index
@@ -177,13 +185,12 @@
*
* @draft ICU 3.0
*/
- void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits,
- LEErrorCode &success) const;
+ void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
/**
- * This method copies the character index array into a caller
- * supplied array. The caller must ensure that the array is large
- * enough to hold a character index for each glyph.
+ * This method copies the character index array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold a
+ * character index for each glyph.
*
* @param charIndices - the destiniation character index array
* @param success - set to an error code if the operation fails
@@ -193,9 +200,9 @@
void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
/**
- * This method copies the character index array into a caller
- * supplied array. The caller must ensure that the array is large
- * enough to hold a character index for each glyph.
+ * This method copies the character index array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold a
+ * character index for each glyph.
*
* @param charIndices - the destiniation character index array
* @param indexBase - an offset which will be added to each index
@@ -203,14 +210,13 @@
*
* @draft ICU 3.0
*/
- void getCharIndices(le_int32 charIndices[], le_int32 indexBase,
- LEErrorCode &success) const;
+ void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
/**
- * This method copies the position array into a caller supplied
- * array. The caller must ensure that the array is large enough
- * to hold an X and Y position for each glyph, plus an extra X and
- * Y for the advance of the last glyph.
+ * This method copies the position array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold an
+ * X and Y position for each glyph, plus an extra X and Y for the
+ * advance of the last glyph.
*
* @param positions - the destiniation position array
* @param success - set to an error code if the operation fails
@@ -233,33 +239,27 @@
*
* @draft ICU 3.0
*/
- void getGlyphPosition(le_int32 glyphIndex, float &x, float &y,
- LEErrorCode &success) const;
+ void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
/**
- * This method allocates the glyph array, the char indices array
- * and the insertion list. You must call this method before using
- * the object. This method also initializes the char indices
+ * This method allocates the glyph array, the char indices array and the insertion list. You
+ * must call this method before using the object. This method also initializes the char indices
* array.
- * @param initialGlyphCount the initial size of the glyph and char
- * indices arrays.
- * @param rightToLeft <code>true</code> if the original input text
- * is right to left.
- * @param success set to an error code if the storage cannot be
- * allocated of if the initial glyph count is not positive.
+ *
+ * @param initialGlyphCount the initial size of the glyph and char indices arrays.
+ * @param rightToLeft <code>true</code> if the original input text is right to left.
+ * @param success set to an error code if the storage cannot be allocated of if the initial
+ * glyph count is not positive.
*
* @draft ICU 3.0
*/
- void allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft,
- LEErrorCode &success);
+ void allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft, LEErrorCode &success);
/**
- * This method allocates the storage for the glyph positions. It
- * allocates one extra X, Y position pair for the position just
- * after the last glyph.
+ * This method allocates the storage for the glyph positions. It allocates one extra X, Y
+ * position pair for the position just after the last glyph.
*
- * @param success set to an error code if the positions array
- * cannot be allocated.
+ * @param success set to an error code if the positions array cannot be allocated.
*
* @return the number of X, Y position pairs allocated.
*
@@ -270,8 +270,7 @@
/**
* This method allocates the storage for the auxillary glyph data.
*
- * @param success set to an error code if the aulillary data array
- * cannot be allocated.
+ * @param success set to an error code if the aulillary data array cannot be allocated.
*
* @return the size of the auxillary data array.
*
@@ -282,10 +281,8 @@
/**
* Copy the entire auxillary data array.
*
- * @param auxData the auxillary data array will be copied to this
- * address
- * @param success set to an error code if the data cannot be
- * copied
+ * @param auxData the auxillary data array will be copied to this address
+ * @param success set to an error code if the data cannot be copied
*
* @draft ICU 3.6
*/
@@ -295,8 +292,7 @@
* Get the glyph ID for a particular glyph.
*
* @param glyphIndex the index into the glyph array
- * @param success set to an error code if the glyph ID cannot be
- * retrieved.
+ * @param success set to an error code if the glyph ID cannot be retrieved.
*
* @return the glyph ID
*
@@ -308,8 +304,7 @@
* Get the char index for a particular glyph.
*
* @param glyphIndex the index into the glyph array
- * @param success set to an error code if the char index cannot be
- * retrieved.
+ * @param success set to an error code if the char index cannot be retrieved.
*
* @return the character index
*
@@ -322,8 +317,7 @@
* Get the auxillary data for a particular glyph.
*
* @param glyphIndex the index into the glyph array
- * @param success set to an error code if the auxillary data
- * cannot be retrieved.
+ * @param success set to an error code if the auxillary data cannot be retrieved.
*
* @return the auxillary data
*
@@ -345,11 +339,10 @@
/**
* Call this method to replace a single glyph in the glyph array
- * with multiple glyphs. This method uses the
- * <code>LEInsertionList</code> to do the insertion. It returns
- * the address of storage where the new glyph IDs can be
- * stored. They will not actually be inserted into the glyph array
- * until <code>applyInsertions</code> is called.
+ * with multiple glyphs. This method uses the <code>LEInsertionList</code>
+ * to do the insertion. It returns the address of storage where the new
+ * glyph IDs can be stored. They will not actually be inserted into the
+ * glyph array until <code>applyInsertions</code> is called.
*
* @param atIndex the index of the glyph to be replaced
* @param insertCount the number of glyphs to replace it with
@@ -381,26 +374,22 @@
*
* @param glyphIndex the index of the glyph
* @param glyphID the new glyph ID
- * @param success will be set to an error code if the glyph ID
- * cannot be set.
+ * @param success will be set to an error code if the glyph ID cannot be set.
*
* @draft ICU 3.0
*/
- void setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID,
- LEErrorCode &success);
+ void setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID, LEErrorCode &success);
/**
* Set the char index for a particular glyph.
*
* @param glyphIndex the index of the glyph
* @param charIndex the new char index
- * @param success will be set to an error code if the char index
- * cannot be set.
+ * @param success will be set to an error code if the char index cannot be set.
*
* @draft ICU 3.0
*/
- void setCharIndex(le_int32 glyphIndex, le_int32 charIndex,
- LEErrorCode &success);
+ void setCharIndex(le_int32 glyphIndex, le_int32 charIndex, LEErrorCode &success);
/**
* Set the X, Y position for a particular glyph.
@@ -408,13 +397,11 @@
* @param glyphIndex the index of the glyph
* @param x the new X position
* @param y the new Y position
- * @param success will be set to an error code if the position
- * cannot be set.
+ * @param success will be set to an error code if the position cannot be set.
*
* @draft ICU 3.0
*/
- void setPosition(le_int32 glyphIndex, float x, float y,
- LEErrorCode &success);
+ void setPosition(le_int32 glyphIndex, float x, float y, LEErrorCode &success);
/**
* Adjust the X, Y position for a particular glyph.
@@ -422,21 +409,18 @@
* @param glyphIndex the index of the glyph
* @param xAdjust the adjustment to the glyph's X position
* @param yAdjust the adjustment to the glyph's Y position
- * @param success will be set to an error code if the glyph's
- * position cannot be adjusted.
+ * @param success will be set to an error code if the glyph's position cannot be adjusted.
*
* @draft ICU 3.0
*/
- void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust,
- LEErrorCode &success);
+ void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust, LEErrorCode &success);
/**
* Set the auxillary data for a particular glyph.
*
* @param glyphIndex the index of the glyph
* @param auxData the new auxillary data
- * @param success will be set to an error code if the auxillary
- * data cannot be set.
+ * @param success will be set to an error code if the auxillary data cannot be set.
*
* @draft ICU 3.6
*/
@@ -511,14 +495,28 @@
void adoptGlyphCount(le_int32 newGlyphCount);
/**
- * This method frees the glyph, character index, position and
- * auxillary data arrays so that the LayoutEngine can be reused to
- * layout a different characer array. (This method is also called
+ * This method frees the glyph, character index, position and
+ * auxillary data arrays so that the LayoutEngine can be reused
+ * to layout a different characer array. (This method is also called
* by the destructor)
*
* @draft ICU 3.0
*/
void reset();
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @draft ICU 3.0
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @draft ICU 3.0
+ */
+ static UClassID getStaticClassID();
};
inline le_int32 LEGlyphStorage::getGlyphCount() const
@@ -531,4 +529,7 @@
return fGlyphs[glyphIndex];
}
+
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/LEInsertionList.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEInsertionList.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
**********************************************************************
* Copyright (C) 1998-2004, International Business Machines
* Corporation and others. All Rights Reserved.
@@ -34,6 +33,8 @@
#include "LETypes.h"
#include "LEInsertionList.h"
+U_NAMESPACE_BEGIN
+
#define ANY_NUMBER 1
struct InsertionRecord
@@ -44,6 +45,8 @@
LEGlyphID glyphs[ANY_NUMBER];
};
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEInsertionList)
+
LEInsertionList::LEInsertionList(le_bool rightToLeft)
: head(NULL), tail(NULL), growAmount(0), append(rightToLeft)
{
@@ -106,3 +109,5 @@
return FALSE;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LEInsertionList.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEInsertionList.h Mon Oct 05 18:22:00 2009 -0700
@@ -24,7 +24,6 @@
*/
/*
- *
**********************************************************************
* Copyright (C) 1998-2004, International Business Machines
* Corporation and others. All Rights Reserved.
@@ -36,6 +35,8 @@
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
struct InsertionRecord;
/**
@@ -78,7 +79,7 @@
*
* @internal
*/
-class LEInsertionList
+class LEInsertionList : public UObject
{
public:
/**
@@ -140,6 +141,20 @@
*/
void reset();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
/**
@@ -174,4 +189,6 @@
le_bool append;
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/LELanguages.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LELanguages.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,10 +25,12 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
* YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 07/19/2005 01:01:08 PM PDT
*/
#ifndef __LELANGUAGES_H
@@ -37,11 +39,18 @@
#include "LETypes.h"
/**
+ * \file
+ * \brief C++ API: List of language codes for LayoutEngine
+ */
+
+U_NAMESPACE_BEGIN
+
+/**
* A provisional list of language codes. For now,
* this is just a list of languages which the LayoutEngine
* supports.
*
- * @draft ICU 3.0
+ * @draft ICU 3.4
*/
enum LanguageCodes {
@@ -79,4 +88,5 @@
languageCodeCount = 30
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LEScripts.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEScripts.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,17 +25,23 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
* YOU REALLY KNOW WHAT YOU'RE DOING.
- *
*/
#ifndef __LESCRIPTS_H
#define __LESCRIPTS_H
#include "LETypes.h"
+/**
+ * \file
+ * \brief C++ API: Constants for Unicode script values
+ */
+
+
+U_NAMESPACE_BEGIN
/**
* Constants for Unicode script values, generated using
@@ -104,4 +110,5 @@
scriptCodeCount = 55
};
+U_NAMESPACE_END
#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/native/sun/font/layout/LEStandalone.h Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,132 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+#ifndef __LESTANDALONE
+#define __LESTANDALONE
+
+/* Definitions to make Layout Engine work away from ICU. */
+#ifndef U_NAMESPACE_BEGIN
+#define U_NAMESPACE_BEGIN
+#endif
+
+#ifndef U_NAMESPACE_END
+#define U_NAMESPACE_END
+#endif
+
+/* RTTI Definition */
+typedef const char *UClassID;
+#ifndef UOBJECT_DEFINE_RTTI_IMPLEMENTATION
+#define UOBJECT_DEFINE_RTTI_IMPLEMENTATION(x) UClassID x::getStaticClassID(){static char z=0; return (UClassID)&z; } UClassID x::getDynamicClassID() const{return x::getStaticClassID(); }
+#endif
+
+/* UMemory's functions aren't used by the layout engine. */
+struct UMemory {};
+/* UObject's functions aren't used by the layout engine. */
+struct UObject {};
+
+/* String handling */
+#include <stdlib.h>
+#include <string.h>
+
+/**
+ * A convenience macro to test for the success of a LayoutEngine call.
+ *
+ * @stable ICU 2.4
+ */
+#define LE_SUCCESS(code) ((code)<=LE_NO_ERROR)
+
+/**
+ * A convenience macro to test for the failure of a LayoutEngine call.
+ *
+ * @stable ICU 2.4
+ */
+#define LE_FAILURE(code) ((code)>LE_NO_ERROR)
+
+
+#ifndef _LP64
+typedef long le_int32;
+typedef unsigned long le_uint32;
+#else
+typedef int le_int32;
+typedef unsigned int le_uint32;
+#endif
+
+#define HAVE_LE_INT32 1
+#define HAVE_LE_UINT32 1
+
+typedef unsigned short UChar;
+typedef le_uint32 UChar32;
+
+typedef short le_int16;
+#define HAVE_LE_INT16 1
+
+typedef unsigned short le_uint16;
+#define HAVE_LE_UINT16
+
+typedef signed char le_int8;
+#define HAVE_LE_INT8
+
+typedef unsigned char le_uint8;
+#define HAVE_LE_UINT8
+
+typedef char UBool;
+
+/**
+ * Error codes returned by the LayoutEngine.
+ *
+ * @stable ICU 2.4
+ */
+enum LEErrorCode {
+ /* informational */
+ LE_NO_SUBFONT_WARNING = -127, // U_USING_DEFAULT_WARNING,
+
+ /* success */
+ LE_NO_ERROR = 0, // U_ZERO_ERROR,
+
+ /* failures */
+ LE_ILLEGAL_ARGUMENT_ERROR = 1, // U_ILLEGAL_ARGUMENT_ERROR,
+ LE_MEMORY_ALLOCATION_ERROR = 7, // U_MEMORY_ALLOCATION_ERROR,
+ LE_INDEX_OUT_OF_BOUNDS_ERROR = 8, //U_INDEX_OUTOFBOUNDS_ERROR,
+ LE_NO_LAYOUT_ERROR = 16, // U_UNSUPPORTED_ERROR,
+ LE_INTERNAL_ERROR = 5, // U_INTERNAL_PROGRAM_ERROR,
+ LE_FONT_FILE_NOT_FOUND_ERROR = 4, // U_FILE_ACCESS_ERROR,
+ LE_MISSING_FONT_TABLE_ERROR = 2 // U_MISSING_RESOURCE_ERROR
+};
+#define HAVE_LEERRORCODE
+
+#define U_LAYOUT_API
+
+#define uprv_malloc malloc
+#define uprv_free free
+#define uprv_memcpy memcpy
+#define uprv_realloc realloc
+
+#if !defined(U_IS_BIG_ENDIAN)
+ #ifdef _LITTLE_ENDIAN
+ #define U_IS_BIG_ENDIAN 0
+ #endif
+#endif
+
+#endif
--- a/jdk/src/share/native/sun/font/layout/LESwaps.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LESwaps.h Mon Oct 05 18:22:00 2009 -0700
@@ -26,7 +26,7 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -35,11 +35,12 @@
#include "LETypes.h"
-#if !defined(U_IS_BIG_ENDIAN)
- #ifdef _LITTLE_ENDIAN
- #define U_IS_BIG_ENDIAN 0
- #endif
-#endif
+/**
+ * \file
+ * \brief C++ API: Endian independent access to data for LayoutEngine
+ */
+
+U_NAMESPACE_BEGIN
/**
* A convenience macro which invokes the swapWord member function
@@ -47,7 +48,6 @@
*
* @stable ICU 2.8
*/
-
#if defined(U_IS_BIG_ENDIAN)
#if U_IS_BIG_ENDIAN
#define SWAPW(value) (value)
@@ -64,7 +64,6 @@
*
* @stable ICU 2.8
*/
-
#if defined(U_IS_BIG_ENDIAN)
#if U_IS_BIG_ENDIAN
#define SWAPL(value) (value)
@@ -86,8 +85,7 @@
*
* @stable ICU 2.8
*/
-class LESwaps
-{
+class U_LAYOUT_API LESwaps /* not : public UObject because all methods are static */ {
public:
#if !defined(U_IS_BIG_ENDIAN)
@@ -144,4 +142,5 @@
LESwaps() {} // private - forbid instantiation
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LETypes.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LETypes.h Mon Oct 05 18:22:00 2009 -0700
@@ -23,7 +23,6 @@
*
*/
-
/*
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -33,74 +32,98 @@
#ifndef __LETYPES_H
#define __LETYPES_H
-#define LE_USE_CMEMORY
-
-#ifdef LE_USE_CMEMORY
-#include <stdlib.h>
-#include <string.h>
+/**
+ * If LE_Standalone is defined, it must exist and contain
+ * definitions for some core ICU defines.
+ */
+#ifdef LE_STANDALONE
+#include "LEStandalone.h"
#endif
-#ifndef _LP64
-typedef long le_int32;
-typedef unsigned long le_uint32;
+#ifdef LE_STANDALONE
+/* Stand-alone Layout Engine- without ICU. */
+#include "LEStandalone.h"
+#define LE_USE_CMEMORY
#else
-typedef int le_int32;
-typedef unsigned int le_uint32;
+#if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined(U_COMBINED_IMPLEMENTATION))
+#define LE_USE_CMEMORY
#endif
-typedef short le_int16;
-typedef unsigned short le_uint16;
-typedef signed char le_int8;
-typedef unsigned char le_uint8;
-typedef char le_bool;
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#ifdef LE_USE_CMEMORY
+#include "cmemory.h"
+#endif
+#endif /* not standalone */
+
-typedef char UClassID;
+U_NAMESPACE_BEGIN
-#if 0
+/*!
+ * \file
+ * \brief Basic definitions for the ICU LayoutEngine
+ */
+
/**
* A type used for signed, 32-bit integers.
*
* @stable ICU 2.4
*/
+#ifndef HAVE_LE_INT32
typedef int32_t le_int32;
+#endif
/**
* A type used for unsigned, 32-bit integers.
*
* @stable ICU 2.4
*/
+#ifndef HAVE_LE_UINT32
typedef uint32_t le_uint32;
+#endif
/**
* A type used for signed, 16-bit integers.
*
* @stable ICU 2.4
*/
+#ifndef HAVE_LE_INT16
typedef int16_t le_int16;
+#endif
+#ifndef HAVE_LE_UINT16
/**
* A type used for unsigned, 16-bit integers.
*
* @stable ICU 2.4
*/
typedef uint16_t le_uint16;
+#endif
+#ifndef HAVE_LE_INT8
/**
* A type used for signed, 8-bit integers.
*
* @stable ICU 2.4
*/
typedef int8_t le_int8;
+#endif
+#ifndef HAVE_LE_UINT8
/**
* A type used for unsigned, 8-bit integers.
*
* @stable ICU 2.4
*/
typedef uint8_t le_uint8;
+#endif
-typedef char le_bool;
-#endif
+/**
+* A type used for boolean values.
+*
+* @stable ICU 2.4
+*/
+typedef UBool le_bool;
#ifndef TRUE
/**
@@ -264,21 +287,21 @@
*
* @stable ICU 2.4
*/
-typedef le_uint16 LEUnicode16;
+typedef UChar LEUnicode16;
/**
* Used to represent 32-bit Unicode code points.
*
* @stable ICU 2.4
*/
-typedef le_uint32 LEUnicode32;
+typedef UChar32 LEUnicode32;
/**
* Used to represent 16-bit Unicode code points.
*
* @deprecated since ICU 2.4. Use LEUnicode16 instead
*/
-typedef le_uint16 LEUnicode;
+typedef UChar LEUnicode;
/**
* Used to hold a pair of (x, y) values which represent a point.
@@ -325,7 +348,7 @@
*
* @internal
*/
-#define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
+#define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
/**
* Allocate an array of basic types. This is used to isolate the rest of
@@ -333,7 +356,7 @@
*
* @internal
*/
-#define LE_NEW_ARRAY(type, count) (type *) malloc((count) * sizeof(type))
+#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type))
/**
* Re-allocate an array of basic types. This is used to isolate the rest of
@@ -341,7 +364,7 @@
*
* @internal
*/
-#define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
+#define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSize) * sizeof (array)[0])
/**
* Free an array of basic types. This is used to isolate the rest of
@@ -349,7 +372,7 @@
*
* @internal
*/
-#define LE_DELETE_ARRAY(array) free((void *) (array))
+#define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
#endif
/**
@@ -567,22 +590,24 @@
*
* @stable ICU 2.4
*/
+#ifndef HAVE_LEERRORCODE
enum LEErrorCode {
/* informational */
- LE_NO_SUBFONT_WARNING = -127, // U_USING_DEFAULT_WARNING,
+ LE_NO_SUBFONT_WARNING = U_USING_DEFAULT_WARNING, /**< The font does not contain subfonts. */
/* success */
- LE_NO_ERROR = 0, // U_ZERO_ERROR,
+ LE_NO_ERROR = U_ZERO_ERROR, /**< No error, no warning. */
/* failures */
- LE_ILLEGAL_ARGUMENT_ERROR = 1, // U_ILLEGAL_ARGUMENT_ERROR,
- LE_MEMORY_ALLOCATION_ERROR = 7, // U_MEMORY_ALLOCATION_ERROR,
- LE_INDEX_OUT_OF_BOUNDS_ERROR = 8, //U_INDEX_OUTOFBOUNDS_ERROR,
- LE_NO_LAYOUT_ERROR = 16, // U_UNSUPPORTED_ERROR,
- LE_INTERNAL_ERROR = 5, // U_INTERNAL_PROGRAM_ERROR,
- LE_FONT_FILE_NOT_FOUND_ERROR = 4, // U_FILE_ACCESS_ERROR,
- LE_MISSING_FONT_TABLE_ERROR = 2 // U_MISSING_RESOURCE_ERROR
+ LE_ILLEGAL_ARGUMENT_ERROR = U_ILLEGAL_ARGUMENT_ERROR, /**< An illegal argument was detected. */
+ LE_MEMORY_ALLOCATION_ERROR = U_MEMORY_ALLOCATION_ERROR, /**< Memory allocation error. */
+ LE_INDEX_OUT_OF_BOUNDS_ERROR = U_INDEX_OUTOFBOUNDS_ERROR, /**< Trying to access an index that is out of bounds. */
+ LE_NO_LAYOUT_ERROR = U_UNSUPPORTED_ERROR, /**< You must call layoutChars() first. */
+ LE_INTERNAL_ERROR = U_INTERNAL_PROGRAM_ERROR, /**< An internal error was encountered. */
+ LE_FONT_FILE_NOT_FOUND_ERROR = U_FILE_ACCESS_ERROR, /**< The requested font file cannot be opened. */
+ LE_MISSING_FONT_TABLE_ERROR = U_MISSING_RESOURCE_ERROR /**< The requested font table does not exist. */
};
+#endif
#ifndef XP_CPLUSPLUS
/**
@@ -598,14 +623,20 @@
*
* @stable ICU 2.4
*/
-#define LE_SUCCESS(code) ((code)<=LE_NO_ERROR)
+#ifndef LE_FAILURE
+#define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
+#endif
/**
* A convenience macro to test for the failure of a LayoutEngine call.
*
* @stable ICU 2.4
*/
-#define LE_FAILURE(code) ((code)>LE_NO_ERROR)
+#ifndef LE_FAILURE
+#define LE_FAILURE(code) (U_FAILURE((UErrorCode)code))
+#endif
-#define U_LAYOUT_API
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -23,6 +23,7 @@
*
*/
+
/*
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -40,6 +41,7 @@
#include "IndicLayoutEngine.h"
#include "KhmerLayoutEngine.h"
#include "ThaiLayoutEngine.h"
+//#include "TibetanLayoutEngine.h"
#include "GXLayoutEngine.h"
#include "ScriptAndLanguageTags.h"
#include "CharSubstitutionFilter.h"
@@ -55,6 +57,8 @@
#include "KernTable.h"
+U_NAMESPACE_BEGIN
+
const LEUnicode32 DefaultCharMapper::controlChars[] = {
0x0009, 0x000A, 0x000D,
/*0x200C, 0x200D,*/ 0x200E, 0x200F,
@@ -101,9 +105,7 @@
}
if (fMirror) {
- le_int32 index = OpenTypeUtilities::search((le_uint32) ch,
- (le_uint32 *)DefaultCharMapper::mirroredChars,
- DefaultCharMapper::mirroredCharsCount);
+ le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)DefaultCharMapper::mirroredChars, DefaultCharMapper::mirroredCharsCount);
if (mirroredChars[index] == ch) {
return DefaultCharMapper::srahCderorrim[index];
@@ -132,6 +134,9 @@
// nothing to do
}
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LayoutEngine)
+
#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
#define ccmpFeatureMask 0x80000000UL
@@ -145,10 +150,9 @@
static const le_int32 canonFeatureMapCount = LE_ARRAY_SIZE(canonFeatureMap);
-LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, le_int32 typoFlags)
- : fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode),
- fLanguageCode(languageCode), fTypoFlags(typoFlags)
+LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+ : fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode), fLanguageCode(languageCode),
+ fTypoFlags(typoFlags)
{
fGlyphStorage = new LEGlyphStorage();
}
@@ -158,8 +162,7 @@
return fGlyphStorage->getGlyphCount();
}
-void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase,
- LEErrorCode &success) const
+void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
{
fGlyphStorage->getCharIndices(charIndices, indexBase, success);
}
@@ -170,8 +173,7 @@
}
// Copy the glyphs into caller's (32-bit) glyph array, OR in extraBits
-void LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits,
- LEErrorCode &success) const
+void LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
{
fGlyphStorage->getGlyphs(glyphs, extraBits, success);
}
@@ -218,15 +220,13 @@
fGlyphStorage->getGlyphPositions(positions, success);
}
-void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y,
- LEErrorCode &success) const
+void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
{
fGlyphStorage->getGlyphPosition(glyphIndex, x, y, success);
}
-le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft, LEUnicode *&outChars,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -237,12 +237,7 @@
return 0;
}
- if ((fTypoFlags & 0x4) == 0) { // no canonical processing
- return count;
- }
-
- const GlyphSubstitutionTableHeader *canonGSUBTable =
- (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
+ const GlyphSubstitutionTableHeader *canonGSUBTable = (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
LETag scriptTag = OpenTypeLayoutEngine::getScriptTag(fScriptCode);
LETag langSysTag = OpenTypeLayoutEngine::getLangSysTag(fLanguageCode);
le_int32 i, dir = 1, out = 0, outCharCount = count;
@@ -256,16 +251,15 @@
// We could just do the mark reordering for all scripts, but most
// of them probably don't need it...
if (fScriptCode == hebrScriptCode) {
- reordered = LE_NEW_ARRAY(LEUnicode, count);
+ reordered = LE_NEW_ARRAY(LEUnicode, count);
- if (reordered == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
+ if (reordered == NULL) {
+ success = LE_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
- CanonShaping::reorderMarks(&chars[offset], count, rightToLeft,
- reordered, glyphStorage);
- inChars = reordered;
+ CanonShaping::reorderMarks(&chars[offset], count, rightToLeft, reordered, glyphStorage);
+ inChars = reordered;
}
glyphStorage.allocateGlyphArray(count, rightToLeft, success);
@@ -289,8 +283,7 @@
LE_DELETE_ARRAY(reordered);
}
- outCharCount = canonGSUBTable->process(glyphStorage, rightToLeft, scriptTag,
- langSysTag, NULL, substitutionFilter, canonFeatureMap, canonFeatureMapCount, FALSE);
+ outCharCount = canonGSUBTable->process(glyphStorage, rightToLeft, scriptTag, langSysTag, NULL, substitutionFilter, canonFeatureMap, canonFeatureMapCount, FALSE);
out = (rightToLeft? count - 1 : 0);
@@ -305,35 +298,26 @@
return outCharCount;
}
-
-le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
}
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max ||
- offset + count > max) {
-
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
success = LE_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
LEUnicode *outChars = NULL;
- le_int32 outCharCount = characterProcessing(chars, offset, count, max,
- rightToLeft, outChars, glyphStorage, success);
+ le_int32 outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
if (outChars != NULL) {
- mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft,
- glyphStorage, success);
- // FIXME: a subclass may have allocated this, in which case this delete
- // might not work...
- LE_DELETE_ARRAY(outChars);
+ mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft, glyphStorage, success);
+ LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
} else {
- mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft,
- glyphStorage, success);
+ mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, glyphStorage, success);
}
return glyphStorage.getGlyphCount();
@@ -341,8 +325,7 @@
// Input: glyphs
// Output: positions
-void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage,
- float x, float y, LEErrorCode &success)
+void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -369,9 +352,8 @@
glyphStorage.setPosition(glyphCount, x, y, success);
}
-void LayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void LayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -398,8 +380,7 @@
return;
}
-void LayoutEngine::adjustMarkGlyphs(LEGlyphStorage &glyphStorage,
- LEGlyphFilter *markFilter, LEErrorCode &success)
+void LayoutEngine::adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
{
float xAdjust = 0;
le_int32 p, glyphCount = glyphStorage.getGlyphCount();
@@ -435,9 +416,7 @@
glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
}
-void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount,
- le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter,
- LEErrorCode &success)
+void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
{
float xAdjust = 0;
le_int32 c = 0, direction = 1, p;
@@ -484,9 +463,8 @@
return fFontInstance->getFontTable(tableTag);
}
-void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, le_bool mirror,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -496,32 +474,27 @@
DefaultCharMapper charMapper(TRUE, mirror);
- fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse,
- &charMapper, glyphStorage);
+ fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse, &charMapper, glyphStorage);
}
// Input: characters, font?
// Output: glyphs, positions, char indices
// Returns: number of glyphs
-le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- float x, float y, LEErrorCode &success)
+le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ float x, float y, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
}
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max ||
- offset + count > max) {
-
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
success = LE_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
le_int32 glyphCount;
- glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft,
- *fGlyphStorage, success);
+ glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft, *fGlyphStorage, success);
positionGlyphs(*fGlyphStorage, x, y, success);
adjustGlyphPositions(chars, offset, count, rightToLeft, *fGlyphStorage, success);
@@ -533,17 +506,13 @@
fGlyphStorage->reset();
}
-LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
+LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
{
// 3 -> kerning and ligatures
- return LayoutEngine::layoutEngineFactory(fontInstance, scriptCode,
- languageCode, 3, success);
+ return LayoutEngine::layoutEngineFactory(fontInstance, scriptCode, languageCode, 3, success);
}
-LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
- LEErrorCode &success)
+LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
{
static const le_uint32 gsubTableTag = LE_GSUB_TABLE_TAG;
static const le_uint32 mortTableTag = LE_MORT_TABLE_TAG;
@@ -552,18 +521,12 @@
return NULL;
}
- // code2000 has GPOS kern feature tags for latn script
-
- const GlyphSubstitutionTableHeader *gsubTable =
- (const GlyphSubstitutionTableHeader *) fontInstance->getFontTable(gsubTableTag);
+ const GlyphSubstitutionTableHeader *gsubTable = (const GlyphSubstitutionTableHeader *) fontInstance->getFontTable(gsubTableTag);
LayoutEngine *result = NULL;
LETag scriptTag = 0x00000000;
LETag languageTag = 0x00000000;
- if (gsubTable != NULL &&
- gsubTable->coversScript(scriptTag =
- OpenTypeLayoutEngine::getScriptTag(scriptCode))) {
-
+ if (gsubTable != NULL && gsubTable->coversScript(scriptTag = OpenTypeLayoutEngine::getScriptTag(scriptCode))) {
switch (scriptCode) {
case bengScriptCode:
case devaScriptCode:
@@ -575,13 +538,11 @@
case tamlScriptCode:
case teluScriptCode:
case sinhScriptCode:
- result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags, gsubTable);
+ result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
case arabScriptCode:
- result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags, gsubTable);
+ result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
case haniScriptCode:
@@ -593,33 +554,33 @@
case zhtLanguageCode:
case zhsLanguageCode:
if (gsubTable->coversScriptAndLanguage(scriptTag, languageTag, TRUE)) {
- result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags, gsubTable);
+ result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
}
// note: falling through to default case.
default:
- result = new OpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags, gsubTable);
+ result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
}
break;
+#if 0
+ case tibtScriptCode:
+ result = new TibetanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
+ break;
+#endif
case khmrScriptCode:
- result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags, gsubTable);
+ result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
default:
- result = new OpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags, gsubTable);
+ result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
}
} else {
- const MorphTableHeader *morphTable =
- (MorphTableHeader *) fontInstance->getFontTable(mortTableTag);
+ const MorphTableHeader *morphTable = (MorphTableHeader *) fontInstance->getFontTable(mortTableTag);
if (morphTable != NULL) {
result = new GXLayoutEngine(fontInstance, scriptCode, languageCode, morphTable);
@@ -636,16 +597,18 @@
case teluScriptCode:
case sinhScriptCode:
{
- result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags);
+ result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
break;
}
case arabScriptCode:
- result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode,
- languageCode, typoFlags);
+ //case hebrScriptCode:
+ result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
break;
+ //case hebrScriptCode:
+ // return new HebrewOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
+
case thaiScriptCode:
result = new ThaiLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
break;
@@ -667,3 +630,5 @@
LayoutEngine::~LayoutEngine() {
delete fGlyphStorage;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -23,6 +23,7 @@
*
*/
+
/*
*
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -34,63 +35,61 @@
#include "LETypes.h"
-#include <string.h>
+/**
+ * \file
+ * \brief C++ API: Virtual base class for complex text layout.
+ */
+
+U_NAMESPACE_BEGIN
class LEFontInstance;
class LEGlyphFilter;
class LEGlyphStorage;
/**
- * This is a virtual base class used to do complex text layout. The
- * text must all be in a single font, script, and language. An
- * instance of a LayoutEngine can be created by calling the
- * layoutEngineFactory method. Fonts are identified by instances of
- * the LEFontInstance class. Script and language codes are identified
+ * This is a virtual base class used to do complex text layout. The text must all
+ * be in a single font, script, and language. An instance of a LayoutEngine can be
+ * created by calling the layoutEngineFactory method. Fonts are identified by
+ * instances of the LEFontInstance class. Script and language codes are identified
* by integer codes, which are defined in ScriptAndLanuageTags.h.
*
- * Note that this class is not public API. It is declared public so
- * that it can be exported from the library that it is a part of.
+ * Note that this class is not public API. It is declared public so that it can be
+ * exported from the library that it is a part of.
*
- * The input to the layout process is an array of characters in
- * logical order, and a starting X, Y position for the text. The
- * output is an array of glyph indices, an array of character indices
- * for the glyphs, and an array of glyph positions. These arrays are
- * protected members of LayoutEngine which can be retreived by a
- * public method. The reset method can be called to free these arrays
- * so that the LayoutEngine can be reused.
+ * The input to the layout process is an array of characters in logical order,
+ * and a starting X, Y position for the text. The output is an array of glyph indices,
+ * an array of character indices for the glyphs, and an array of glyph positions.
+ * These arrays are protected members of LayoutEngine which can be retreived by a
+ * public method. The reset method can be called to free these arrays so that the
+ * LayoutEngine can be reused.
*
- * The layout process is done in three steps. There is a protected
- * virtual method for each step. These methods have a default
- * implementation which only does character to glyph mapping and
- * default positioning using the glyph's advance widths. Subclasses
- * can override these methods for more advanced layout. There is a
- * public method which invokes the steps in the correct order.
+ * The layout process is done in three steps. There is a protected virtual method
+ * for each step. These methods have a default implementation which only does
+ * character to glyph mapping and default positioning using the glyph's advance
+ * widths. Subclasses can override these methods for more advanced layout.
+ * There is a public method which invokes the steps in the correct order.
*
* The steps are:
*
- * 1) Glyph processing - character to glyph mapping and any other
- * glyph processing such as ligature substitution and contextual
- * forms.
+ * 1) Glyph processing - character to glyph mapping and any other glyph processing
+ * such as ligature substitution and contextual forms.
*
- * 2) Glyph positioning - position the glyphs based on their advance
- * widths.
+ * 2) Glyph positioning - position the glyphs based on their advance widths.
*
- * 3) Glyph position adjustments - adjustment of glyph positions for
- * kerning, accent placement, etc.
+ * 3) Glyph position adjustments - adjustment of glyph positions for kerning,
+ * accent placement, etc.
*
- * NOTE: in all methods below, output parameters are references to
- * pointers so the method can allocate and free the storage as
- * needed. All storage allocated in this way is owned by the object
- * which created it, and will be freed when it is no longer needed, or
- * when the object's destructor is invoked.
+ * NOTE: in all methods below, output parameters are references to pointers so
+ * the method can allocate and free the storage as needed. All storage allocated
+ * in this way is owned by the object which created it, and will be freed when it
+ * is no longer needed, or when the object's destructor is invoked.
*
* @see LEFontInstance
* @see ScriptAndLanguageTags.h
*
* @stable ICU 2.8
*/
-class U_LAYOUT_API LayoutEngine
-{
+class U_LAYOUT_API LayoutEngine : public UObject {
protected:
/**
* The object which holds the glyph storage
@@ -134,21 +133,21 @@
le_int32 fTypoFlags;
/**
- * This constructs an instance for a given font, script and
- * language. Subclass constructors
+ * This constructs an instance for a given font, script and language. Subclass constructors
* must call this constructor.
*
* @param fontInstance - the font for the text
* @param scriptCode - the script for the text
* @param languageCode - the language for the text
+ * @param typoFlags - the typographic control flags for the text. Set bit 1 if kerning
+ * is desired, set bit 2 if ligature formation is desired. Others are reserved.
*
* @see LEFontInstance
* @see ScriptAndLanguageTags.h
*
* @internal
*/
- LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, le_int32 typoFlags);
+ LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
/**
* This overrides the default no argument constructor to make it
@@ -160,11 +159,10 @@
LayoutEngine();
/**
- * This method does any required pre-processing to the input
- * characters. It may generate output characters that differ from
- * the input charcters due to insertions, deletions, or
- * reorderings. In such cases, it will also generate an output
- * character index array reflecting these changes.
+ * This method does any required pre-processing to the input characters. It
+ * may generate output characters that differ from the input charcters due to
+ * insertions, deletions, or reorderings. In such cases, it will also generate an
+ * output character index array reflecting these changes.
*
* Subclasses must override this method.
*
@@ -173,44 +171,36 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - TRUE if the characters are in a right to
- * left directional run
- * @param outChars - the output character array, if different from
- * the input
- * @param glyphStorage - the object that holds the per-glyph
- * storage. The character index array may be set.
+ * @param rightToLeft - TRUE if the characters are in a right to left directional run
+ * @param outChars - the output character array, if different from the input
+ * @param glyphStorage - the object that holds the per-glyph storage. The character index array may be set.
* @param success - set to an error code if the operation fails
- * @return the output character count (input character count if no
- * change)
+ *
+ * @return the output character count (input character count if no change)
*
* @internal
*/
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
- * This method does the glyph processing. It converts an array of
- * characters into an array of glyph indices and character
- * indices. The characters to be processed are passed in a
- * surrounding context. The context is specified as a starting
- * address and a maximum character count. An offset and a count
- * are used to specify the characters to be processed.
+ * This method does the glyph processing. It converts an array of characters
+ * into an array of glyph indices and character indices. The characters to be
+ * processed are passed in a surrounding context. The context is specified as
+ * a starting address and a maximum character count. An offset and a count are
+ * used to specify the characters to be processed.
*
- * The default implementation of this method only does character
- * to glyph mapping. Subclasses needing more elaborate glyph
- * processing must override this method.
+ * The default implementation of this method only does character to glyph mapping.
+ * Subclasses needing more elaborate glyph processing must override this method.
*
* Input parameters:
* @param chars - the character context
* @param offset - the offset of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the context.
- * @param rightToLeft - TRUE if the text is in a right to left
- * directional run
- * @param glyphStorage - the object which holds the per-glyph
- * storage. The glyph and char indices arrays will be
- * set.
+ * @param rightToLeft - TRUE if the text is in a right to left directional run
+ * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char indices arrays
+ * will be set.
*
* Output parameters:
* @param success - set to an error code if the operation fails
@@ -219,60 +209,50 @@
*
* @internal
*/
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
- * This method does basic glyph positioning. The default
- * implementation positions the glyphs based on their advance
- * widths. This is sufficient for most uses. It is not expected
- * that many subclasses will override this method.
+ * This method does basic glyph positioning. The default implementation positions
+ * the glyphs based on their advance widths. This is sufficient for most uses. It
+ * is not expected that many subclasses will override this method.
*
* Input parameters:
- * @param glyphStorage - the object which holds the per-glyph storage.
- * The glyph position array will be set.
+ * @param glyphStorage - the object which holds the per-glyph storage. The glyph position array will be set.
* @param x - the starting X position
* @param y - the starting Y position
* @param success - set to an error code if the operation fails
*
* @internal
*/
- virtual void positionGlyphs(LEGlyphStorage &glyphStorage,
- float x, float y, LEErrorCode &success);
+ virtual void positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success);
/**
- * This method does positioning adjustments like accent
- * positioning and kerning. The default implementation does
- * nothing. Subclasses needing position adjustments must override
- * this method.
+ * This method does positioning adjustments like accent positioning and
+ * kerning. The default implementation does nothing. Subclasses needing
+ * position adjustments must override this method.
*
- * Note that this method has both characters and glyphs as input
- * so that it can use the character codes to determine glyph types
- * if that information isn't directly available. (e.g. Some Arabic
- * OpenType fonts don't have a GDEF table)
+ * Note that this method has both characters and glyphs as input so that
+ * it can use the character codes to determine glyph types if that information
+ * isn't directly available. (e.g. Some Arabic OpenType fonts don't have a GDEF
+ * table)
*
* @param chars - the input character context
* @param offset - the offset of the first character to process
* @param count - the number of characters to process
- * @param reverse - <code>TRUE</code> if the glyphs in the glyph
- * array have been reordered
- * @param glyphStorage - the object which holds the per-glyph
- * storage. The glyph positions will be adjusted as needed.
- * @param success - output parameter set to an error code if the
- * operation fails
+ * @param reverse - <code>TRUE</code> if the glyphs in the glyph array have been reordered
+ * @param glyphStorage - the object which holds the per-glyph storage. The glyph positions will be
+ * adjusted as needed.
+ * @param success - output parameter set to an error code if the operation fails
*
* @internal
*/
- virtual void adjustGlyphPositions(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
- * This method gets a table from the font associated with the
- * text. The default implementation gets the table from the font
- * instance. Subclasses which need to get the tables some other
- * way must override this method.
+ * This method gets a table from the font associated with
+ * the text. The default implementation gets the table from
+ * the font instance. Subclasses which need to get the tables
+ * some other way must override this method.
*
* @param tableTag - the four byte table tag.
*
@@ -283,127 +263,106 @@
virtual const void *getFontTable(LETag tableTag) const;
/**
- * This method does character to glyph mapping. The default
- * implementation uses the font instance to do the mapping. It
- * will allocate the glyph and character index arrays if they're
- * not already allocated. If it allocates the character index
- * array, it will fill it it.
+ * This method does character to glyph mapping. The default implementation
+ * uses the font instance to do the mapping. It will allocate the glyph and
+ * character index arrays if they're not already allocated. If it allocates the
+ * character index array, it will fill it it.
*
- * This method supports right to left text with the ability to
- * store the glyphs in reverse order, and by supporting character
- * mirroring, which will replace a character which has a left and
- * right form, such as parens, with the opposite form before
- * mapping it to a glyph index.
+ * This method supports right to left
+ * text with the ability to store the glyphs in reverse order, and by supporting
+ * character mirroring, which will replace a character which has a left and right
+ * form, such as parens, with the opposite form before mapping it to a glyph index.
*
* Input parameters:
* @param chars - the input character context
* @param offset - the offset of the first character to be mapped
* @param count - the number of characters to be mapped
- * @param reverse - if <code>TRUE</code>, the output will be in
- * reverse order
+ * @param reverse - if <code>TRUE</code>, the output will be in reverse order
* @param mirror - if <code>TRUE</code>, do character mirroring
- * @param glyphStorage - the object which holds the per-glyph
- * storage. The glyph and char indices arrays will be
- * filled in.
+ * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char
+ * indices arrays will be filled in.
* @param success - set to an error code if the operation fails
*
* @see LEFontInstance
*
* @internal
*/
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, le_bool mirror,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
- * This is a convenience method that forces the advance width of
- * mark glyphs to be zero, which is required for proper selection
- * and highlighting.
+ * This is a convenience method that forces the advance width of mark
+ * glyphs to be zero, which is required for proper selection and highlighting.
*
- * @param glyphStorage - the object containing the per-glyph
- * storage. The positions array will be modified.
+ * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
* @param markFilter - used to identify mark glyphs
- * @param success - output parameter set to an error code if the
- * operation fails
+ * @param success - output parameter set to an error code if the operation fails
*
* @see LEGlyphFilter
*
* @internal
*/
- static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage,
- LEGlyphFilter *markFilter, LEErrorCode &success);
+ static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
/**
- * This is a convenience method that forces the advance width of
- * mark glyphs to be zero, which is required for proper selection
- * and highlighting. This method uses the input characters to
- * identify marks. This is required in cases where the font does
- * not contain enough information to identify them based on the
- * glyph IDs.
+ * This is a convenience method that forces the advance width of mark
+ * glyphs to be zero, which is required for proper selection and highlighting.
+ * This method uses the input characters to identify marks. This is required in
+ * cases where the font does not contain enough information to identify them based
+ * on the glyph IDs.
*
* @param chars - the array of input characters
* @param charCount - the number of input characers
- * @param glyphStorage - the object containing the per-glyph
- * storage. The positions array will be modified.
- * @param reverse - <code>TRUE</code> if the glyph array has been
- * reordered
+ * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
+ * @param reverse - <code>TRUE</code> if the glyph array has been reordered
* @param markFilter - used to identify mark glyphs
- * @param success - output parameter set to an error code if the
- * operation fails
+ * @param success - output parameter set to an error code if the operation fails
*
* @see LEGlyphFilter
*
* @internal
*/
- static void adjustMarkGlyphs(const LEUnicode chars[],
- le_int32 charCount, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter,
- LEErrorCode &success);
+ static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
+
public:
/**
* The destructor. It will free any storage allocated for the
* glyph, character index and position arrays by calling the reset
- * method. It is declared virtual so that it will be invoked by
- * the subclass destructors.
+ * method. It is declared virtual so that it will be invoked by the
+ * subclass destructors.
*
* @stable ICU 2.8
*/
virtual ~LayoutEngine();
/**
- * This method will invoke the layout steps in their correct order
- * by calling the 32 bit versions of the computeGlyphs and
- * positionGlyphs methods.(It doesn't * call the
- * adjustGlyphPositions method because that doesn't apply for
- * default * processing.) It will compute the glyph, character
- * index and position arrays.
+ * This method will invoke the layout steps in their correct order by calling
+ * the computeGlyphs, positionGlyphs and adjustGlyphPosition methods.. It will
+ * compute the glyph, character index and position arrays.
*
* @param chars - the input character context
* @param offset - the offset of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - true if the characers are in a right to
- * left directional run
+ * @param rightToLeft - TRUE if the characers are in a right to left directional run
* @param x - the initial X position
* @param y - the initial Y position
- * @param success - output parameter set to an error code if the
- * operation fails
+ * @param success - output parameter set to an error code if the operation fails
+ *
* @return the number of glyphs in the glyph array
*
- * Note: the glyph, character index and position array can be
- * accessed using the getter method below.
+ * Note; the glyph, character index and position array can be accessed
+ * using the getter method below.
+ *
+ * @stable ICU 2.8
*/
- le_int32 layoutChars(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft, float x,
- float y, LEErrorCode &success);
+ virtual le_int32 layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, float x, float y, LEErrorCode &success);
/**
- * This method returns the number of glyphs in the glyph
- * array. Note that the number of glyphs will be greater than or
- * equal to the number of characters used to create the
- * LayoutEngine.
+ * This method returns the number of glyphs in the glyph array. Note
+ * that the number of glyphs will be greater than or equal to the number
+ * of characters used to create the LayoutEngine.
*
* @return the number of glyphs in the glyph array
*
@@ -412,9 +371,9 @@
le_int32 getGlyphCount() const;
/**
- * This method copies the glyph array into a caller supplied
- * array. The caller must ensure that the array is large enough
- * to hold all the glyphs.
+ * This method copies the glyph array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold all
+ * the glyphs.
*
* @param glyphs - the destiniation glyph array
* @param success - set to an error code if the operation fails
@@ -424,10 +383,10 @@
void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
/**
- * This method copies the glyph array into a caller supplied
- * array, ORing in extra bits. (This functionality is needed by
- * the JDK, which uses 32 bits pre glyph idex, with the high 16
- * bits encoding the composite font slot number)
+ * This method copies the glyph array into a caller supplied array,
+ * ORing in extra bits. (This functionality is needed by the JDK,
+ * which uses 32 bits pre glyph idex, with the high 16 bits encoding
+ * the composite font slot number)
*
* @param glyphs - the destination (32 bit) glyph array
* @param extraBits - this value will be ORed with each glyph index
@@ -435,13 +394,12 @@
*
* @stable ICU 2.8
*/
- virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits,
- LEErrorCode &success) const;
+ virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
/**
- * This method copies the character index array into a caller
- * supplied array. The caller must ensure that the array is large
- * enough to hold a character index for each glyph.
+ * This method copies the character index array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold a
+ * character index for each glyph.
*
* @param charIndices - the destiniation character index array
* @param success - set to an error code if the operation fails
@@ -451,9 +409,9 @@
void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
/**
- * This method copies the character index array into a caller
- * supplied array. The caller must ensure that the array is large
- * enough to hold a character index for each glyph.
+ * This method copies the character index array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold a
+ * character index for each glyph.
*
* @param charIndices - the destiniation character index array
* @param indexBase - an offset which will be added to each index
@@ -461,14 +419,13 @@
*
* @stable ICU 2.8
*/
- void getCharIndices(le_int32 charIndices[], le_int32 indexBase,
- LEErrorCode &success) const;
+ void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
/**
- * This method copies the position array into a caller supplied
- * array. The caller must ensure that the array is large enough
- * to hold an X and Y position for each glyph, plus an extra X and
- * Y for the advance of the last glyph.
+ * This method copies the position array into a caller supplied array.
+ * The caller must ensure that the array is large enough to hold an
+ * X and Y position for each glyph, plus an extra X and Y for the
+ * advance of the last glyph.
*
* @param positions - the destiniation position array
* @param success - set to an error code if the operation fails
@@ -491,8 +448,7 @@
*
* @stable ICU 2.8
*/
- void getGlyphPosition(le_int32 glyphIndex, float &x, float &y,
- LEErrorCode &success) const;
+ void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
/**
* This method frees the glyph, character index and position arrays
@@ -511,8 +467,7 @@
* @param fontInstance - the font of the text
* @param scriptCode - the script of the text
* @param languageCode - the language of the text
- * @param success - output parameter set to an error code if the
- * operation fails
+ * @param success - output parameter set to an error code if the operation fails
*
* @return a LayoutEngine which can layout text in the given font.
*
@@ -520,17 +475,30 @@
*
* @stable ICU 2.8
*/
- static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success);
+ static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success);
/**
* Override of existing call that provides flags to control typography.
* @draft ICU 3.4
*/
- static LayoutEngine *layoutEngineFactory(
- const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode,
- le_int32 typo_flags, LEErrorCode &success);
+ static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typo_flags, LEErrorCode &success);
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/LayoutTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LayoutTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,20 @@
#ifndef __LAYOUTTABLES_H
#define __LAYOUTTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
#define ANY_NUMBER 1
typedef le_int16 ByteOffset;
typedef le_int16 WordOffset;
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -39,10 +39,14 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
#define ExtendedComplement(m) ((le_int32) (~((le_uint32) (m))))
#define SignBit(m) ((ExtendedComplement(m) >> 1) & (le_int32)(m))
#define SignExtend(v,m) (((v) & SignBit(m))? ((v) | ExtendedComplement(m)): (v))
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LigatureSubstitutionProcessor)
+
LigatureSubstitutionProcessor::LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
: StateTableProcessor(morphSubtableHeader)
{
@@ -63,8 +67,7 @@
m = -1;
}
-ByteOffset LigatureSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage,
- le_int32 &currGlyph, EntryTableIndex index)
+ByteOffset LigatureSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
{
const LigatureSubstitutionStateEntry *entry = &entryTable[index];
ByteOffset newState = SWAPW(entry->newStateOffset);
@@ -135,3 +138,5 @@
void LigatureSubstitutionProcessor::endStateTable()
{
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstProc.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstProc.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __LIGATURESUBSTITUTIONPROCESSOR_H
#define __LIGATURESUBSTITUTIONPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "StateTableProcessor.h"
#include "LigatureSubstitution.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
#define nComponents 16
@@ -54,6 +61,20 @@
LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
virtual ~LigatureSubstitutionProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
LigatureSubstitutionProcessor();
@@ -68,6 +89,8 @@
le_int16 m;
const LigatureSubstitutionHeader *ligatureSubstitutionHeader;
+
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
*
*/
@@ -37,6 +38,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
{
LEGlyphID glyph = glyphIterator->getCurrGlyphID();
@@ -92,3 +95,5 @@
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __LIGATURESUBSTITUTIONSUBTABLES_H
#define __LIGATURESUBSTITUTIONSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "OpenTypeTables.h"
#include "GlyphSubstitutionTables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct LigatureSetTable
{
le_uint16 ligatureCount;
@@ -59,4 +66,5 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstitution.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstitution.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __LIGATURESUBSTITUTION_H
#define __LIGATURESUBSTITUTION_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
#include "StateTables.h"
#include "MorphTables.h"
#include "MorphStateTables.h"
+U_NAMESPACE_BEGIN
+
struct LigatureSubstitutionHeader : MorphStateTableHeader
{
ByteOffset ligatureActionTableOffset;
@@ -65,4 +72,5 @@
lafComponentOffsetMask = 0x3FFFFFFF
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LookupProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -42,6 +42,8 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 LookupProcessor::applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator,
const LEFontInstance *fontInstance) const
{
@@ -65,10 +67,9 @@
return 1;
}
-le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage,
- GlyphPositionAdjustments *glyphPositionAdjustments,
- le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance) const
+le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
+ le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
+ const LEFontInstance *fontInstance) const
{
le_int32 glyphCount = glyphStorage.getGlyphCount();
@@ -133,8 +134,7 @@
LookupProcessor::LookupProcessor(const char *baseAddress,
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
- LETag scriptTag, LETag languageTag, const FeatureMap *featureMap,
- le_int32 featureMapCount, le_bool orderFeatures)
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures)
: lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL),
lookupOrderArray(NULL), lookupOrderCount(0)
{
@@ -296,3 +296,5 @@
LE_DELETE_ARRAY(lookupOrderArray);
LE_DELETE_ARRAY(lookupSelectArray);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LookupProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -32,9 +33,18 @@
#ifndef __LOOKUPPROCESSOR_H
#define __LOOKUPPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
+//#include "Lookups.h"
+//#include "Features.h"
+
+U_NAMESPACE_BEGIN
class LEFontInstance;
class LEGlyphStorage;
@@ -46,13 +56,10 @@
struct LookupSubtable;
struct LookupTable;
-class LookupProcessor
-{
+class LookupProcessor : public UMemory {
public:
- le_int32 process(LEGlyphStorage &glyphStorage,
- GlyphPositionAdjustments *glyphPositionAdjustments,
- le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance) const;
+ le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
+ le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEFontInstance *fontInstance) const;
le_uint32 applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -64,19 +71,18 @@
virtual ~LookupProcessor();
protected:
- LookupProcessor(const char *baseAddress,
+ LookupProcessor(const char *baseAddress,
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
- LETag scriptTag, LETag languageTag, const FeatureMap *featureMap,
- le_int32 featureMapCount, le_bool orderFeatures);
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures);
- LookupProcessor();
+ LookupProcessor();
le_int32 selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order);
const LookupListTable *lookupListTable;
const FeatureListTable *featureListTable;
- FeatureMask *lookupSelectArray;
+ FeatureMask *lookupSelectArray;
le_uint16 *lookupOrderArray;
le_uint32 lookupOrderCount;
@@ -87,4 +93,5 @@
LookupProcessor &operator=(const LookupProcessor &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/LookupTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,8 @@
#include "LookupTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
/*
These are the rolled-up versions of the uniform binary search.
Someday, if we need more performance, we can un-roll them.
@@ -104,3 +106,5 @@
return NULL;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LookupTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __LOOKUPTABLES_H
#define __LOOKUPTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
+U_NAMESPACE_BEGIN
+
enum LookupTableFormat
{
ltfSimpleArray = 0,
@@ -104,4 +111,5 @@
LookupValue valueArray[ANY_NUMBER];
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/Lookups.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Lookups.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "CoverageTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
const LookupTable *LookupListTable::getLookupTable(le_uint16 lookupTableIndex) const
{
if (lookupTableIndex >= SWAPW(lookupCount)) {
@@ -63,3 +65,5 @@
return coverageTable->getGlyphCoverage(glyphID);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/Lookups.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Lookups.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __LOOKUPS_H
#define __LOOKUPS_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
enum LookupFlags
{
lfBaselineIsLogicalEnd = 0x0001, // The MS spec. calls this flag "RightToLeft" but this name is more accurate
@@ -79,6 +86,5 @@
return getGlyphCoverage(coverageTableOffset, glyphID);
}
-
-
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/MPreFixups.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MPreFixups.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -33,6 +33,8 @@
#include "LEGlyphStorage.h"
#include "MPreFixups.h"
+U_NAMESPACE_BEGIN
+
struct FixupData
{
le_int32 fBaseIndex;
@@ -92,7 +94,7 @@
for (i = 0; i < mpreCount; i += 1) {
mpreSave[i] = glyphStorage[mpreIndex + i];
- indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success);
+ indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success); //charIndices[mpreIndex + i];
}
for (i = 0; i < moveCount; i += 1) {
@@ -112,3 +114,5 @@
LE_DELETE_ARRAY(mpreSave);
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MPreFixups.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MPreFixups.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,14 +32,22 @@
#ifndef __MPREFIXUPS_H
#define __MPREFIXUPS_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
// Might want to make this a private member...
struct FixupData;
-class MPreFixups {
+class MPreFixups : public UMemory
+{
public:
MPreFixups(le_int32 charCount);
~MPreFixups();
@@ -53,4 +61,7 @@
le_int32 fFixupCount;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/MarkArrays.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkArrays.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,8 @@
#include "MarkArrays.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_int32 MarkArray::getMarkClass(LEGlyphID glyphID, le_int32 coverageIndex, const LEFontInstance *fontInstance,
LEPoint &anchor) const
{
@@ -58,3 +60,5 @@
return markClass;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkArrays.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkArrays.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,10 +32,17 @@
#ifndef __MARKARRAYS_H
#define __MARKARRAYS_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
struct MarkRecord
{
le_uint16 markClass;
@@ -51,4 +58,7 @@
LEPoint &anchor) const;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -40,6 +40,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
LEGlyphID MarkToBasePositioningSubtable::findBaseGlyph(GlyphIterator *glyphIterator) const
{
if (glyphIterator->prev()) {
@@ -106,7 +108,6 @@
glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition());
if (glyphIterator->isRightToLeft()) {
- // dlf flip advance to local coordinate system
glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX, anchorDiffY, -markAdvance.fX, -markAdvance.fY);
} else {
LEPoint baseAdvance;
@@ -114,9 +115,10 @@
fontInstance->getGlyphAdvance(baseGlyph, pixels);
fontInstance->pixelsToUnits(pixels, baseAdvance);
- // flip advances to local coordinate system
glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - baseAdvance.fX, anchorDiffY - baseAdvance.fY, -markAdvance.fX, -markAdvance.fY);
}
return 1;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __MARKTOBASEPOSITIONINGSUBTABLES_H
#define __MARKTOBASEPOSITIONINGSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "AttachmentPosnSubtables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct MarkToBasePositioningSubtable : AttachmentPositioningSubtable
{
le_int32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -56,4 +63,6 @@
BaseRecord baseRecordArray[ANY_NUMBER];
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -39,6 +39,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
LEGlyphID MarkToLigaturePositioningSubtable::findLigatureGlyph(GlyphIterator *glyphIterator) const
{
if (glyphIterator->prev()) {
@@ -117,9 +119,10 @@
fontInstance->getGlyphAdvance(ligatureGlyph, pixels);
fontInstance->pixelsToUnits(pixels, ligatureAdvance);
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - ligatureAdvance.fX,
- anchorDiffY - ligatureAdvance.fY, -markAdvance.fX, -markAdvance.fY);
+ glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - ligatureAdvance.fX, anchorDiffY - ligatureAdvance.fY, -markAdvance.fX, -markAdvance.fY);
}
return 1;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
#define __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "AttachmentPosnSubtables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct MarkToLigaturePositioningSubtable : AttachmentPositioningSubtable
{
le_int32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -62,4 +69,6 @@
Offset ligatureAttachTableOffsetArray[ANY_NUMBER];
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -40,6 +40,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
LEGlyphID MarkToMarkPositioningSubtable::findMark2Glyph(GlyphIterator *glyphIterator) const
{
if (glyphIterator->findMark2Glyph()) {
@@ -88,7 +90,7 @@
const AnchorTable *anchorTable = (const AnchorTable *) ((char *) mark2Array + anchorTableOffset);
LEPoint mark2Anchor, markAdvance, pixels;
- if (anchorTableOffset == 0) { // jb4729
+ if (anchorTableOffset == 0) {
// this seems to mean that the marks don't attach...
return 0;
}
@@ -111,9 +113,10 @@
fontInstance->getGlyphAdvance(mark2Glyph, pixels);
fontInstance->pixelsToUnits(pixels, mark2Advance);
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - mark2Advance.fX,
- anchorDiffY - mark2Advance.fY, -markAdvance.fX, -markAdvance.fY);
+ glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - mark2Advance.fX, anchorDiffY - mark2Advance.fY, -markAdvance.fX, -markAdvance.fY);
}
return 1;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __MARKTOMARKPOSITIONINGSUBTABLES_H
#define __MARKTOMARKPOSITIONINGSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "AttachmentPosnSubtables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct MarkToMarkPositioningSubtable : AttachmentPositioningSubtable
{
le_int32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -56,4 +63,6 @@
Mark2Record mark2RecordArray[ANY_NUMBER];
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/MirroredCharData.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MirroredCharData.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,8 @@
#include "LETypes.h"
#include "DefaultCharMapper.h"
+U_NAMESPACE_BEGIN
+
const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
0x0028, 0x0029, 0x003C, 0x003E, 0x005B, 0x005D, 0x007B, 0x007D,
0x00AB, 0x00BB, 0x2039, 0x203A, 0x2045, 0x2046, 0x207D, 0x207E,
@@ -127,3 +129,5 @@
};
const le_int32 DefaultCharMapper::mirroredCharsCount = 332;
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MorphStateTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MorphStateTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,14 +32,22 @@
#ifndef __MORPHSTATETABLES_H
#define __MORPHSTATETABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
#include "MorphTables.h"
#include "StateTables.h"
+U_NAMESPACE_BEGIN
+
struct MorphStateTableHeader : MorphSubtableHeader
{
StateTableHeader stHeader;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/MorphTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MorphTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -42,6 +42,8 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
void MorphTableHeader::process(LEGlyphStorage &glyphStorage) const
{
const ChainHeader *chainHeader = chains;
@@ -114,3 +116,5 @@
delete processor;
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MorphTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MorphTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __MORPHTABLES_H
#define __MORPHTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
typedef le_uint32 FeatureFlags;
@@ -98,4 +105,6 @@
void process(LEGlyphStorage &glyphStorage) const;
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -37,6 +37,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 MultipleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
{
LEGlyphID glyph = glyphIterator->getCurrGlyphID();
@@ -106,3 +108,5 @@
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __MULTIPLESUBSTITUTIONSUBTABLES_H
#define __MULTIPLESUBSTITUTIONSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "OpenTypeTables.h"
#include "GlyphSubstitutionTables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct SequenceTable
{
le_uint16 glyphCount;
@@ -52,4 +59,5 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubst.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubst.h Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
*
*/
@@ -32,14 +33,23 @@
#ifndef __NONCONTEXTUALGLYPHSUBSTITUTION_H
#define __NONCONTEXTUALGLYPHSUBSTITUTION_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
#include "LookupTables.h"
#include "MorphTables.h"
+U_NAMESPACE_BEGIN
+
struct NonContextualGlyphSubstitutionHeader : MorphSubtableHeader
{
LookupTable table;
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -41,6 +41,8 @@
#include "TrimmedArrayProcessor.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor()
{
}
@@ -79,3 +81,5 @@
return NULL;
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,18 @@
#ifndef __NONCONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
#define __NONCONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "NonContextualGlyphSubst.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class NonContextualGlyphSubstitutionProcessor : public SubtableProcessor
@@ -57,4 +64,5 @@
NonContextualGlyphSubstitutionProcessor &operator=(const NonContextualGlyphSubstitutionProcessor &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -47,6 +47,10 @@
#include "GDEFMarkFilter.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(OpenTypeLayoutEngine)
+
#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
#define ligaFeatureTag LE_LIGA_FEATURE_TAG
#define cligFeatureTag LE_CLIG_FEATURE_TAG
@@ -78,7 +82,7 @@
{ccmpFeatureTag, ccmpFeatureMask},
{ligaFeatureTag, ligaFeatureMask},
{cligFeatureTag, cligFeatureMask},
- {kernFeatureTag, kernFeatureMask},
+ {kernFeatureTag, kernFeatureMask},
{paltFeatureTag, paltFeatureMask},
{markFeatureTag, markFeatureMask},
{mkmkFeatureTag, mkmkFeatureMask}
@@ -86,19 +90,15 @@
static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
-OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
- const GlyphSubstitutionTableHeader *gsubTable)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
- fFeatureMask(minimalFeatures), fFeatureMap(featureMap),
- fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
- fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL),
- fSubstitutionFilter(NULL)
+OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+ : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureMask(minimalFeatures),
+ fFeatureMap(featureMap), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
+ fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
{
static const le_uint32 gdefTableTag = LE_GDEF_TABLE_TAG;
static const le_uint32 gposTableTag = LE_GPOS_TABLE_TAG;
- const GlyphPositioningTableHeader *gposTable =
- (const GlyphPositioningTableHeader *) getFontTable(gposTableTag);
+ const GlyphPositioningTableHeader *gposTable = (const GlyphPositioningTableHeader *) getFontTable(gposTableTag);
// todo: switch to more flags and bitfield rather than list of feature tags?
switch (typoFlags) {
@@ -127,11 +127,10 @@
LayoutEngine::reset();
}
-OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
- fFeatureOrder(FALSE), fGSUBTable(NULL), fGDEFTable(NULL),
- fGPOSTable(NULL), fSubstitutionFilter(NULL)
+OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags)
+ : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureOrder(FALSE),
+ fGSUBTable(NULL), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
{
setScriptAndLanguageTags();
}
@@ -165,9 +164,8 @@
fLangSysTag = getLangSysTag(fLanguageCode);
}
-le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
- le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -178,8 +176,7 @@
return 0;
}
- le_int32 outCharCount = LayoutEngine::characterProcessing(chars, offset, count,
- max, rightToLeft, outChars, glyphStorage, success);
+ le_int32 outCharCount = LayoutEngine::characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
if (LE_FAILURE(success)) {
return 0;
@@ -197,16 +194,14 @@
// Input: characters, tags
// Output: glyphs, char indices
-le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
}
- if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
- offset >= max || offset + count > max) {
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
success = LE_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
@@ -218,16 +213,14 @@
}
if (fGSUBTable != NULL) {
- count = fGSUBTable->process(glyphStorage, rightToLeft,
- fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter,
- fFeatureMap, fFeatureMapCount, fFeatureOrder);
+ count = fGSUBTable->process(glyphStorage, rightToLeft, fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter,
+ fFeatureMap, fFeatureMapCount, fFeatureOrder);
}
return count;
}
-le_int32 OpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -241,9 +234,7 @@
return glyphStorage.getGlyphCount();
}
-le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage,
- LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
LEUnicode *outChars = NULL;
LEGlyphStorage fakeGlyphStorage;
@@ -253,25 +244,19 @@
return 0;
}
- if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
- offset >= max || offset + count > max) {
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
success = LE_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
- outCharCount = characterProcessing(chars, offset, count, max, rightToLeft,
- outChars, fakeGlyphStorage, success);
+ outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, fakeGlyphStorage, success);
if (outChars != NULL) {
- fakeGlyphCount = glyphProcessing(outChars, 0, outCharCount, outCharCount,
- rightToLeft, fakeGlyphStorage, success);
- // FIXME: a subclass may have allocated this, in which case
- // this delete might not work...
- LE_DELETE_ARRAY(outChars);
+ fakeGlyphCount = glyphProcessing(outChars, 0, outCharCount, outCharCount, rightToLeft, fakeGlyphStorage, success);
+ LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
//adjustGlyphs(outChars, 0, outCharCount, rightToLeft, fakeGlyphs, fakeGlyphCount);
} else {
- fakeGlyphCount = glyphProcessing(chars, offset, count, max, rightToLeft,
- fakeGlyphStorage, success);
+ fakeGlyphCount = glyphProcessing(chars, offset, count, max, rightToLeft, fakeGlyphStorage, success);
//adjustGlyphs(chars, offset, count, rightToLeft, fakeGlyphs, fakeGlyphCount);
}
@@ -281,8 +266,8 @@
}
// apply GPOS table, if any
-void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -318,8 +303,8 @@
}
#endif
- fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag,
- fGDEFTable, fFontInstance, fFeatureMap, fFeatureMapCount, fFeatureOrder);
+ fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag, fGDEFTable, fFontInstance,
+ fFeatureMap, fFeatureMapCount, fFeatureOrder);
float xAdjust = 0, yAdjust = 0;
@@ -354,4 +339,12 @@
delete adjustments;
}
+
+#if 0
+ // Don't know why this is here...
+ LE_DELETE_ARRAY(fFeatureTags);
+ fFeatureTags = NULL;
+#endif
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -23,9 +23,7 @@
*
*/
-
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -42,6 +40,8 @@
#include "GlyphDefinitionTables.h"
#include "GlyphPositioningTables.h"
+U_NAMESPACE_BEGIN
+
/**
* OpenTypeLayoutEngine implements complex text layout for OpenType fonts - that is
* fonts which have GSUB and GPOS tables associated with them. In order to do this,
@@ -87,7 +87,7 @@
* @internal
*/
OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
/**
* This constructor is used when the font requires a "canned" GSUB table which can't be known
@@ -95,11 +95,12 @@
*
* @param fontInstance - the font
* @param scriptCode - the script
- * @param languageCode - the language
+ * @param langaugeCode - the language
*
* @internal
*/
- OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+ OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -132,6 +133,20 @@
*/
static LETag getLangSysTag(le_int32 languageCode);
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
/**
@@ -254,9 +269,8 @@
*
* @internal
*/
- virtual le_int32 characterProcessing(const LEUnicode /*chars*/[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
- LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 characterProcessing(const LEUnicode /*chars*/[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
+ LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method does character to glyph mapping, and applies the GSUB table. The
@@ -287,9 +301,8 @@
*
* @internal
*/
- virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method does any processing necessary to convert "fake"
@@ -316,8 +329,7 @@
*
* @internal
*/
- virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method applies the characterProcessing, glyphProcessing and glyphPostProcessing
@@ -341,8 +353,7 @@
*
* @internal
*/
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
- le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method uses the GPOS table, if there is one, to adjust the glyph positions.
@@ -359,8 +370,7 @@
*
* @internal
*/
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count,
- le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This method frees the feature tag array so that the
@@ -372,4 +382,6 @@
virtual void reset();
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/OpenTypeTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,8 +32,15 @@
#ifndef __OPENTYPETABLES_H
#define __OPENTYPETABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
#define ANY_NUMBER 1
typedef le_uint16 Offset;
@@ -62,4 +69,5 @@
FeatureMask mask;
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,8 @@
#include "OpenTypeUtilities.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
//
// Finds the high bit by binary searching
// through the bits in n.
@@ -192,3 +194,7 @@
array[i + 1] = v;
}
}
+
+
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,10 +32,17 @@
#ifndef __OPENTYPEUTILITIES_H
#define __OPENTYPEUTILITIES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
-class OpenTypeUtilities {
+U_NAMESPACE_BEGIN
+
+class OpenTypeUtilities /* not : public UObject because all methods are static */ {
public:
static le_int8 highBit(le_int32 value);
static Offset getTagOffset(LETag tag, const TagAndOffsetRecord *records, le_int32 recordCount);
@@ -48,4 +55,5 @@
OpenTypeUtilities() {} // private - forbid instantiation
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -39,6 +39,8 @@
#include "OpenTypeUtilities.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 PairPositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
{
switch(SWAPW(subtableFormat))
@@ -82,8 +84,7 @@
const PairValueRecord *pairValueRecord = NULL;
if (pairValueCount != 0) {
- pairValueRecord = findPairValueRecord((TTGlyphID) LE_GET_GLYPH(secondGlyph),
- pairSetTable->pairValueRecordArray, pairValueCount, recordSize);
+ pairValueRecord = findPairValueRecord((TTGlyphID) LE_GET_GLYPH(secondGlyph), pairSetTable->pairValueRecordArray, pairValueCount, recordSize);
}
if (pairValueRecord == NULL) {
@@ -91,8 +92,7 @@
}
if (valueFormat1 != 0) {
- pairValueRecord->valueRecord1.adjustPosition(SWAPW(valueFormat1), (char *) this,
- tempIterator, fontInstance);
+ pairValueRecord->valueRecord1.adjustPosition(SWAPW(valueFormat1), (char *) this, tempIterator, fontInstance);
}
if (valueFormat2 != 0) {
@@ -171,3 +171,5 @@
return NULL;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __PAIRPOSITIONINGSUBTABLES_H
#define __PAIRPOSITIONINGSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "ValueRecords.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
// NOTE: ValueRecord has a variable size
struct PairValueRecord
{
@@ -96,4 +103,7 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
*
*/
@@ -35,6 +36,8 @@
#include "ScriptAndLanguage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
const LangSysTable *ScriptTable::findLanguage(LETag languageTag, le_bool exactMatch) const
{
le_uint16 count = SWAPW(langSysCount);
@@ -79,3 +82,5 @@
return scriptTable->findLanguage(languageTag, exactMatch);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __SCRIPTANDLANGUAGE_H
#define __SCRIPTANDLANGUAGE_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
typedef TagAndOffsetRecord LangSysRecord;
struct LangSysTable
@@ -65,4 +72,6 @@
const LangSysTable *findLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "ScriptAndLanguageTags.h"
#include "OpenTypeLayoutEngine.h"
+U_NAMESPACE_BEGIN
+
const LETag OpenTypeLayoutEngine::scriptTags[] = {
zyyyScriptTag, /* 'zyyy' (COMMON) */
qaaiScriptTag, /* 'qaai' (INHERITED) */
@@ -125,3 +127,5 @@
zhsLanguageTag, /* 'ZHS' (Chinese (Simplified)) */
zhtLanguageTag /* 'ZHT' (Chinese (Traditional)) */
};
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,13 @@
#include "LETypes.h"
+U_NAMESPACE_BEGIN
+
+/**
+ * \file
+ * \internal
+ */
+
const LETag zyyyScriptTag = 0x7A797979; /* 'zyyy' (COMMON) */
const LETag qaaiScriptTag = 0x71616169; /* 'qaai' (INHERITED) */
const LETag arabScriptTag = 0x61726162; /* 'arab' (ARABIC) */
@@ -126,4 +133,6 @@
const LETag zhsLanguageTag = 0x5A485320; /* 'ZHS' (Chinese (Simplified)) */
const LETag zhtLanguageTag = 0x5A485420; /* 'ZHT' (Chinese (Traditional)) */
+
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SegmentArrayProcessor)
+
SegmentArrayProcessor::SegmentArrayProcessor()
{
}
@@ -77,3 +81,5 @@
}
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __SEGMENTARRAYPROCESSOR_H
#define __SEGMENTARRAYPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "NonContextualGlyphSubst.h"
#include "NonContextualGlyphSubstProc.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class SegmentArrayProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,28 @@
virtual ~SegmentArrayProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
SegmentArrayProcessor();
protected:
const SegmentArrayLookupTable *segmentArrayLookupTable;
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SegmentSingleProcessor)
+
SegmentSingleProcessor::SegmentSingleProcessor()
{
}
@@ -71,3 +75,5 @@
}
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __SEGMENTSINGLEPROCESSOR_H
#define __SEGMENTSINGLEPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "NonContextualGlyphSubst.h"
#include "NonContextualGlyphSubstProc.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class SegmentSingleProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,28 @@
virtual ~SegmentSingleProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
SegmentSingleProcessor();
protected:
const SegmentSingleLookupTable *segmentSingleLookupTable;
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/ShapingTypeData.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ShapingTypeData.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -36,6 +36,8 @@
#include "LETypes.h"
#include "ArabicShaping.h"
+U_NAMESPACE_BEGIN
+
const le_uint8 ArabicShaping::shapingTypeTable[] = {
0x00, 0x02, 0x00, 0xAD, 0x00, 0xAD, 0x00, 0xAD, 0x00, 0x05, 0x03, 0x00, 0x03, 0x6F, 0x00, 0x05,
0x04, 0x83, 0x04, 0x86, 0x00, 0x05, 0x04, 0x88, 0x04, 0x89, 0x00, 0x05, 0x05, 0x91, 0x05, 0xB9,
@@ -104,3 +106,5 @@
0xFE, 0x20, 0xFE, 0x23, 0x00, 0x05, 0xFE, 0xFF, 0xFE, 0xFF, 0x00, 0x05, 0xFF, 0xF9, 0xFF, 0xFB,
0x00, 0x05
};
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SimpleArrayProcessor)
+
SimpleArrayProcessor::SimpleArrayProcessor()
{
}
@@ -68,3 +72,5 @@
}
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __SIMPLEARRAYPROCESSOR_H
#define __SIMPLEARRAYPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "NonContextualGlyphSubst.h"
#include "NonContextualGlyphSubstProc.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class SimpleArrayProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,28 @@
virtual ~SimpleArrayProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
SimpleArrayProcessor();
protected:
const SimpleArrayLookupTable *simpleArrayLookupTable;
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 SinglePositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
{
switch(SWAPW(subtableFormat))
@@ -84,11 +86,12 @@
le_int16 coverageIndex = (le_int16) getGlyphCoverage(glyph);
if (coverageIndex >= 0) {
- valueRecordArray[0].adjustPosition(coverageIndex, SWAPW(valueFormat), (const char *) this,
- *glyphIterator, fontInstance);
+ valueRecordArray[0].adjustPosition(coverageIndex, SWAPW(valueFormat), (const char *) this, *glyphIterator, fontInstance);
return 1;
}
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __SINGLEPOSITIONINGSUBTABLES_H
#define __SINGLEPOSITIONINGSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "ValueRecords.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct SinglePositioningSubtable : GlyphPositioningSubtable
{
le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -61,4 +68,7 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -37,6 +37,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
le_uint32 SingleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
{
switch(SWAPW(subtableFormat))
@@ -98,3 +100,5 @@
return 0;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __SINGLESUBSTITUTIONSUBTABLES_H
#define __SINGLESUBSTITUTIONSUBTABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "OpenTypeTables.h"
#include "GlyphSubstitutionTables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
struct SingleSubstitutionSubtable : GlyphSubstitutionSubtable
{
le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
@@ -58,4 +65,7 @@
le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
};
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/SingleTableProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleTableProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SingleTableProcessor)
+
SingleTableProcessor::SingleTableProcessor()
{
}
@@ -68,3 +72,5 @@
}
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SingleTableProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleTableProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __SINGLETABLEPROCESSOR_H
#define __SINGLETABLEPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "NonContextualGlyphSubst.h"
#include "NonContextualGlyphSubstProc.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class SingleTableProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,27 @@
virtual ~SingleTableProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
SingleTableProcessor();
protected:
const SingleTableLookupTable *singleTableLookupTable;
+
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,8 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
StateTableProcessor::StateTableProcessor()
{
}
@@ -96,3 +98,5 @@
endStateTable();
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/StateTableProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/StateTableProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,18 @@
#ifndef __STATETABLEPROCESSOR_H
#define __STATETABLEPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "MorphStateTables.h"
#include "SubtableProcessor.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class StateTableProcessor : public SubtableProcessor
@@ -72,4 +79,5 @@
StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
--- a/jdk/src/share/native/sun/font/layout/StateTables.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/StateTables.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,9 +32,16 @@
#ifndef __STATETABLES_H
#define __STATETABLES_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LayoutTables.h"
+U_NAMESPACE_BEGIN
+
struct StateTableHeader
{
le_int16 stateSize;
@@ -78,4 +85,6 @@
le_int16 flags;
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/SubstitutionLookups.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubstitutionLookups.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -39,6 +39,8 @@
#include "CoverageTables.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
/*
NOTE: This could be optimized somewhat by keeping track
of the previous sequenceIndex in the loop and doing next()
@@ -65,3 +67,5 @@
lookupProcessor->applySingleLookup(lookupListIndex, &tempIterator, fontInstance);
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SubstitutionLookups.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubstitutionLookups.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,6 +32,11 @@
#ifndef __SUBSTITUTIONLOOKUPS_H
#define __SUBSTITUTIONLOOKUPS_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
#include "GlyphIterator.h"
#include "LookupProcessor.h"
+U_NAMESPACE_BEGIN
+
struct SubstitutionLookupRecord
{
le_uint16 sequenceIndex;
@@ -56,4 +63,6 @@
le_int32 position);
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/SubtableProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubtableProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -34,6 +34,8 @@
#include "SubtableProcessor.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
SubtableProcessor::SubtableProcessor()
{
}
@@ -50,3 +52,5 @@
SubtableProcessor::~SubtableProcessor()
{
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SubtableProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubtableProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,13 +32,19 @@
#ifndef __SUBTABLEPROCESSOR_H
#define __SUBTABLEPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
-class SubtableProcessor
-{
+class SubtableProcessor : public UMemory {
public:
virtual void process(LEGlyphStorage &glyphStorage) = 0;
virtual ~SubtableProcessor();
@@ -60,4 +66,6 @@
SubtableProcessor &operator=(const SubtableProcessor &other); // forbid copying of this class
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,8 +38,11 @@
#include "ThaiShaping.h"
-ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance,
- le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ThaiLayoutEngine)
+
+ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
{
fErrorChar = 0x25CC;
@@ -73,16 +76,13 @@
// Output: glyphs, char indices
// Returns: the glyph count
// NOTE: this assumes that ThaiShaping::compose will allocate the outChars array...
-le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
}
- if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
- offset >= max || offset + count > max) {
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
success = LE_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
@@ -107,8 +107,7 @@
return 0;
}
- glyphCount = ThaiShaping::compose(chars, offset, count, fGlyphSet, fErrorChar,
- outChars, glyphStorage);
+ glyphCount = ThaiShaping::compose(chars, offset, count, fGlyphSet, fErrorChar, outChars, glyphStorage);
mapCharsToGlyphs(outChars, 0, glyphCount, FALSE, FALSE, glyphStorage, success);
LE_DELETE_ARRAY(outChars);
@@ -116,3 +115,5 @@
glyphStorage.adoptGlyphCount(glyphCount);
return glyphCount;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.h Mon Oct 05 18:22:00 2009 -0700
@@ -39,6 +39,8 @@
#include "ThaiShaping.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
/**
@@ -66,8 +68,7 @@
*
* @internal
*/
- ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
- le_int32 languageCode, le_int32 typoFlags);
+ ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
/**
* The destructor, virtual for correct polymorphic invocation.
@@ -76,6 +77,20 @@
*/
virtual ~ThaiLayoutEngine();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
protected:
/**
* A small integer indicating which Thai encoding
@@ -109,10 +124,8 @@
* @param offset - the index of the first character to process
* @param count - the number of characters to process
* @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the text is in a
- * right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and
- * char index arrays will be set.
+ * @param rightToLeft - <code>TRUE</code> if the text is in a right to left directional run
+ * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
*
* Output parameters:
* @param success - set to an error code if the operation fails
@@ -123,10 +136,11 @@
*
* @internal
*/
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset,
- le_int32 count, le_int32 max, le_bool rightToLeft,
+ virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
LEGlyphStorage &glyphStorage, LEErrorCode &success);
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/ThaiShaping.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiShaping.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -35,6 +35,8 @@
#include "LEGlyphStorage.h"
#include "ThaiShaping.h"
+U_NAMESPACE_BEGIN
+
enum {
CH_SPACE = 0x0020,
CH_YAMAKKAN = 0x0E4E,
@@ -248,9 +250,8 @@
return transition.nextState;
}
-le_uint8 ThaiShaping::getNextState(LEUnicode ch, le_uint8 prevState, le_int32 inputIndex,
- le_uint8 glyphSet, LEUnicode errorChar,
- le_uint8 &charClass, LEUnicode *output, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
+le_uint8 ThaiShaping::getNextState(LEUnicode ch, le_uint8 prevState, le_int32 inputIndex, le_uint8 glyphSet, LEUnicode errorChar,
+ le_uint8 &charClass, LEUnicode *output, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
{
StateTransition transition;
@@ -327,3 +328,5 @@
return outputIndex;
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ThaiShaping.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiShaping.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,13 +32,20 @@
#ifndef __THAISHAPING_H
#define __THAISHAPING_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEGlyphFilter.h"
#include "OpenTypeTables.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
-class ThaiShaping {
+class ThaiShaping /* not : public UObject because all methods are static */ {
public:
enum {
@@ -120,4 +127,7 @@
return thaiStateTable[state][currClass];
}
+U_NAMESPACE_END
#endif
+
+
--- a/jdk/src/share/native/sun/font/layout/ThaiStateTables.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiStateTables.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
/*
*
+ *
* (C) Copyright IBM Corp. 1999-2003 - All Rights Reserved
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
@@ -35,6 +36,8 @@
#include "LETypes.h"
#include "ThaiShaping.h"
+U_NAMESPACE_BEGIN
+
const le_uint8 ThaiShaping::classTable[] = {
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
// -------------------------------------------------------------------------------
@@ -105,3 +108,5 @@
/*50*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {51, tC}, { 0, tR}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
/*51*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}}
};
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -38,6 +38,10 @@
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TrimmedArrayProcessor)
+
TrimmedArrayProcessor::TrimmedArrayProcessor()
{
}
@@ -72,3 +76,5 @@
}
}
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,12 +32,19 @@
#ifndef __TRIMMEDARRAYPROCESSOR_H
#define __TRIMMEDARRAYPROCESSOR_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "MorphTables.h"
#include "SubtableProcessor.h"
#include "NonContextualGlyphSubst.h"
#include "NonContextualGlyphSubstProc.h"
+U_NAMESPACE_BEGIN
+
class LEGlyphStorage;
class TrimmedArrayProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,6 +56,20 @@
virtual ~TrimmedArrayProcessor();
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
private:
TrimmedArrayProcessor();
@@ -56,6 +77,9 @@
TTGlyphID firstGlyph;
TTGlyphID lastGlyph;
const TrimmedArrayLookupTable *trimmedArrayLookupTable;
+
};
+U_NAMESPACE_END
#endif
+
--- a/jdk/src/share/native/sun/font/layout/ValueRecords.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ValueRecords.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -37,6 +37,8 @@
#include "GlyphIterator.h"
#include "LESwaps.h"
+U_NAMESPACE_BEGIN
+
#define Nibble(value, nibble) ((value >> (nibble * 4)) & 0xF)
#define NibbleBits(value, nibble) (bitsInNibble[Nibble(value, nibble)])
@@ -161,8 +163,8 @@
xPlacementAdjustment, yPlacementAdjustment, xAdvanceAdjustment, yAdvanceAdjustment);
}
-void ValueRecord::adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base,
- GlyphIterator &glyphIterator, const LEFontInstance *fontInstance) const
+void ValueRecord::adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator,
+ const LEFontInstance *fontInstance) const
{
float xPlacementAdjustment = 0;
float yPlacementAdjustment = 0;
@@ -323,3 +325,5 @@
return getFieldCount(valueFormat & beforeMasks[field]);
}
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ValueRecords.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ValueRecords.h Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,18 @@
#ifndef __VALUERECORDS_H
#define __VALUERECORDS_H
+/**
+ * \file
+ * \internal
+ */
+
#include "LETypes.h"
#include "LEFontInstance.h"
#include "OpenTypeTables.h"
#include "GlyphIterator.h"
+U_NAMESPACE_BEGIN
+
typedef le_uint16 ValueFormat;
typedef le_int16 ValueRecordField;
@@ -84,5 +91,7 @@
vfbAnyDevice = vfbXPlaDevice + vfbYPlaDevice + vfbXAdvDevice + vfbYAdvDevice
};
+U_NAMESPACE_END
+#endif
-#endif
+
--- a/jdk/src/share/native/sun/font/sunFont.c Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/sunFont.c Mon Oct 05 18:22:00 2009 -0700
@@ -71,41 +71,14 @@
void initLCDGammaTables();
-/*
- * Class: sun_font_FontManager
- * Method: getPlatformFontVar
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL
-Java_sun_font_FontManager_getPlatformFontVar(JNIEnv *env, jclass cl) {
- char *c = getenv("JAVA2D_USEPLATFORMFONT");
- if (c) {
- return JNI_TRUE;
- } else {
- return JNI_FALSE;
- }
-}
-
/* placeholder for extern variable */
FontManagerNativeIDs sunFontIDs;
JNIEXPORT void JNICALL
-Java_sun_font_FontManager_initIDs
+Java_sun_font_SunFontManager_initIDs
(JNIEnv *env, jclass cls) {
- jclass tmpClass = (*env)->FindClass(env, "java/awt/Font");
-
- sunFontIDs.getFont2DMID =
- (*env)->GetMethodID(env, tmpClass, "getFont2D",
- "()Lsun/font/Font2D;");
- sunFontIDs.font2DHandle =
- (*env)->GetFieldID(env, tmpClass,
- "font2DHandle", "Lsun/font/Font2DHandle;");
-
- sunFontIDs.createdFont =
- (*env)->GetFieldID(env, tmpClass, "createdFont", "Z");
-
- tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
+ jclass tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
sunFontIDs.ttReadBlockMID =
(*env)->GetMethodID(env, tmpClass, "readBlock",
"(Ljava/nio/ByteBuffer;II)I");
@@ -207,40 +180,6 @@
return sunFontIDs;
}
-JNIEXPORT jobject JNICALL
-Java_sun_font_FontManager_getFont2D(
- JNIEnv *env,
- jclass clsFM,
- jobject javaFont) {
-
- return (*env)->CallObjectMethod(env, javaFont, sunFontIDs.getFont2DMID);
-}
-
-JNIEXPORT void JNICALL
-Java_sun_font_FontManager_setFont2D(
- JNIEnv *env,
- jclass clsFM,
- jobject javaFont,
- jobject fontHandle) {
- (*env)->SetObjectField(env, javaFont, sunFontIDs.font2DHandle, fontHandle);
-}
-
-JNIEXPORT void JNICALL
-Java_sun_font_FontManager_setCreatedFont(
- JNIEnv *env,
- jclass clsFM,
- jobject javaFont) {
- (*env)->SetBooleanField(env, javaFont, sunFontIDs.createdFont, JNI_TRUE);
-}
-
-JNIEXPORT jboolean JNICALL
-Java_sun_font_FontManager_isCreatedFont(
- JNIEnv *env,
- jclass clsFM,
- jobject javaFont) {
- return (*env)->GetBooleanField(env, javaFont, sunFontIDs.createdFont);
-}
-
/*
* Class: sun_font_StrikeCache
* Method: freeIntPointer
--- a/jdk/src/share/native/sun/font/sunfontids.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/share/native/sun/font/sunfontids.h Mon Oct 05 18:22:00 2009 -0700
@@ -34,11 +34,6 @@
typedef struct FontManagerNativeIDs {
- /* java/awt/Font methods & fields */
- jmethodID getFont2DMID;
- jfieldID font2DHandle;
- jfieldID createdFont;
-
/* sun/font/Font2D methods */
jmethodID getMapperMID;
jmethodID getTableBytesMID;
--- a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -31,8 +31,6 @@
import sun.awt.*;
import java.awt.image.*;
import java.text.BreakIterator;
-import java.util.logging.Logger;
-import java.util.logging.Level;
import java.util.concurrent.ArrayBlockingQueue;
import java.security.AccessController;
import java.security.PrivilegedAction;
--- a/jdk/src/solaris/classes/sun/awt/X11/ListHelper.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/ListHelper.java Mon Oct 05 18:22:00 2009 -0700
@@ -33,7 +33,7 @@
import java.util.ArrayList;
import java.util.Iterator;
import sun.awt.motif.X11FontMetrics;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
// FIXME: implement multi-select
/*
@@ -43,7 +43,7 @@
* posting of Item or ActionEvents
*/
public class ListHelper implements XScrollbarClient {
- private static final Logger log = Logger.getLogger("sun.awt.X11.ListHelper");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.ListHelper");
private final int FOCUS_INSET = 1;
@@ -263,7 +263,7 @@
}
public int y2index(int y) {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("y=" + y +", firstIdx=" + firstDisplayedIndex() +", itemHeight=" + getItemHeight()
+ ",item_margin=" + ITEM_MARGIN);
}
--- a/jdk/src/solaris/classes/sun/awt/X11/UnsafeXDisposerRecord.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/UnsafeXDisposerRecord.java Mon Oct 05 18:22:00 2009 -0700
@@ -25,10 +25,10 @@
package sun.awt.X11;
import sun.misc.Unsafe;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
class UnsafeXDisposerRecord implements sun.java2d.DisposerRecord {
- private static final Logger log = Logger.getLogger("sun.awt.X11.UnsafeXDisposerRecord");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.UnsafeXDisposerRecord");
private static Unsafe unsafe = XlibWrapper.unsafe;
final long[] unsafe_ptrs, x_ptrs;
final String name;
@@ -59,11 +59,11 @@
XToolkit.awtLock();
try {
if (!disposed) {
- if (XlibWrapper.isBuildInternal && "Java2D Disposer".equals(Thread.currentThread().getName()) && log.isLoggable(Level.WARNING)) {
+ if (XlibWrapper.isBuildInternal && "Java2D Disposer".equals(Thread.currentThread().getName()) && log.isLoggable(PlatformLogger.WARNING)) {
if (place != null) {
- log.log(Level.WARNING, name + " object was not disposed before finalization!", place);
+ log.warning(name + " object was not disposed before finalization!", place);
} else {
- log.log(Level.WARNING, name + " object was not disposed before finalization!");
+ log.warning(name + " object was not disposed before finalization!");
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java Mon Oct 05 18:22:00 2009 -0700
@@ -35,15 +35,14 @@
import java.util.*;
import java.awt.*;
import sun.awt.XSettings;
-import java.util.logging.*;
-
+import sun.util.logging.PlatformLogger;
class XAWTXSettings extends XSettings implements XMSelectionListener {
private final XAtom xSettingsPropertyAtom = XAtom.get("_XSETTINGS_SETTINGS");
- private static Logger log = Logger.getLogger("sun.awt.X11.XAWTXSettings");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XAWTXSettings");
/* The maximal length of the property data. */
public static final long MAX_LENGTH = 1000000;
@@ -56,7 +55,7 @@
}
void initXSettings() {
- if (log.isLoggable(Level.FINE)) log.fine("Initializing XAWT XSettings");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Initializing XAWT XSettings");
settings = new XMSelection("_XSETTINGS");
settings.addSelectionListener(this);
initPerScreenXSettings();
@@ -67,12 +66,12 @@
}
public void ownerDeath(int screen, XMSelection sel, long deadOwner) {
- if (log.isLoggable(Level.FINE)) log.fine("Owner " + deadOwner + " died for selection " + sel + " screen "+ screen);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Owner " + deadOwner + " died for selection " + sel + " screen "+ screen);
}
public void ownerChanged(int screen, XMSelection sel, long newOwner, long data, long timestamp) {
- if (log.isLoggable(Level.FINE)) log.fine("New Owner "+ newOwner + " for selection = " + sel + " screen " +screen );
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("New Owner "+ newOwner + " for selection = " + sel + " screen " +screen );
}
public void selectionChanged(int screen, XMSelection sel, long owner , XPropertyEvent event) {
@@ -81,7 +80,7 @@
}
void initPerScreenXSettings() {
- if (log.isLoggable(Level.FINE)) log.fine("Updating Per XSettings changes");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Updating Per XSettings changes");
/*
* As toolkit cannot yet cope with per-screen desktop properties,
@@ -115,7 +114,7 @@
}
private Map getUpdatedSettings(final long owner) {
- if (log.isLoggable(Level.FINE)) log.fine("owner =" + owner);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("owner =" + owner);
if (0 == owner) {
return null;
}
@@ -129,13 +128,13 @@
int status = getter.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
if (status != XConstants.Success || getter.getData() == 0) {
- if (log.isLoggable(Level.FINE)) log.fine("OH OH : getter failed status = " + status );
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("OH OH : getter failed status = " + status );
settings = null;
}
long ptr = getter.getData();
- if (log.isLoggable(Level.FINE)) log.fine("noItems = " + getter.getNumberOfItems());
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("noItems = " + getter.getNumberOfItems());
byte array[] = Native.toBytes(ptr,getter.getNumberOfItems());
if (array != null) {
settings = update(array);
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -33,7 +33,7 @@
import java.util.ArrayList;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.java2d.SurfaceData;
import sun.java2d.SunGraphics2D;
@@ -49,7 +49,7 @@
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XBaseMenuWindow");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XBaseMenuWindow");
/*
* Colors are calculated using MotifColorUtilities class
@@ -330,7 +330,7 @@
items.add(mp);
}
} else {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("WARNING: Attempt to add menu item without a peer");
}
}
@@ -351,7 +351,7 @@
if (index < items.size()) {
items.remove(index);
} else {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("WARNING: Attempt to remove non-existing menu item, index : " + index + ", item count : " + items.size());
}
}
@@ -386,7 +386,7 @@
XMenuPeer showingSubmenu = getShowingSubmenu();
int newSelectedIndex = (item != null) ? items.indexOf(item) : -1;
if (this.selectedIndex != newSelectedIndex) {
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("Selected index changed, was : " + this.selectedIndex + ", new : " + newSelectedIndex);
}
this.selectedIndex = newSelectedIndex;
@@ -426,7 +426,7 @@
try {
synchronized(getMenuTreeLock()) {
if (showingSubmenu != submenuToShow) {
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finest("Changing showing submenu");
}
if (showingSubmenu != null) {
@@ -1122,7 +1122,7 @@
* that grabs input focus
*/
void doHandleJavaKeyEvent(KeyEvent event) {
- if (log.isLoggable(Level.FINER)) log.finer(event.toString());
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer(event.toString());
if (event.getID() != KeyEvent.KEY_PRESSED) {
return;
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,15 +27,15 @@
import java.awt.*;
import sun.awt.*;
-import java.util.logging.*;
import java.util.*;
+import sun.util.logging.PlatformLogger;
public class XBaseWindow {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XBaseWindow");
- private static final Logger insLog = Logger.getLogger("sun.awt.X11.insets.XBaseWindow");
- private static final Logger eventLog = Logger.getLogger("sun.awt.X11.event.XBaseWindow");
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XBaseWindow");
- private static final Logger grabLog = Logger.getLogger("sun.awt.X11.grab.XBaseWindow");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XBaseWindow");
+ private static final PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XBaseWindow");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("sun.awt.X11.event.XBaseWindow");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XBaseWindow");
+ private static final PlatformLogger grabLog = PlatformLogger.getLogger("sun.awt.X11.grab.XBaseWindow");
public static final String
PARENT_WINDOW = "parent window", // parent window, Long
@@ -160,7 +160,7 @@
* with class-specific values and perform post-initialization actions.
*/
void postInit(XCreateWindowParams params) {
- if (log.isLoggable(Level.FINE)) log.fine("WM name is " + getWMName());
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("WM name is " + getWMName());
updateWMName();
// Set WM_CLIENT_LEADER property
@@ -198,7 +198,7 @@
awtUnlock();
throw re;
} catch (Throwable t) {
- log.log(Level.WARNING, "Exception during peer initialization", t);
+ log.warning("Exception during peer initialization", t);
awtLock();
initialising = InitialiseState.FAILED_INITIALISATION;
awtLockNotifyAll();
@@ -360,7 +360,7 @@
value_mask |= XConstants.CWBitGravity;
}
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("Creating window for " + this + " with the following attributes: \n" + params);
}
window = XlibWrapper.XCreateWindow(XToolkit.getDisplay(),
@@ -480,7 +480,7 @@
}
public void setSizeHints(long flags, int x, int y, int width, int height) {
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(flags));
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(flags));
XToolkit.awtLock();
try {
XSizeHints hints = getHints();
@@ -541,7 +541,7 @@
flags |= XUtilConstants.PWinGravity;
hints.set_flags(flags);
hints.set_win_gravity((int)XConstants.NorthWestGravity);
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, resulted flags " + XlibWrapper.hintsToString(flags) +
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, resulted flags " + XlibWrapper.hintsToString(flags) +
", values " + hints);
XlibWrapper.XSetWMNormalHints(XToolkit.getDisplay(), getWindow(), hints.pData);
} finally {
@@ -593,7 +593,7 @@
public void xRequestFocus(long time) {
XToolkit.awtLock();
try {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()) + " with time " + time);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()) + " with time " + time);
XlibWrapper.XSetInputFocus2(XToolkit.getDisplay(), getWindow(), time);
} finally {
XToolkit.awtUnlock();
@@ -602,7 +602,7 @@
public void xRequestFocus() {
XToolkit.awtLock();
try {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()));
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()));
XlibWrapper.XSetInputFocus(XToolkit.getDisplay(), getWindow());
} finally {
XToolkit.awtUnlock();
@@ -619,7 +619,7 @@
}
public void xSetVisible(boolean visible) {
- if (log.isLoggable(Level.FINE)) log.fine("Setting visible on " + this + " to " + visible);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting visible on " + this + " to " + visible);
XToolkit.awtLock();
try {
this.visible = visible;
@@ -824,7 +824,7 @@
* The active grab overrides activated automatic grab.
*/
public boolean grabInput() {
- grabLog.log(Level.FINE, "Grab input on {0}", new Object[] {this});
+ grabLog.fine("Grab input on {0}", this);
XToolkit.awtLock();
try {
@@ -887,7 +887,7 @@
XToolkit.awtLock();
try {
XBaseWindow grabWindow = XAwtState.getGrabWindow();
- grabLog.log(Level.FINE, "UnGrab input on {0}", new Object[] {grabWindow});
+ grabLog.fine("UnGrab input on {0}", grabWindow);
if (grabWindow != null) {
grabWindow.ungrabInputImpl();
if (!XToolkit.getSunAwtDisableGrab()) {
@@ -929,7 +929,7 @@
mapped = false;
}
public void handleReparentNotifyEvent(XEvent xev) {
- if (eventLog.isLoggable(Level.FINER)) {
+ if (eventLog.isLoggable(PlatformLogger.FINER)) {
XReparentEvent msg = xev.get_xreparent();
eventLog.finer(msg.toString());
}
@@ -939,8 +939,8 @@
if (XPropertyCache.isCachingSupported()) {
XPropertyCache.clearCache(window, XAtom.get(msg.get_atom()));
}
- if (eventLog.isLoggable(Level.FINER)) {
- eventLog.log(Level.FINER, "{0}", new Object[] {msg});
+ if (eventLog.isLoggable(PlatformLogger.FINER)) {
+ eventLog.finer("{0}", msg);
}
}
@@ -969,7 +969,7 @@
}
public void handleClientMessage(XEvent xev) {
- if (eventLog.isLoggable(Level.FINER)) {
+ if (eventLog.isLoggable(PlatformLogger.FINER)) {
XClientMessageEvent msg = xev.get_xclient();
eventLog.finer(msg.toString());
}
@@ -1021,8 +1021,7 @@
}
public void handleConfigureNotifyEvent(XEvent xev) {
XConfigureEvent xe = xev.get_xconfigure();
- insLog.log(Level.FINER, "Configure, {0}",
- new Object[] {xe});
+ insLog.finer("Configure, {0}", xe);
x = xe.get_x();
y = xe.get_y();
width = xe.get_width();
@@ -1073,7 +1072,7 @@
}
public void dispatchEvent(XEvent xev) {
- if (eventLog.isLoggable(Level.FINEST)) eventLog.finest(xev.toString());
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) eventLog.finest(xev.toString());
int type = xev.get_type();
if (isDisposed()) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,8 +29,6 @@
import java.awt.peer.*;
import java.awt.event.*;
-import java.util.logging.*;
-
import java.lang.reflect.Field;
import sun.awt.SunToolkit;
@@ -42,8 +40,6 @@
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XCheckboxMenuItemPeer");
-
/*
* CheckboxMenuItem's fields
*/
--- a/jdk/src/solaris/classes/sun/awt/X11/XCheckboxPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XCheckboxPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -32,11 +32,11 @@
import javax.swing.plaf.basic.BasicGraphicsUtils;
import java.awt.geom.AffineTransform;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
class XCheckboxPeer extends XComponentPeer implements CheckboxPeer {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XCheckboxPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XCheckboxPeer");
private static final Insets focusInsets = new Insets(0,0,0,0);
private static final Insets borderInsets = new Insets(2,2,2,2);
@@ -172,7 +172,7 @@
Checkbox cb = (Checkbox) e.getSource();
if (cb.contains(e.getX(), e.getY())) {
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("mousePressed() on " + target.getName() + " : armed = " + armed + ", pressed = " + pressed
+ ", selected = " + selected + ", enabled = " + isEnabled());
}
@@ -190,7 +190,7 @@
}
public void mouseReleased(MouseEvent e) {
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("mouseReleased() on " + target.getName() + ": armed = " + armed + ", pressed = " + pressed
+ ", selected = " + selected + ", enabled = " + isEnabled());
}
@@ -215,7 +215,7 @@
}
public void mouseEntered(MouseEvent e) {
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("mouseEntered() on " + target.getName() + ": armed = " + armed + ", pressed = " + pressed
+ ", selected = " + selected + ", enabled = " + isEnabled());
}
@@ -226,7 +226,7 @@
}
public void mouseExited(MouseEvent e) {
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("mouseExited() on " + target.getName() + ": armed = " + armed + ", pressed = " + pressed
+ ", selected = " + selected + ", enabled = " + isEnabled());
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XChoicePeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XChoicePeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -28,7 +28,7 @@
import java.awt.*;
import java.awt.peer.*;
import java.awt.event.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
// FIXME: tab traversal should be disabled when mouse is captured (4816336)
@@ -43,7 +43,7 @@
// TODO: make painting more efficient (i.e. when down arrow is pressed, only two items should need to be repainted.
public class XChoicePeer extends XComponentPeer implements ChoicePeer, ToplevelStateListener {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XChoicePeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XChoicePeer");
private static final int MAX_UNFURLED_ITEMS = 10; // Maximum number of
// items to be displayed
@@ -892,7 +892,7 @@
if (transX > 0 && transX < width &&
transY > 0 && transY < height) {
int newIdx = helper.y2index(transY);
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("transX=" + transX + ", transY=" + transY
+ ",width=" + width + ", height=" + height
+ ", newIdx=" + newIdx + " on " + target);
--- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -66,7 +66,8 @@
import java.util.HashSet;
import java.util.Set;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
import sun.awt.*;
import sun.awt.event.IgnorePaintEvent;
import sun.awt.image.SunVolatileImage;
@@ -77,12 +78,12 @@
public class XComponentPeer extends XWindow implements ComponentPeer, DropTargetPeer,
BackBufferCapsProvider
{
- private static final Logger log = Logger.getLogger("sun.awt.X11.XComponentPeer");
- private static final Logger buffersLog = Logger.getLogger("sun.awt.X11.XComponentPeer.multibuffer");
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XComponentPeer");
- private static final Logger fontLog = Logger.getLogger("sun.awt.X11.font.XComponentPeer");
- private static final Logger enableLog = Logger.getLogger("sun.awt.X11.enable.XComponentPeer");
- private static final Logger shapeLog = Logger.getLogger("sun.awt.X11.shape.XComponentPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XComponentPeer");
+ private static final PlatformLogger buffersLog = PlatformLogger.getLogger("sun.awt.X11.XComponentPeer.multibuffer");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XComponentPeer");
+ private static final PlatformLogger fontLog = PlatformLogger.getLogger("sun.awt.X11.font.XComponentPeer");
+ private static final PlatformLogger enableLog = PlatformLogger.getLogger("sun.awt.X11.enable.XComponentPeer");
+ private static final PlatformLogger shapeLog = PlatformLogger.getLogger("sun.awt.X11.shape.XComponentPeer");
boolean paintPending = false;
boolean isLayouting = false;
@@ -159,7 +160,7 @@
break;
}
}
- enableLog.log(Level.FINE, "Initial enable state: {0}", new Object[] {Boolean.valueOf(enabled)});
+ enableLog.fine("Initial enable state: {0}", Boolean.valueOf(enabled));
if (target.isVisible()) {
setVisible(true);
@@ -253,7 +254,7 @@
* Called when component receives focus
*/
public void focusGained(FocusEvent e) {
- focusLog.log(Level.FINE, "{0}", new Object[] {e});
+ focusLog.fine("{0}", e);
bHasFocus = true;
}
@@ -261,7 +262,7 @@
* Called when component loses focus
*/
public void focusLost(FocusEvent e) {
- focusLog.log(Level.FINE, "{0}", new Object[] {e});
+ focusLog.fine("{0}", e);
bHasFocus = false;
}
@@ -333,7 +334,7 @@
case XKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
// Currently we just generate focus events like we deal with lightweight instead of calling
// XSetInputFocus on native window
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Proceeding with request to " +
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Proceeding with request to " +
lightweightChild + " in " + target);
/**
* The problems with requests in non-focused window arise because shouldNativelyFocusHeavyweight
@@ -358,7 +359,7 @@
*/
boolean res = wpeer.requestWindowFocus(null);
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Requested window focus: " + res);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Requested window focus: " + res);
// If parent window can be made focused and has been made focused(synchronously)
// then we can proceed with children, otherwise we retreat.
if (!(res && parentWindow.isFocused())) {
@@ -378,13 +379,13 @@
}
private boolean rejectFocusRequestHelper(String logMsg) {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer(logMsg);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(logMsg);
XKeyboardFocusManagerPeer.removeLastFocusRequest(target);
return false;
}
void handleJavaFocusEvent(AWTEvent e) {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer(e.toString());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(e.toString());
if (e.getID() == FocusEvent.FOCUS_GAINED) {
focusGained((FocusEvent)e);
} else {
@@ -414,7 +415,7 @@
* @see java.awt.peer.ComponentPeer
*/
public void setEnabled(boolean value) {
- enableLog.log(Level.FINE, "{0}ing {1}", new Object[] {(value?"Enabl":"Disabl"), this});
+ enableLog.fine("{0}ing {1}", (value?"Enabl":"Disabl"), this);
boolean repaintNeeded = (enabled != value);
enabled = value;
if (target instanceof Container) {
@@ -690,7 +691,7 @@
}
public void setBackground(Color c) {
- if (log.isLoggable(Level.FINE)) log.fine("Set background to " + c);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Set background to " + c);
synchronized (getStateLock()) {
background = c;
}
@@ -699,7 +700,7 @@
}
public void setForeground(Color c) {
- if (log.isLoggable(Level.FINE)) log.fine("Set foreground to " + c);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Set foreground to " + c);
synchronized (getStateLock()) {
foreground = c;
}
@@ -718,7 +719,7 @@
* @since JDK1.0
*/
public FontMetrics getFontMetrics(Font font) {
- if (fontLog.isLoggable(Level.FINE)) fontLog.fine("Getting font metrics for " + font);
+ if (fontLog.isLoggable(PlatformLogger.FINE)) fontLog.fine("Getting font metrics for " + font);
return sun.font.FontDesignMetrics.getMetrics(font);
}
@@ -1188,7 +1189,7 @@
public void createBuffers(int numBuffers, BufferCapabilities caps)
throws AWTException
{
- if (buffersLog.isLoggable(Level.FINE)) {
+ if (buffersLog.isLoggable(PlatformLogger.FINE)) {
buffersLog.fine("createBuffers(" + numBuffers + ", " + caps + ")");
}
// set the caps first, they're used when creating the bb
@@ -1206,7 +1207,7 @@
public void flip(int x1, int y1, int x2, int y2,
BufferCapabilities.FlipContents flipAction)
{
- if (buffersLog.isLoggable(Level.FINE)) {
+ if (buffersLog.isLoggable(PlatformLogger.FINE)) {
buffersLog.fine("flip(" + flipAction + ")");
}
if (backBuffer == 0) {
@@ -1217,7 +1218,7 @@
}
public Image getBackBuffer() {
- if (buffersLog.isLoggable(Level.FINE)) {
+ if (buffersLog.isLoggable(PlatformLogger.FINE)) {
buffersLog.fine("getBackBuffer()");
}
if (backBuffer == 0) {
@@ -1227,7 +1228,7 @@
}
public void destroyBuffers() {
- if (buffersLog.isLoggable(Level.FINE)) {
+ if (buffersLog.isLoggable(PlatformLogger.FINE)) {
buffersLog.fine("destroyBuffers()");
}
graphicsConfig.destroyBackBuffer(backBuffer);
@@ -1262,7 +1263,7 @@
* ButtonPress, ButtonRelease, KeyPress, KeyRelease, EnterNotify, LeaveNotify, MotionNotify
*/
protected boolean isEventDisabled(XEvent e) {
- enableLog.log(Level.FINEST, "Component is {1}, checking for disabled event {0}", new Object[] {e, (isEnabled()?"enabled":"disable")});
+ enableLog.finest("Component is {1}, checking for disabled event {0}", e, (isEnabled()?"enabled":"disable"));
if (!isEnabled()) {
switch (e.get_type()) {
case XConstants.ButtonPress:
@@ -1272,7 +1273,7 @@
case XConstants.EnterNotify:
case XConstants.LeaveNotify:
case XConstants.MotionNotify:
- enableLog.log(Level.FINER, "Event {0} is disable", new Object[] {e});
+ enableLog.finer("Event {0} is disable", e);
return true;
}
}
@@ -1393,7 +1394,7 @@
*/
public void applyShape(Region shape) {
if (XlibUtil.isShapingSupported()) {
- if (shapeLog.isLoggable(Level.FINER)) {
+ if (shapeLog.isLoggable(PlatformLogger.FINER)) {
shapeLog.finer(
"*** INFO: Setting shape: PEER: " + this
+ "; WINDOW: " + getWindow()
@@ -1423,7 +1424,7 @@
XToolkit.awtUnlock();
}
} else {
- if (shapeLog.isLoggable(Level.FINER)) {
+ if (shapeLog.isLoggable(PlatformLogger.FINER)) {
shapeLog.finer("*** WARNING: Shaping is NOT supported!");
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,8 +30,7 @@
import java.awt.event.ComponentEvent;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.ComponentAccessor;
@@ -44,7 +43,7 @@
* decorated window. So coordinates in it would be the same as java coordinates.
*/
public final class XContentWindow extends XWindow {
- private static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XContentWindow");
+ private static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XContentWindow");
static XContentWindow createContent(XDecoratedPeer parentFrame) {
final WindowDimensions dims = parentFrame.getDimensions();
@@ -116,8 +115,8 @@
if (in != null) {
newBounds.setLocation(-in.left, -in.top);
}
- if (insLog.isLoggable(Level.FINE)) insLog.log(Level.FINE, "Setting content bounds {0}, old bounds {1}",
- new Object[] {newBounds, getBounds()});
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting content bounds {0}, old bounds {1}",
+ newBounds, getBounds());
// Fix for 5023533:
// Change in the size of the content window means, well, change of the size
// Change in the location of the content window means change in insets
--- a/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,17 +30,16 @@
import java.awt.event.InvocationEvent;
import java.awt.event.WindowEvent;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.ComponentAccessor;
import sun.awt.SunToolkit;
abstract class XDecoratedPeer extends XWindowPeer {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XDecoratedPeer");
- private static final Logger insLog = Logger.getLogger("sun.awt.X11.insets.XDecoratedPeer");
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XDecoratedPeer");
- private static final Logger iconLog = Logger.getLogger("sun.awt.X11.icon.XDecoratedPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XDecoratedPeer");
+ private static final PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XDecoratedPeer");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XDecoratedPeer");
+ private static final PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XDecoratedPeer");
// Set to true when we get the first ConfigureNotify after being
// reparented - indicates that WM has adopted the top-level.
@@ -79,7 +78,7 @@
Rectangle bounds = (Rectangle)params.get(BOUNDS);
dimensions = new WindowDimensions(bounds, getRealInsets(), false);
params.put(BOUNDS, dimensions.getClientRect());
- insLog.log(Level.FINE, "Initial dimensions {0}", new Object[] { dimensions });
+ insLog.fine("Initial dimensions {0}", dimensions);
// Deny default processing of these events on the shell - proxy will take care of
// them instead
@@ -175,7 +174,7 @@
}
public void setTitle(String title) {
- if (log.isLoggable(Level.FINE)) log.fine("Title is " + title);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Title is " + title);
winAttr.title = title;
updateWMName();
}
@@ -265,7 +264,7 @@
wm_set_insets = XWM.getInsetsFromProp(getWindow(), changedAtom);
}
- insLog.log(Level.FINER, "FRAME_EXTENTS: {0}", new Object[]{wm_set_insets});
+ insLog.finer("FRAME_EXTENTS: {0}", wm_set_insets);
if (wm_set_insets != null) {
wm_set_insets = copy(wm_set_insets);
@@ -292,7 +291,7 @@
public void handleReparentNotifyEvent(XEvent xev) {
XReparentEvent xe = xev.get_xreparent();
- if (insLog.isLoggable(Level.FINE)) insLog.fine(xe.toString());
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine(xe.toString());
reparent_serial = xe.get_serial();
XToolkit.awtLock();
try {
@@ -331,7 +330,7 @@
// Check if we have insets provided by the WM
Insets correctWM = getWMSetInsets(null);
if (correctWM != null) {
- insLog.log(Level.FINER, "wm-provided insets {0}", new Object[]{correctWM});
+ insLog.finer("wm-provided insets {0}", correctWM);
// If these insets are equal to our current insets - no actions are necessary
Insets dimInsets = dimensions.getInsets();
if (correctWM.equals(dimInsets)) {
@@ -345,9 +344,9 @@
correctWM = XWM.getWM().getInsets(this, xe.get_window(), xe.get_parent());
if (correctWM != null) {
- insLog.log(Level.FINER, "correctWM {0}", new Object[] {correctWM});
+ insLog.finer("correctWM {0}", correctWM);
} else {
- insLog.log(Level.FINER, "correctWM insets are not available, waiting for configureNotify");
+ insLog.finer("correctWM insets are not available, waiting for configureNotify");
}
}
@@ -368,7 +367,7 @@
* initial insets were wrong (most likely they were).
*/
Insets correction = difference(correctWM, currentInsets);
- insLog.log(Level.FINEST, "Corrention {0}", new Object[] {correction});
+ insLog.finest("Corrention {0}", correction);
if (!isNull(correction)) {
currentInsets = copy(correctWM);
applyGuessedInsets();
@@ -378,7 +377,7 @@
//update minimum size hints
updateMinSizeHints();
}
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Dimensions before reparent: " + dimensions);
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Dimensions before reparent: " + dimensions);
dimensions.setInsets(getRealInsets());
insets_corrected = true;
@@ -452,8 +451,8 @@
public Insets getInsets() {
Insets in = copy(getRealInsets());
in.top += getMenuBarHeight();
- if (insLog.isLoggable(Level.FINEST)) {
- insLog.log(Level.FINEST, "Get insets returns {0}", new Object[] {in});
+ if (insLog.isLoggable(PlatformLogger.FINEST)) {
+ insLog.finest("Get insets returns {0}", in);
}
return in;
}
@@ -482,7 +481,7 @@
public void reshape(WindowDimensions newDimensions, int op,
boolean userReshape)
{
- if (insLog.isLoggable(Level.FINE)) {
+ if (insLog.isLoggable(PlatformLogger.FINE)) {
insLog.fine("Reshaping " + this + " to " + newDimensions + " op " + op + " user reshape " + userReshape);
}
if (userReshape) {
@@ -503,8 +502,8 @@
XToolkit.awtLock();
try {
if (!isReparented() || !isVisible()) {
- insLog.log(Level.FINE, "- not reparented({0}) or not visible({1}), default reshape",
- new Object[] {Boolean.valueOf(isReparented()), Boolean.valueOf(visible)});
+ insLog.fine("- not reparented({0}) or not visible({1}), default reshape",
+ Boolean.valueOf(isReparented()), Boolean.valueOf(visible));
// Fix for 6323293.
// This actually is needed to preserve compatibility with previous releases -
@@ -609,8 +608,9 @@
dims.setSize(width, height);
break;
}
- if (insLog.isLoggable(Level.FINE)) insLog.log(Level.FINE, "For the operation {0} new dimensions are {1}",
- new Object[] {operationToString(operation), dims});
+ if (insLog.isLoggable(PlatformLogger.FINE))
+ insLog.fine("For the operation {0} new dimensions are {1}",
+ operationToString(operation), dims);
reshape(dims, operation, userReshape);
}
@@ -640,7 +640,7 @@
public void handleConfigureNotifyEvent(XEvent xev) {
assert (SunToolkit.isAWTLockHeldByCurrentThread());
XConfigureEvent xe = xev.get_xconfigure();
- insLog.log(Level.FINE, "Configure notify {0}", new Object[] {xe});
+ insLog.fine("Configure notify {0}", xe);
// XXX: should really only consider synthetic events, but
if (isReparented()) {
@@ -677,9 +677,9 @@
* it!!!! or we wind up in a bogus location.
*/
int runningWM = XWM.getWMID();
- if (insLog.isLoggable(Level.FINE)) {
- insLog.log(Level.FINE, "reparented={0}, visible={1}, WM={2}, decorations={3}",
- new Object[] {isReparented(), isVisible(), runningWM, getDecorations()});
+ if (insLog.isLoggable(PlatformLogger.FINE)) {
+ insLog.fine("reparented={0}, visible={1}, WM={2}, decorations={3}",
+ isReparented(), isVisible(), runningWM, getDecorations());
}
if (!isReparented() && isVisible() && runningWM != XWM.NO_WM
&& !XWM.isNonReparentingWM()
@@ -691,7 +691,7 @@
if (!insets_corrected && getDecorations() != XWindowAttributesData.AWT_DECOR_NONE) {
long parent = XlibUtil.getParentWindow(window);
Insets correctWM = (parent != -1) ? XWM.getWM().getInsets(this, window, parent) : null;
- if (insLog.isLoggable(Level.FINER)) {
+ if (insLog.isLoggable(PlatformLogger.FINER)) {
if (correctWM != null) {
insLog.finer("Configure notify - insets : " + correctWM);
} else {
@@ -732,7 +732,7 @@
case XWM.SAWFISH_WM:
{
Point xlocation = queryXLocation();
- if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "New X location: {0}", new Object[]{xlocation});
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("New X location: {0}", xlocation);
if (xlocation != null) {
newLocation = xlocation;
}
@@ -749,8 +749,8 @@
copy(currentInsets),
true);
- insLog.log(Level.FINER, "Insets are {0}, new dimensions {1}",
- new Object[] {currentInsets, newDimensions});
+ insLog.finer("Insets are {0}, new dimensions {1}",
+ currentInsets, newDimensions);
checkIfOnNewScreen(newDimensions.getBounds());
@@ -789,8 +789,8 @@
}
public void setShellBounds(Rectangle rec) {
- if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell bounds on " +
- this + " to " + rec);
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell bounds on " +
+ this + " to " + rec);
XToolkit.awtLock();
try {
updateSizeHints(rec.x, rec.y, rec.width, rec.height);
@@ -802,8 +802,8 @@
}
}
public void setShellSize(Rectangle rec) {
- if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell size on " +
- this + " to " + rec);
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell size on " +
+ this + " to " + rec);
XToolkit.awtLock();
try {
updateSizeHints(rec.x, rec.y, rec.width, rec.height);
@@ -814,8 +814,8 @@
}
}
public void setShellPosition(Rectangle rec) {
- if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell position on " +
- this + " to " + rec);
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell position on " +
+ this + " to " + rec);
XToolkit.awtLock();
try {
updateSizeHints(rec.x, rec.y, rec.width, rec.height);
@@ -915,9 +915,9 @@
return toGlobal(0,0);
} else {
Point location = target.getLocation();
- if (insLog.isLoggable(Level.FINE))
- insLog.log(Level.FINE, "getLocationOnScreen {0} not reparented: {1} ",
- new Object[] {this, location});
+ if (insLog.isLoggable(PlatformLogger.FINE))
+ insLog.fine("getLocationOnScreen {0} not reparented: {1} ",
+ this, location);
return location;
}
} finally {
@@ -954,7 +954,7 @@
}
public void setVisible(boolean vis) {
- log.log(Level.FINER, "Setting {0} to visible {1}", new Object[] {this, Boolean.valueOf(vis)});
+ log.finer("Setting {0} to visible {1}", this, Boolean.valueOf(vis));
if (vis && !isVisible()) {
XWM.setShellDecor(this);
super.setVisible(vis);
@@ -1005,7 +1005,7 @@
}
private void handleWmTakeFocus(XClientMessageEvent cl) {
- focusLog.log(Level.FINE, "WM_TAKE_FOCUS on {0}", new Object[]{this});
+ focusLog.fine("WM_TAKE_FOCUS on {0}", this);
requestWindowFocus(cl.get_data(1), true);
}
@@ -1018,9 +1018,9 @@
// by "proxy" - invisible mapped window. When we want to set X input focus to
// toplevel set it on proxy instead.
if (focusProxy == null) {
- if (focusLog.isLoggable(Level.FINE)) focusLog.warning("Focus proxy is null for " + this);
+ if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.warning("Focus proxy is null for " + this);
} else {
- if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Requesting focus to proxy: " + focusProxy);
+ if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.fine("Requesting focus to proxy: " + focusProxy);
if (timeProvided) {
focusProxy.xRequestFocus(time);
} else {
@@ -1111,9 +1111,9 @@
Window focusedWindow = XKeyboardFocusManagerPeer.getCurrentNativeFocusedWindow();
Window activeWindow = XWindowPeer.getDecoratedOwner(focusedWindow);
- focusLog.log(Level.FINER, "Current window is: active={0}, focused={1}",
- new Object[]{ Boolean.valueOf(target == activeWindow),
- Boolean.valueOf(target == focusedWindow)});
+ focusLog.finer("Current window is: active={0}, focused={1}",
+ Boolean.valueOf(target == activeWindow),
+ Boolean.valueOf(target == focusedWindow));
XWindowPeer toFocus = this;
while (toFocus.nextTransientFor != null) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java Mon Oct 05 18:22:00 2009 -0700
@@ -32,7 +32,7 @@
import java.util.Map;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.misc.Unsafe;
@@ -42,8 +42,8 @@
* @since 1.5
*/
class XDnDDragSourceProtocol extends XDragSourceProtocol {
- private static final Logger logger =
- Logger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDragSourceProtocol");
+ private static final PlatformLogger logger =
+ PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDragSourceProtocol");
private static final Unsafe unsafe = XlibWrapper.unsafe;
@@ -395,7 +395,7 @@
return false;
}
- if (logger.isLoggable(Level.FINEST)) {
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
logger.finest(" sourceWindow=" + sourceWindow +
" get_window=" + xclient.get_window() +
" xclient=" + xclient);
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java Mon Oct 05 18:22:00 2009 -0700
@@ -33,7 +33,7 @@
import java.io.IOException;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.misc.Unsafe;
@@ -43,8 +43,8 @@
* @since 1.5
*/
class XDnDDropTargetProtocol extends XDropTargetProtocol {
- private static final Logger logger =
- Logger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDropTargetProtocol");
+ private static final PlatformLogger logger =
+ PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDropTargetProtocol");
private static final Unsafe unsafe = XlibWrapper.unsafe;
@@ -999,7 +999,7 @@
if (sourceFormats != null && sourceFormats.length > 3) {
data1 |= XDnDConstants.XDND_DATA_TYPES_BIT;
}
- if (logger.isLoggable(Level.FINEST)) {
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
logger.finest(" "
+ " entryVersion=" + version
+ " sourceProtocolVersion=" +
@@ -1058,7 +1058,7 @@
public boolean forwardEventToEmbedded(long embedded, long ctxt,
int eventID) {
- if (logger.isLoggable(Level.FINEST)) {
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
logger.finest(" ctxt=" + ctxt +
" type=" + (ctxt != 0 ?
getMessageType(new
@@ -1086,7 +1086,7 @@
long data3 = Native.getLong(ctxt + size + 2 * Native.getLongSize());
long data4 = Native.getLong(ctxt + size + 3 * Native.getLongSize());
- if (logger.isLoggable(Level.FINEST)) {
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
logger.finest(" 1 "
+ " embedded=" + embedded
+ " source=" + xclient.get_data(0)
@@ -1120,7 +1120,7 @@
if (XToolkit.saved_error != null &&
XToolkit.saved_error.get_error_code() != XConstants.Success) {
- if (logger.isLoggable(Level.WARNING)) {
+ if (logger.isLoggable(PlatformLogger.WARNING)) {
logger.warning("Cannot set XdndTypeList on the proxy window");
}
}
@@ -1128,7 +1128,7 @@
XToolkit.awtUnlock();
}
} else {
- if (logger.isLoggable(Level.WARNING)) {
+ if (logger.isLoggable(PlatformLogger.WARNING)) {
logger.warning("Cannot read XdndTypeList from the source window");
}
}
@@ -1143,7 +1143,7 @@
overXEmbedClient = true;
}
- if (logger.isLoggable(Level.FINEST)) {
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
logger.finest(" 2 "
+ " embedded=" + embedded
+ " xclient=" + xclient);
--- a/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -37,7 +37,8 @@
import java.util.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
import sun.awt.ComponentAccessor;
import sun.awt.dnd.SunDragSourceContextPeer;
@@ -52,8 +53,8 @@
*/
public final class XDragSourceContextPeer
extends SunDragSourceContextPeer implements XDragSourceProtocolListener {
- private static final Logger logger =
- Logger.getLogger("sun.awt.X11.xembed.xdnd.XDragSourceContextPeer");
+ private static final PlatformLogger logger =
+ PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDragSourceContextPeer");
/* The events selected on the root window when the drag begins. */
private static final int ROOT_EVENT_MASK = (int)XConstants.ButtonMotionMask |
@@ -542,7 +543,7 @@
return false;
}
- if (logger.isLoggable(Level.FINEST)) {
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
logger.finest(" proxyModeSourceWindow=" +
getProxyModeSourceWindow() +
" ev=" + ev);
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetContextPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetContextPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -31,7 +31,8 @@
import java.io.IOException;
import java.util.Iterator;
-import java.util.logging.*;
+
+import sun.util.logging.PlatformLogger;
import sun.awt.AppContext;
import sun.awt.SunToolkit;
@@ -48,8 +49,8 @@
* @since 1.5
*/
final class XDropTargetContextPeer extends SunDropTargetContextPeer {
- private static final Logger logger =
- Logger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetContextPeer");
+ private static final PlatformLogger logger =
+ PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetContextPeer");
private static final Unsafe unsafe = XlibWrapper.unsafe;
@@ -198,7 +199,7 @@
structure. */
long ctxt = getNativeDragContext();
- if (logger.isLoggable(Level.FINER)) {
+ if (logger.isLoggable(PlatformLogger.FINER)) {
logger.finer(" processing " + event + " ctxt=" + ctxt +
" consumed=" + event.isConsumed());
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetProtocol.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetProtocol.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,7 +29,7 @@
import java.util.HashMap;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/**
* An abstract class for drop protocols on X11 systems.
@@ -38,8 +38,8 @@
* @since 1.5
*/
abstract class XDropTargetProtocol {
- private static final Logger logger =
- Logger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetProtocol");
+ private static final PlatformLogger logger =
+ PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetProtocol");
private final XDropTargetProtocolListener listener;
@@ -116,16 +116,16 @@
XClientMessageEvent xclient) {
EmbedderRegistryEntry entry = getEmbedderRegistryEntry(toplevel);
- if (logger.isLoggable(Level.FINEST)) {
- logger.log(Level.FINEST, " entry={0}", new Object[] {entry});
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
+ logger.finest(" entry={0}", entry);
}
// Window not registered as an embedder for this protocol.
if (entry == null) {
return false;
}
- if (logger.isLoggable(Level.FINEST)) {
- logger.log(Level.FINEST, " entry.isOverriden()={0}", new Object[] {entry.isOverriden()});
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
+ logger.finest(" entry.isOverriden()={0}", entry.isOverriden());
}
// Window didn't have an associated drop site, so there is no need
// to forward the message.
@@ -137,8 +137,8 @@
long proxy = entry.getProxy();
- if (logger.isLoggable(Level.FINEST)) {
- logger.log(Level.FINEST, " proxy={0} toplevel={1}", new Object[] {proxy, toplevel});
+ if (logger.isLoggable(PlatformLogger.FINEST)) {
+ logger.finest(" proxy={0} toplevel={1}", proxy, toplevel);
}
if (proxy == 0) {
proxy = toplevel;
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java Mon Oct 05 18:22:00 2009 -0700
@@ -31,7 +31,7 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import java.awt.Point;
@@ -42,8 +42,8 @@
* @since 1.5
*/
final class XDropTargetRegistry {
- private static final Logger logger =
- Logger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetRegistry");
+ private static final PlatformLogger logger =
+ PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetRegistry");
private static final long DELAYED_REGISTRATION_PERIOD = 200;
@@ -614,7 +614,7 @@
if (info != null &&
info.getProtocolVersion() >= XDnDConstants.XDND_MIN_PROTOCOL_VERSION) {
- if (logger.isLoggable(Level.FINE)) {
+ if (logger.isLoggable(PlatformLogger.FINE)) {
logger.fine(" XEmbed drop site will be registered for " + Long.toHexString(clientWindow));
}
registerEmbeddedDropSite(canvasWindow, clientWindow);
@@ -628,14 +628,14 @@
dropTargetProtocol.registerEmbeddedDropSite(clientWindow);
}
- if (logger.isLoggable(Level.FINE)) {
+ if (logger.isLoggable(PlatformLogger.FINE)) {
logger.fine(" XEmbed drop site has been registered for " + Long.toHexString(clientWindow));
}
}
}
public void unregisterXEmbedClient(long canvasWindow, long clientWindow) {
- if (logger.isLoggable(Level.FINE)) {
+ if (logger.isLoggable(PlatformLogger.FINE)) {
logger.fine(" XEmbed drop site will be unregistered for " + Long.toHexString(clientWindow));
}
Iterator dropTargetProtocols =
@@ -649,7 +649,7 @@
unregisterEmbeddedDropSite(canvasWindow, clientWindow);
- if (logger.isLoggable(Level.FINE)) {
+ if (logger.isLoggable(PlatformLogger.FINE)) {
logger.fine(" XEmbed drop site has beed unregistered for " + Long.toHexString(clientWindow));
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -37,7 +37,7 @@
import sun.awt.*;
import sun.awt.motif.X11FontMetrics;
import java.lang.reflect.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import java.util.*;
import static sun.awt.X11.XEmbedHelper.*;
@@ -45,7 +45,7 @@
import sun.security.action.GetBooleanAction;
public class XEmbedCanvasPeer extends XCanvasPeer implements WindowFocusListener, KeyEventPostProcessor, ModalityListener, WindowIDProvider {
- private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedCanvasPeer");
+ private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbedCanvasPeer");
boolean applicationActive; // Whether the application is active(has focus)
XEmbedServer xembed = new XEmbedServer(); // Helper object, contains XEmbed intrinsics
@@ -129,7 +129,7 @@
}
void initDispatching() {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Init embedding for " + Long.toHexString(xembed.handle));
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Init embedding for " + Long.toHexString(xembed.handle));
XToolkit.awtLock();
try {
XToolkit.addEventDispatcher(xembed.handle, xembed);
@@ -196,10 +196,10 @@
switch (ev.get_type()) {
case XConstants.CreateNotify:
XCreateWindowEvent cr = ev.get_xcreatewindow();
- if (xembedLog.isLoggable(Level.FINEST)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
xembedLog.finest("Message on embedder: " + cr);
}
- if (xembedLog.isLoggable(Level.FINER)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) {
xembedLog.finer("Create notify for parent " + Long.toHexString(cr.get_parent()) +
", window " + Long.toHexString(cr.get_window()));
}
@@ -207,20 +207,20 @@
break;
case XConstants.DestroyNotify:
XDestroyWindowEvent dn = ev.get_xdestroywindow();
- if (xembedLog.isLoggable(Level.FINEST)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
xembedLog.finest("Message on embedder: " + dn);
}
- if (xembedLog.isLoggable(Level.FINER)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) {
xembedLog.finer("Destroy notify for parent: " + dn);
}
childDestroyed();
break;
case XConstants.ReparentNotify:
XReparentEvent rep = ev.get_xreparent();
- if (xembedLog.isLoggable(Level.FINEST)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
xembedLog.finest("Message on embedder: " + rep);
}
- if (xembedLog.isLoggable(Level.FINER)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) {
xembedLog.finer("Reparent notify for parent " + Long.toHexString(rep.get_parent()) +
", window " + Long.toHexString(rep.get_window()) +
", event " + Long.toHexString(rep.get_event()));
@@ -323,7 +323,7 @@
}
void childResized() {
- if (xembedLog.isLoggable(Level.FINER)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) {
Rectangle bounds = getClientBounds();
xembedLog.finer("Child resized: " + bounds);
// It is not required to update embedder's size when client size changes
@@ -388,7 +388,7 @@
}
void detachChild() {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Detaching child " + Long.toHexString(xembed.handle));
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Detaching child " + Long.toHexString(xembed.handle));
/**
* XEmbed specification:
* "The embedder can unmap the client and reparent the client window to the root window. If the
@@ -477,7 +477,7 @@
try {
XKeyEvent ke = new XKeyEvent(data);
ke.set_window(xembed.handle);
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Forwarding native key event: " + ke);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Forwarding native key event: " + ke);
XToolkit.awtLock();
try {
XlibWrapper.XSendEvent(XToolkit.getDisplay(), xembed.handle, false, XConstants.NoEventMask, data);
@@ -508,7 +508,7 @@
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
GrabbedKey grab = new GrabbedKey(keysym, modifiers);
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Grabbing key: " + grab);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Grabbing key: " + grab);
synchronized(GRAB_LOCK) {
grabbed_keys.add(grab);
}
@@ -520,7 +520,7 @@
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
GrabbedKey grab = new GrabbedKey(keysym, modifiers);
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("UnGrabbing key: " + grab);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("UnGrabbing key: " + grab);
synchronized(GRAB_LOCK) {
grabbed_keys.remove(grab);
}
@@ -533,7 +533,7 @@
public void run() {
AWTKeyStroke stroke = xembed.getKeyStrokeForKeySym(keysym, modifiers);
if (stroke != null) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Registering accelerator " + accel_id + " for " + stroke);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Registering accelerator " + accel_id + " for " + stroke);
synchronized(ACCEL_LOCK) {
accelerators.put(accel_id, stroke);
accel_lookup.put(stroke, accel_id);
@@ -551,7 +551,7 @@
synchronized(ACCEL_LOCK) {
stroke = accelerators.get(accel_id);
if (stroke != null) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Unregistering accelerator: " + accel_id);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Unregistering accelerator: " + accel_id);
accelerators.remove(accel_id);
accel_lookup.remove(stroke); // FIXME: How about several accelerators with the same stroke?
}
@@ -597,7 +597,7 @@
boolean result = false;
- if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Post-processing event " + e);
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Post-processing event " + e);
// Process ACCELERATORS
AWTKeyStroke stroke = AWTKeyStroke.getAWTKeyStrokeForEvent(e);
@@ -610,7 +610,7 @@
}
}
if (exists) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Activating accelerator " + accel_id);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Activating accelerator " + accel_id);
xembed.sendMessage(xembed.handle, XEMBED_ACTIVATE_ACCELERATOR, accel_id, 0, 0); // FIXME: How about overloaded?
result = true;
}
@@ -622,7 +622,7 @@
exists = grabbed_keys.contains(key);
}
if (exists) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Forwarding grabbed key " + e);
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Forwarding grabbed key " + e);
forwardKeyEvent(e);
result = true;
}
@@ -641,9 +641,9 @@
public void handleClientMessage(XEvent xev) {
super.handleClientMessage(xev);
XClientMessageEvent msg = xev.get_xclient();
- if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Client message to embedder: " + msg);
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Client message to embedder: " + msg);
if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine(xembed.XEmbedMessageToString(msg));
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine(xembed.XEmbedMessageToString(msg));
}
if (isXEmbedActive()) {
switch ((int)msg.get_data(1)) {
@@ -709,7 +709,7 @@
}
public boolean processXEmbedDnDEvent(long ctxt, int eventID) {
- if (xembedLog.isLoggable(Level.FINEST)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
xembedLog.finest(" Drop target=" + target.getDropTarget());
}
if (target.getDropTarget() instanceof XEmbedDropTarget) {
@@ -744,7 +744,7 @@
boolean new_mapped = (flags & XEMBED_MAPPED) != 0;
boolean currently_mapped = XlibUtil.getWindowMapState(handle) != XConstants.IsUnmapped;
if (new_mapped != currently_mapped) {
- if (xembedLog.isLoggable(Level.FINER))
+ if (xembedLog.isLoggable(PlatformLogger.FINER))
xembedLog.fine("Mapping state of the client has changed, old state: " + currently_mapped + ", new state: " + new_mapped);
if (new_mapped) {
XToolkit.awtLock();
@@ -773,7 +773,7 @@
public void handlePropertyNotify(XEvent xev) {
if (isXEmbedActive()) {
XPropertyEvent ev = xev.get_xproperty();
- if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Property change on client: " + ev);
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Property change on client: " + ev);
if (ev.get_atom() == XAtom.XA_WM_NORMAL_HINTS) {
childResized();
} else if (ev.get_atom() == XEmbedInfo.getAtom()) {
@@ -794,7 +794,7 @@
void handleConfigureNotify(XEvent xev) {
if (isXEmbedActive()) {
XConfigureEvent ev = xev.get_xconfigure();
- if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Bounds change on client: " + ev);
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Bounds change on client: " + ev);
if (xev.get_xany().get_window() == handle) {
childResized();
}
@@ -845,7 +845,7 @@
// We recognize only these masks
modifiers = ke.get_state() & (XConstants.ShiftMask | XConstants.ControlMask | XConstants.LockMask);
- if (xembedLog.isLoggable(Level.FINEST)) xembedLog.finest("Mapped " + e + " to " + this);
+ if (xembedLog.isLoggable(PlatformLogger.FINEST)) xembedLog.finest("Mapped " + e + " to " + this);
} finally {
XlibWrapper.unsafe.freeMemory(data);
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java Mon Oct 05 18:22:00 2009 -0700
@@ -26,10 +26,10 @@
package sun.awt.X11;
import java.awt.AWTKeyStroke;
-import java.util.logging.*;
import sun.awt.SunToolkit;
import java.awt.Component;
import java.awt.Container;
+import sun.util.logging.PlatformLogger;
import sun.awt.X11GraphicsConfig;
import sun.awt.X11GraphicsDevice;
@@ -40,7 +40,7 @@
* call install and forward all XClientMessageEvents to it.
*/
public class XEmbedClientHelper extends XEmbedHelper implements XEventDispatcher {
- private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedClientHelper");
+ private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbedClientHelper");
private XEmbeddedFramePeer embedded; // XEmbed client
private long server; // XEmbed server
@@ -53,7 +53,7 @@
}
void setClient(XEmbeddedFramePeer client) {
- if (xembedLog.isLoggable(Level.FINE)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) {
xembedLog.fine("XEmbed client: " + client);
}
if (embedded != null) {
@@ -67,7 +67,7 @@
}
void install() {
- if (xembedLog.isLoggable(Level.FINE)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) {
xembedLog.fine("Installing xembedder on " + embedded);
}
long[] info = new long[] { XEMBED_VERSION, XEMBED_MAPPED };
@@ -95,9 +95,9 @@
void handleClientMessage(XEvent xev) {
XClientMessageEvent msg = xev.get_xclient();
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine(msg.toString());
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine(msg.toString());
if (msg.get_message_type() == XEmbed.getAtom()) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Embedded message: " + msgidToString((int)msg.get_data(1)));
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Embedded message: " + msgidToString((int)msg.get_data(1)));
switch ((int)msg.get_data(1)) {
case XEMBED_EMBEDDED_NOTIFY: // Notification about embedding protocol start
active = true;
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,7 +27,8 @@
import sun.misc.Unsafe;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
import java.awt.AWTKeyStroke;
import java.awt.event.InputEvent;
@@ -36,7 +37,7 @@
* Contains constant definitions and helper routines.
*/
public class XEmbedHelper {
- private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed");
+ private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed");
final static Unsafe unsafe = Unsafe.getUnsafe();
final static int XEMBED_VERSION = 0,
@@ -81,11 +82,11 @@
XEmbedHelper() {
if (XEmbed == null) {
XEmbed = XAtom.get("_XEMBED");
- if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Created atom " + XEmbed.toString());
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Created atom " + XEmbed.toString());
}
if (XEmbedInfo == null) {
XEmbedInfo = XAtom.get("_XEMBED_INFO");
- if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Created atom " + XEmbedInfo.toString());
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Created atom " + XEmbedInfo.toString());
}
}
@@ -105,7 +106,7 @@
msg.set_data(4, data2);
XToolkit.awtLock();
try {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Sending " + XEmbedMessageToString(msg));
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Sending " + XEmbedMessageToString(msg));
XlibWrapper.XSendEvent(XToolkit.getDisplay(), window, false, XConstants.NoEventMask, msg.pData);
}
finally {
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java Mon Oct 05 18:22:00 2009 -0700
@@ -28,7 +28,7 @@
//import static sun.awt.X11.XEmbed.*;
import java.awt.*;
import java.awt.event.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import static sun.awt.X11.XConstants.*;
import java.util.LinkedList;
@@ -37,7 +37,7 @@
* specification and references.
*/
public class XEmbedServerTester implements XEventDispatcher {
- private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedServerTester");
+ private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbedServerTester");
private final Object EVENT_LOCK = new Object();
static final int SYSTEM_EVENT_MASK = 0x8000;
int my_version, server_version;
@@ -544,7 +544,7 @@
try {
EVENT_LOCK.wait(3000);
} catch (InterruptedException ie) {
- xembedLog.log(Level.WARNING, "Event wait interrupted", ie);
+ xembedLog.warning("Event wait interrupted", ie);
}
eventWaited = -1;
if (checkEventList(position, event) == -1) {
@@ -634,7 +634,7 @@
if (ev.get_type() == ClientMessage) {
XClientMessageEvent msg = ev.get_xclient();
if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
- if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Embedded message: " + XEmbedHelper.msgidToString((int)msg.get_data(1)));
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Embedded message: " + XEmbedHelper.msgidToString((int)msg.get_data(1)));
switch ((int)msg.get_data(1)) {
case XEmbedHelper.XEMBED_EMBEDDED_NOTIFY: // Notification about embedding protocol start
xembedActive = true;
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,15 +30,14 @@
import java.util.LinkedList;
import java.util.Iterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.EmbeddedFrame;
import sun.awt.SunToolkit;
public class XEmbeddedFramePeer extends XFramePeer {
- private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbeddedFramePeer");
+ private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbeddedFramePeer");
LinkedList<AWTKeyStroke> strokes;
@@ -138,7 +137,7 @@
{
assert (SunToolkit.isAWTLockHeldByCurrentThread());
XConfigureEvent xe = xev.get_xconfigure();
- if (xembedLog.isLoggable(Level.FINE)) {
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) {
xembedLog.fine(xe.toString());
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -34,12 +34,12 @@
import java.util.Arrays;
import com.sun.java.swing.plaf.motif.*;
import javax.swing.plaf.ComponentUI;
-import java.util.logging.*;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import sun.util.logging.PlatformLogger;
class XFileDialogPeer extends XDialogPeer implements FileDialogPeer, ActionListener, ItemListener, KeyEventDispatcher, XChoicePeerListener {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XFileDialogPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XFileDialogPeer");
FileDialog target;
--- a/jdk/src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -26,7 +26,6 @@
package sun.awt.X11;
import java.awt.*;
-import java.util.logging.*;
/**
* This class represent focus holder window implementation. When toplevel requests or receives focus
@@ -34,7 +33,6 @@
* and therefore X doesn't control focus after we have set it to proxy.
*/
public class XFocusProxyWindow extends XBaseWindow {
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XFocusProxyWindow");
XWindowPeer owner;
public XFocusProxyWindow(XWindowPeer owner) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -34,14 +34,13 @@
import java.awt.MenuBar;
import java.awt.Rectangle;
import java.awt.peer.FramePeer;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.AWTAccessor;
class XFramePeer extends XDecoratedPeer implements FramePeer {
- private static Logger log = Logger.getLogger("sun.awt.X11.XFramePeer");
- private static Logger stateLog = Logger.getLogger("sun.awt.X11.states");
- private static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XFramePeer");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XFramePeer");
+ private static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states");
+ private static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XFramePeer");
XMenuBarPeer menubarPeer;
MenuBar menubar;
@@ -76,10 +75,10 @@
winAttr.isResizable = true; // target.isResizable();
winAttr.title = target.getTitle();
winAttr.initialResizability = target.isResizable();
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "Frame''s initial attributes: decor {0}, resizable {1}, undecorated {2}, initial state {3}",
- new Object[] {Integer.valueOf(winAttr.decorations), Boolean.valueOf(winAttr.initialResizability),
- Boolean.valueOf(!winAttr.nativeDecor), Integer.valueOf(winAttr.initialState)});
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("Frame''s initial attributes: decor {0}, resizable {1}, undecorated {2}, initial state {3}",
+ Integer.valueOf(winAttr.decorations), Boolean.valueOf(winAttr.initialResizability),
+ Boolean.valueOf(!winAttr.nativeDecor), Integer.valueOf(winAttr.initialState));
}
}
@@ -208,7 +207,7 @@
}
public void setMaximizedBounds(Rectangle b) {
- if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting maximized bounds to " + b);
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting maximized bounds to " + b);
if (b == null) return;
maxBounds = new Rectangle(b);
XToolkit.awtLock();
@@ -225,7 +224,7 @@
} else {
hints.set_max_height((int)XlibWrapper.DisplayHeight(XToolkit.getDisplay(), XlibWrapper.DefaultScreen(XToolkit.getDisplay())));
}
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
XlibWrapper.XSetWMNormalHints(XToolkit.getDisplay(), window, hints.pData);
} finally {
XToolkit.awtUnlock();
@@ -253,14 +252,14 @@
int changed = state ^ newState;
int changeIconic = changed & Frame.ICONIFIED;
boolean iconic = (newState & Frame.ICONIFIED) != 0;
- stateLog.log(Level.FINER, "Changing state, old state {0}, new state {1}(iconic {2})",
- new Object[] {Integer.valueOf(state), Integer.valueOf(newState), Boolean.valueOf(iconic)});
+ stateLog.finer("Changing state, old state {0}, new state {1}(iconic {2})",
+ Integer.valueOf(state), Integer.valueOf(newState), Boolean.valueOf(iconic));
if (changeIconic != 0 && iconic) {
- if (stateLog.isLoggable(Level.FINER)) stateLog.finer("Iconifying shell " + getShell() + ", this " + this + ", screen " + getScreenNumber());
+ if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("Iconifying shell " + getShell() + ", this " + this + ", screen " + getScreenNumber());
XToolkit.awtLock();
try {
int res = XlibWrapper.XIconifyWindow(XToolkit.getDisplay(), getShell(), getScreenNumber());
- if (stateLog.isLoggable(Level.FINER)) stateLog.finer("XIconifyWindow returned " + res);
+ if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("XIconifyWindow returned " + res);
}
finally {
XToolkit.awtUnlock();
@@ -270,7 +269,7 @@
setExtendedState(newState);
}
if (changeIconic != 0 && !iconic) {
- if (stateLog.isLoggable(Level.FINER)) stateLog.finer("DeIconifying " + this);
+ if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("DeIconifying " + this);
xSetVisible(true);
}
}
@@ -283,7 +282,7 @@
super.handlePropertyNotify(xev);
XPropertyEvent ev = xev.get_xproperty();
- log.log(Level.FINER, "Property change {0}", new Object[] {ev});
+ log.finer("Property change {0}", ev);
/*
* Let's see if this is a window state protocol message, and
* if it is - decode a new state in terms of java constants.
@@ -348,7 +347,7 @@
XWMHints hints = getWMHints();
hints.set_flags((int)XUtilConstants.StateHint | hints.get_flags());
hints.set_initial_state(wm_state);
- if (stateLog.isLoggable(Level.FINE)) stateLog.fine("Setting initial WM state on " + this + " to " + wm_state);
+ if (stateLog.isLoggable(PlatformLogger.FINE)) stateLog.fine("Setting initial WM state on " + this + " to " + wm_state);
XlibWrapper.XSetWMHints(XToolkit.getDisplay(), getWindow(), hints.pData);
}
finally {
--- a/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,10 +30,10 @@
import sun.awt.image.ToolkitImage;
import sun.awt.image.ImageRepresentation;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
public class XIconWindow extends XBaseWindow {
- private final static Logger log = Logger.getLogger("sun.awt.X11.XIconWindow");
+ private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XIconWindow");
XDecoratedPeer parent;
Dimension size;
long iconPixmap = 0;
@@ -61,7 +61,7 @@
final long screen = adata.get_awt_visInfo().get_screen();
final long display = XToolkit.getDisplay();
- if (log.isLoggable(Level.FINEST)) log.finest(adata.toString());
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest(adata.toString());
long status =
XlibWrapper.XGetIconSizes(display, XToolkit.getDefaultRootWindow(),
@@ -71,11 +71,11 @@
}
int count = Native.getInt(XlibWrapper.iarg1);
long sizes_ptr = Native.getLong(XlibWrapper.larg1); // XIconSize*
- log.log(Level.FINEST, "count = {1}, sizes_ptr = {0}", new Object[] {Long.valueOf(sizes_ptr), Integer.valueOf(count)});
+ log.finest("count = {1}, sizes_ptr = {0}", Long.valueOf(sizes_ptr), Integer.valueOf(count));
XIconSize[] res = new XIconSize[count];
for (int i = 0; i < count; i++, sizes_ptr += XIconSize.getSize()) {
res[i] = new XIconSize(sizes_ptr);
- log.log(Level.FINEST, "sizes_ptr[{1}] = {0}", new Object[] {res[i], Integer.valueOf(i)});
+ log.finest("sizes_ptr[{1}] = {0}", res[i], Integer.valueOf(i));
}
return res;
} finally {
@@ -87,12 +87,12 @@
if (XWM.getWMID() == XWM.ICE_WM) {
// ICE_WM has a bug - it only displays icons of the size
// 16x16, while reporting 32x32 in its size list
- log.log(Level.FINEST, "Returning ICE_WM icon size: 16x16");
+ log.finest("Returning ICE_WM icon size: 16x16");
return new Dimension(16, 16);
}
XIconSize[] sizeList = getIconSizes();
- log.log(Level.FINEST, "Icon sizes: {0}", new Object[] {sizeList});
+ log.finest("Icon sizes: {0}", sizeList);
if (sizeList == null) {
// No icon sizes so we simply fall back to 16x16
return new Dimension(16, 16);
@@ -139,11 +139,11 @@
}
}
}
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("found=" + found);
}
if (!found) {
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("widthHint=" + widthHint + ", heightHint=" + heightHint
+ ", saveWidth=" + saveWidth + ", saveHeight=" + saveHeight
+ ", max_width=" + sizeList[0].get_max_width()
@@ -159,7 +159,7 @@
/* determine which way to scale */
int wdiff = widthHint - sizeList[0].get_max_width();
int hdiff = heightHint - sizeList[0].get_max_height();
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("wdiff=" + wdiff + ", hdiff=" + hdiff);
}
if (wdiff >= hdiff) { /* need to scale width more */
@@ -191,7 +191,7 @@
XToolkit.awtUnlock();
}
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("return " + saveWidth + "x" + saveHeight);
}
return new Dimension(saveWidth, saveHeight);
@@ -418,7 +418,7 @@
}
}
if (min != null) {
- log.log(Level.FINER, "Icon: {0}x{1}", new Object[] { min.getWidth(null), min.getHeight(null)});
+ log.finer("Icon: {0}x{1}", min.getWidth(null), min.getHeight(null));
setIconImage(min);
}
}
@@ -444,7 +444,7 @@
}
Dimension iconSize = getIconSize(width, height);
if (iconSize != null) {
- log.log(Level.FINEST, "Icon size: {0}", iconSize);
+ log.finest("Icon size: {0}", iconSize);
iconWidth = iconSize.width;
iconHeight = iconSize.height;
} else {
--- a/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java Mon Oct 05 18:22:00 2009 -0700
@@ -33,7 +33,7 @@
import java.awt.peer.ComponentPeer;
import sun.awt.X11InputMethod;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/**
* Input Method Adapter for XIM (without Motif)
@@ -41,7 +41,7 @@
* @author JavaSoft International
*/
public class XInputMethod extends X11InputMethod {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XInputMethod");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XInputMethod");
public XInputMethod() throws AWTException {
super();
@@ -102,13 +102,13 @@
protected ComponentPeer getPeer(Component client) {
XComponentPeer peer;
- if (log.isLoggable(Level.FINE)) log.fine("Client is " + client);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Client is " + client);
peer = (XComponentPeer)XToolkit.targetToPeer(client);
while (client != null && peer == null) {
client = getParent(client);
peer = (XComponentPeer)XToolkit.targetToPeer(client);
}
- log.log(Level.FINE, "Peer is {0}, client is {1}", new Object[] {peer, client});
+ log.fine("Peer is {0}, client is {1}", peer, client);
if (peer != null)
return peer;
--- a/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -36,15 +36,14 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.CausedFocusEvent;
import sun.awt.SunToolkit;
import sun.awt.KeyboardFocusManagerPeerImpl;
public class XKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XKeyboardFocusManagerPeer");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XKeyboardFocusManagerPeer");
private static Object lock = new Object() {};
private static Component currentFocusOwner;
@@ -82,7 +81,7 @@
}
public static void setCurrentNativeFocusedWindow(Window win) {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Setting current native focused window " + win);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Setting current native focused window " + win);
XWindowPeer from = null, to = null;
synchronized(lock) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,8 +29,7 @@
import java.util.Hashtable;
import sun.misc.Unsafe;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
public class XKeysym {
@@ -70,7 +69,7 @@
static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
- private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XKeysym");
+ private static PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XKeysym");
public static char convertKeysym( long ks, int state ) {
/* First check for Latin-1 characters (1:1 mapping) */
--- a/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -34,13 +34,13 @@
import java.util.Vector;
import java.awt.geom.*;
import java.awt.image.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
// TODO: some input actions should do nothing if Shift or Control are down
class XListPeer extends XComponentPeer implements ListPeer, XScrollbarClient {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XListPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XListPeer");
public final static int MARGIN = 2;
public final static int SPACE = 1;
@@ -578,10 +578,10 @@
}
void mousePressed(MouseEvent mouseEvent) {
- if (log.isLoggable(Level.FINER)) log.finer(mouseEvent.toString() + ", hsb " + hsbVis + ", vsb " + vsbVis);
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer(mouseEvent.toString() + ", hsb " + hsbVis + ", vsb " + vsbVis);
if (isEnabled() && mouseEvent.getButton() == MouseEvent.BUTTON1) {
if (inWindow(mouseEvent.getX(), mouseEvent.getY())) {
- if (log.isLoggable(Level.FINE)) log.fine("Mouse press in items area");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Mouse press in items area");
active = WINDOW;
int i = y2index(mouseEvent.getY());
if (i >= 0) {
@@ -618,14 +618,14 @@
currentIndex = -1;
}
} else if (inVerticalScrollbar(mouseEvent.getX(), mouseEvent.getY())) {
- if (log.isLoggable(Level.FINE)) log.fine("Mouse press in vertical scrollbar");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Mouse press in vertical scrollbar");
active = VERSCROLLBAR;
vsb.handleMouseEvent(mouseEvent.getID(),
mouseEvent.getModifiers(),
mouseEvent.getX() - (width - SCROLLBAR_WIDTH),
mouseEvent.getY());
} else if (inHorizontalScrollbar(mouseEvent.getX(), mouseEvent.getY())) {
- if (log.isLoggable(Level.FINE)) log.fine("Mouse press in horizontal scrollbar");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Mouse press in horizontal scrollbar");
active = HORSCROLLBAR;
hsb.handleMouseEvent(mouseEvent.getID(),
mouseEvent.getModifiers(),
@@ -808,7 +808,7 @@
void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
- if (log.isLoggable(Level.FINE)) log.fine(e.toString());
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine(e.toString());
switch(keyCode) {
case KeyEvent.VK_UP:
case KeyEvent.VK_KP_UP: // TODO: I assume we also want this, too
@@ -993,7 +993,7 @@
*/
public void notifyValue(XScrollbar obj, int type, int v, boolean isAdjusting) {
- if (log.isLoggable(Level.FINE)) log.fine("Notify value changed on " + obj + " to " + v);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Notify value changed on " + obj + " to " + v);
int value = obj.getValue();
if (obj == vsb) {
scrollVertical(v - value);
@@ -1076,7 +1076,7 @@
}
}
}
- if (log.isLoggable(Level.FINER)) log.finer("Adding item '" + item + "' to " + addedIndex);
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("Adding item '" + item + "' to " + addedIndex);
// Update maxLength
boolean repaintItems = !isItemHidden(addedIndex);
@@ -1094,7 +1094,7 @@
| ((vsb.needsRepaint())?(PAINT_VSCROLL):0);
}
- if (log.isLoggable(Level.FINEST)) log.finest("Last visible: " + getLastVisibleItem() +
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Last visible: " + getLastVisibleItem() +
", hsb changed : " + (hsbWasVis ^ hsbVis) + ", items changed " + repaintItems);
repaint(addedIndex, getLastVisibleItem(), options);
}
@@ -1110,9 +1110,9 @@
boolean vsbWasVisible = vsbVis;
int oldLastDisplayed = lastItemDisplayed();
- if (log.isLoggable(Level.FINE)) log.fine("Deleting from " + s + " to " + e);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Deleting from " + s + " to " + e);
- if (log.isLoggable(Level.FINEST)) log.finest("Last displayed item: " + oldLastDisplayed + ", items in window " + itemsInWindow() +
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Last displayed item: " + oldLastDisplayed + ", items in window " + itemsInWindow() +
", size " + items.size());
if (items.size() == 0) {
@@ -1180,7 +1180,7 @@
options |= PAINT_FOCUS;
}
- if (log.isLoggable(Level.FINEST)) log.finest("Multiple selections: " + multipleSelections);
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Multiple selections: " + multipleSelections);
// update vsb.val
if (vsb.getValue() >= s) {
@@ -1433,7 +1433,7 @@
* y is the number of items to scroll
*/
void scrollVertical(int y) {
- if (log.isLoggable(Level.FINE)) log.fine("Scrolling vertically by " + y);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Scrolling vertically by " + y);
int itemsInWin = itemsInWindow();
int h = getItemHeight();
int pixelsToScroll = y * h;
@@ -1473,7 +1473,7 @@
* x is the number of pixels to scroll
*/
void scrollHorizontal(int x) {
- if (log.isLoggable(Level.FINE)) log.fine("Scrolling horizontally by " + y);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Scrolling horizontally by " + y);
int w = getListWidth();
w -= ((2 * SPACE) + (2 * MARGIN));
int h = height - (SCROLLBAR_AREA + (2 * MARGIN));
@@ -1706,7 +1706,7 @@
}
if (localBuffer == null) {
- if (log.isLoggable(Level.FINE)) log.fine("Creating buffer " + width + "x" + height);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Creating buffer " + width + "x" + height);
// use GraphicsConfig.cCVI() instead of Component.cVI(),
// because the latter may cause a deadlock with the tree lock
localBuffer =
@@ -1743,7 +1743,7 @@
private void paint(Graphics listG, int firstItem, int lastItem, int options,
Rectangle source, Point distance) {
- if (log.isLoggable(Level.FINER)) log.finer("Repaint from " + firstItem + " to " + lastItem + " options " + options);
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("Repaint from " + firstItem + " to " + lastItem + " options " + options);
if (firstItem > lastItem) {
int t = lastItem;
lastItem = firstItem;
@@ -1832,7 +1832,7 @@
}
private void paintItems(Graphics g, int firstItem, int lastItem, int options) {
- if (log.isLoggable(Level.FINER)) log.finer("Painting items from " + firstItem + " to " + lastItem + ", focused " + focusIndex + ", first " + getFirstVisibleItem() + ", last " + getLastVisibleItem());
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("Painting items from " + firstItem + " to " + lastItem + ", focused " + focusIndex + ", first " + getFirstVisibleItem() + ", last " + getLastVisibleItem());
firstItem = Math.max(getFirstVisibleItem(), firstItem);
if (firstItem > lastItem) {
@@ -1843,7 +1843,7 @@
firstItem = Math.max(getFirstVisibleItem(), firstItem);
lastItem = Math.min(lastItem, items.size()-1);
- if (log.isLoggable(Level.FINER)) log.finer("Actually painting items from " + firstItem + " to " + lastItem +
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("Actually painting items from " + firstItem + " to " + lastItem +
", items in window " + itemsInWindow());
for (int i = firstItem; i <= lastItem; i++) {
paintItem(g, i);
@@ -1851,7 +1851,7 @@
}
private void paintItem(Graphics g, int index) {
- if (log.isLoggable(Level.FINEST)) log.finest("Painting item " + index);
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painting item " + index);
// 4895367 - only paint items which are visible
if (!isItemHidden(index)) {
Shape clip = g.getClip();
@@ -1859,18 +1859,18 @@
int h = getItemHeight();
int y = getItemY(index);
int x = getItemX();
- if (log.isLoggable(Level.FINEST)) log.finest("Setting clip " + new Rectangle(x, y, w - (SPACE*2), h-(SPACE*2)));
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Setting clip " + new Rectangle(x, y, w - (SPACE*2), h-(SPACE*2)));
g.setClip(x, y, w - (SPACE*2), h-(SPACE*2));
// Always paint the background so that focus is unpainted in
// multiselect mode
if (isSelected(index)) {
- if (log.isLoggable(Level.FINEST)) log.finest("Painted item is selected");
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painted item is selected");
g.setColor(getListForeground());
} else {
g.setColor(getListBackground());
}
- if (log.isLoggable(Level.FINEST)) log.finest("Filling " + new Rectangle(x, y, w, h));
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Filling " + new Rectangle(x, y, w, h));
g.fillRect(x, y, w, h);
if (index <= getLastVisibleItem() && index < items.size()) {
@@ -1894,7 +1894,7 @@
}
void paintScrollBar(XScrollbar scr, Graphics g, int x, int y, int width, int height, boolean paintAll) {
- if (log.isLoggable(Level.FINEST)) log.finest("Painting scrollbar " + scr + " width " +
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painting scrollbar " + scr + " width " +
width + " height " + height + ", paintAll " + paintAll);
g.translate(x, y);
scr.paint(g, getSystemColors(), paintAll);
@@ -1932,22 +1932,22 @@
if (paintFocus && !hasFocus()) {
paintFocus = false;
}
- if (log.isLoggable(Level.FINE)) log.fine("Painting focus, focus index " + getFocusIndex() + ", focus is " +
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Painting focus, focus index " + getFocusIndex() + ", focus is " +
(isItemHidden(getFocusIndex())?("invisible"):("visible")) + ", paint focus is " + paintFocus);
Shape clip = g.getClip();
g.setClip(0, 0, listWidth, listHeight);
- if (log.isLoggable(Level.FINEST)) log.finest("Setting focus clip " + new Rectangle(0, 0, listWidth, listHeight));
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Setting focus clip " + new Rectangle(0, 0, listWidth, listHeight));
Rectangle rect = getFocusRect();
if (prevFocusRect != null) {
// Erase focus rect
- if (log.isLoggable(Level.FINEST)) log.finest("Erasing previous focus rect " + prevFocusRect);
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Erasing previous focus rect " + prevFocusRect);
g.setColor(getListBackground());
g.drawRect(prevFocusRect.x, prevFocusRect.y, prevFocusRect.width, prevFocusRect.height);
prevFocusRect = null;
}
if (paintFocus) {
// Paint new
- if (log.isLoggable(Level.FINEST)) log.finest("Painting focus rect " + rect);
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painting focus rect " + rect);
g.setColor(getListForeground()); // Focus color is always black on Linux
g.drawRect(rect.x, rect.y, rect.width, rect.height);
prevFocusRect = rect;
--- a/jdk/src/solaris/classes/sun/awt/X11/XMSelection.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMSelection.java Mon Oct 05 18:22:00 2009 -0700
@@ -32,8 +32,7 @@
package sun.awt.X11;
import java.util.*;
-import java.util.logging.*;
-
+import sun.util.logging.PlatformLogger;
public class XMSelection {
@@ -56,7 +55,7 @@
*/
- private static Logger log = Logger.getLogger("sun.awt.X11.XMSelection");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMSelection");
/* Name of the selection */
String selectionName;
@@ -129,7 +128,7 @@
long display = XToolkit.getDisplay();
synchronized(this) {
setOwner(owner, screen);
- if (log.isLoggable(Level.FINE)) log.fine("New Selection Owner for screen " + screen + " = " + owner );
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("New Selection Owner for screen " + screen + " = " + owner );
XlibWrapper.XSelectInput(display, owner, XConstants.StructureNotifyMask | eventMask);
XToolkit.addEventDispatcher(owner,
new XEventDispatcher() {
@@ -149,19 +148,19 @@
try {
try {
long display = XToolkit.getDisplay();
- if (log.isLoggable(Level.FINE)) log.fine("Grabbing XServer");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Grabbing XServer");
XlibWrapper.XGrabServer(display);
synchronized(this) {
String selection_name = getName()+"_S"+screen;
- if (log.isLoggable(Level.FINE)) log.fine("Screen = " + screen + " selection name = " + selection_name);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Screen = " + screen + " selection name = " + selection_name);
XAtom atom = XAtom.get(selection_name);
selectionMap.put(Long.valueOf(atom.getAtom()),this); // add mapping from atom to the instance of XMSelection
setAtom(atom,screen);
long owner = XlibWrapper.XGetSelectionOwner(display, atom.getAtom());
if (owner != 0) {
setOwner(owner, screen);
- if (log.isLoggable(Level.FINE)) log.fine("Selection Owner for screen " + screen + " = " + owner );
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Selection Owner for screen " + screen + " = " + owner );
XlibWrapper.XSelectInput(display, owner, XConstants.StructureNotifyMask | extra_mask);
XToolkit.addEventDispatcher(owner,
new XEventDispatcher() {
@@ -176,7 +175,7 @@
e.printStackTrace();
}
finally {
- if (log.isLoggable(Level.FINE)) log.fine("UnGrabbing XServer");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("UnGrabbing XServer");
XlibWrapper.XUngrabServer(XToolkit.getDisplay());
}
} finally {
@@ -188,7 +187,7 @@
static boolean processClientMessage(XEvent xev, int screen) {
XClientMessageEvent xce = xev.get_xclient();
if (xce.get_message_type() == XA_MANAGER.getAtom()) {
- if (log.isLoggable(Level.FINE)) log.fine("client messags = " + xce);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("client messags = " + xce);
long timestamp = xce.get_data(0);
long atom = xce.get_data(1);
long owner = xce.get_data(2);
@@ -295,7 +294,7 @@
synchronized void dispatchSelectionChanged( XPropertyEvent ev, int screen) {
- if (log.isLoggable(Level.FINE)) log.fine("Selection Changed : Screen = " + screen + "Event =" + ev);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Selection Changed : Screen = " + screen + "Event =" + ev);
if (listeners != null) {
Iterator iter = listeners.iterator();
while (iter.hasNext()) {
@@ -306,7 +305,7 @@
}
synchronized void dispatchOwnerDeath(XDestroyWindowEvent de, int screen) {
- if (log.isLoggable(Level.FINE)) log.fine("Owner dead : Screen = " + screen + "Event =" + de);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Owner dead : Screen = " + screen + "Event =" + de);
if (listeners != null) {
Iterator iter = listeners.iterator();
while (iter.hasNext()) {
@@ -318,7 +317,7 @@
}
void dispatchSelectionEvent(XEvent xev, int screen) {
- if (log.isLoggable(Level.FINE)) log.fine("Event =" + xev);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Event =" + xev);
if (xev.get_type() == XConstants.DestroyNotify) {
XDestroyWindowEvent de = xev.get_xdestroywindow();
dispatchOwnerDeath( de, screen);
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,7 +30,7 @@
import java.lang.reflect.Field;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.SunToolkit;
public class XMenuBarPeer extends XBaseMenuWindow implements MenuBarPeer {
@@ -41,7 +41,7 @@
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XMenuBarPeer");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMenuBarPeer");
/*
* Primary members
@@ -533,7 +533,7 @@
*/
public void handleKeyPress(XEvent xev) {
XKeyEvent xkey = xev.get_xkey();
- if (log.isLoggable(Level.FINE)) log.fine(xkey.toString());
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine(xkey.toString());
if (isEventDisabled(xev)) {
return;
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -28,8 +28,6 @@
import java.awt.peer.*;
import java.awt.event.*;
-import java.util.logging.*;
-
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
@@ -43,8 +41,6 @@
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XMenuItemPeer");
-
/*
* Primary members
*/
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,7 +29,7 @@
import java.lang.reflect.Field;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.SunToolkit;
public class XMenuPeer extends XMenuItemPeer implements MenuPeer {
@@ -39,7 +39,7 @@
* Data members
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XMenuPeer");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMenuPeer");
/**
* Window that correspond to this menu
@@ -122,7 +122,7 @@
* for adding separators
*/
public void addSeparator() {
- if (log.isLoggable(Level.FINER)) log.finer("addSeparator is not implemented");
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("addSeparator is not implemented");
}
public void addItem(MenuItem item) {
@@ -130,7 +130,7 @@
if (menuWindow != null) {
menuWindow.addItem(item);
} else {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("Attempt to use XMenuWindowPeer without window");
}
}
@@ -141,7 +141,7 @@
if (menuWindow != null) {
menuWindow.delItem(index);
} else {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("Attempt to use XMenuWindowPeer without window");
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -32,7 +32,7 @@
import java.awt.geom.Point2D;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
public class XMenuWindow extends XBaseMenuWindow {
@@ -42,7 +42,7 @@
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XMenuWindow");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMenuWindow");
/*
* Primary members
@@ -399,7 +399,7 @@
if (!isCreated()) {
return;
}
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("showing menu window + " + getWindow() + " at " + bounds);
}
XToolkit.awtLock();
--- a/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,14 +27,13 @@
package sun.awt.X11;
import java.awt.Frame;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProtocol
{
- private final static Logger log = Logger.getLogger("sun.awt.X11.XNETProtocol");
- private final static Logger iconLog = Logger.getLogger("sun.awt.X11.icon.XNETProtocol");
- private static Logger stateLog = Logger.getLogger("sun.awt.X11.states.XNETProtocol");
+ private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XNETProtocol");
+ private final static PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XNETProtocol");
+ private static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states.XNETProtocol");
/**
* XStateProtocol
@@ -44,7 +43,7 @@
}
public void setState(XWindowPeer window, int state) {
- if (log.isLoggable(Level.FINE)) log.fine("Setting state of " + window + " to " + state);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting state of " + window + " to " + state);
if (window.isShowing()) {
requestState(window, state);
} else {
@@ -54,7 +53,7 @@
private void setInitialState(XWindowPeer window, int state) {
XAtomList old_state = window.getNETWMState();
- log.log(Level.FINE, "Current state of the window {0} is {1}", new Object[] {window, old_state});
+ log.fine("Current state of the window {0} is {1}", window, old_state);
if ((state & Frame.MAXIMIZED_VERT) != 0) {
old_state.add(XA_NET_WM_STATE_MAXIMIZED_VERT);
} else {
@@ -65,7 +64,7 @@
} else {
old_state.remove(XA_NET_WM_STATE_MAXIMIZED_HORZ);
}
- log.log(Level.FINE, "Setting initial state of the window {0} to {1}", new Object[] {window, old_state});
+ log.fine("Setting initial state of the window {0} to {1}", window, old_state);
window.setNETWMState(old_state);
}
@@ -98,7 +97,7 @@
default:
return;
}
- if (log.isLoggable(Level.FINE)) log.fine("Requesting state on " + window + " for " + state);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Requesting state on " + window + " for " + state);
req.set_type((int)XConstants.ClientMessage);
req.set_window(window.getWindow());
req.set_message_type(XA_NET_WM_STATE.getAtom());
@@ -180,7 +179,7 @@
req.set_data(1, state.getAtom());
// Fix for 6735584: req.data[2] must be set to 0 when only one property is changed
req.set_data(2, 0);
- log.log(Level.FINE, "Setting _NET_STATE atom {0} on {1} for {2}", new Object[] {state, window, Boolean.valueOf(isAdd)});
+ log.fine("Setting _NET_STATE atom {0} on {1} for {2}", state, window, Boolean.valueOf(isAdd));
XToolkit.awtLock();
try {
XlibWrapper.XSendEvent(XToolkit.getDisplay(),
@@ -205,20 +204,20 @@
* @param reset Indicates operation, 'set' if false, 'reset' if true
*/
private void setStateHelper(XWindowPeer window, XAtom state, boolean set) {
- log.log(Level.FINER, "Window visibility is: withdrawn={0}, visible={1}, mapped={2} showing={3}",
- new Object[] {Boolean.valueOf(window.isWithdrawn()), Boolean.valueOf(window.isVisible()),
- Boolean.valueOf(window.isMapped()), Boolean.valueOf(window.isShowing())});
+ log.finer("Window visibility is: withdrawn={0}, visible={1}, mapped={2} showing={3}",
+ Boolean.valueOf(window.isWithdrawn()), Boolean.valueOf(window.isVisible()),
+ Boolean.valueOf(window.isMapped()), Boolean.valueOf(window.isShowing()));
if (window.isShowing()) {
requestState(window, state, set);
} else {
XAtomList net_wm_state = window.getNETWMState();
- log.log(Level.FINE, "Current state on {0} is {1}", new Object[] {window, net_wm_state});
+ log.finer("Current state on {0} is {1}", window, net_wm_state);
if (!set) {
net_wm_state.remove(state);
} else {
net_wm_state.add(state);
}
- log.log(Level.FINE, "Setting states on {0} to {1}", new Object[] {window, net_wm_state});
+ log.fine("Setting states on {0} to {1}", window, net_wm_state);
window.setNETWMState(net_wm_state);
}
XToolkit.XSync();
@@ -272,7 +271,7 @@
}
NetWindow = checkAnchor(XA_NET_SUPPORTING_WM_CHECK, XAtom.XA_WINDOW);
supportChecked = true;
- if (log.isLoggable(Level.FINE)) log.fine("### " + this + " is active: " + (NetWindow != 0));
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " is active: " + (NetWindow != 0));
}
boolean active() {
@@ -309,7 +308,7 @@
if (net_wm_name_string == null) {
return false;
}
- if (log.isLoggable(Level.FINE)) log.fine("### WM_NAME = " + net_wm_name_string);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### WM_NAME = " + net_wm_name_string);
return net_wm_name_string.startsWith(name);
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -33,7 +33,7 @@
import java.lang.reflect.InvocationTargetException;
import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.SunToolkit;
@@ -44,7 +44,7 @@
* Data members
*
************************************************/
- private static Logger log = Logger.getLogger("sun.awt.X11.XBaseMenuWindow");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XBaseMenuWindow");
/*
* Primary members
@@ -146,7 +146,7 @@
* for adding separators
*/
public void addSeparator() {
- if (log.isLoggable(Level.FINER)) log.finer("addSeparator is not implemented");
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("addSeparator is not implemented");
}
/*
@@ -382,7 +382,7 @@
*/
public void handleKeyPress(XEvent xev) {
XKeyEvent xkey = xev.get_xkey();
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(xkey.toString());
}
if (isEventDisabled(xev)) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java Mon Oct 05 18:22:00 2009 -0700
@@ -25,12 +25,12 @@
package sun.awt.X11;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import java.util.*;
class XProtocol {
- private final static Logger log = Logger.getLogger("sun.awt.X11.XProtocol");
+ private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XProtocol");
private Map<XAtom, XAtomList> atomToList = new HashMap<XAtom, XAtomList>();
private Map<XAtom, Long> atomToAnchor = new HashMap<XAtom, Long>();
@@ -54,7 +54,7 @@
} finally {
if (firstCheck) {
firstCheck = false;
- log.log(Level.FINE, "{0}:{1} supports {2}", new Object[] {this, listName, protocols});
+ log.fine("{0}:{1} supports {2}", this, listName, protocols);
}
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java Mon Oct 05 18:22:00 2009 -0700
@@ -28,11 +28,9 @@
package sun.awt.X11;
import sun.misc.Unsafe;
-import java.util.logging.*;
public class XQueryTree {
private static Unsafe unsafe = XlibWrapper.unsafe;
- private static final Logger log = Logger.getLogger("sun.awt.X11.XQueryTree");
private boolean __executed = false;
long _w;
long root_ptr = unsafe.allocateMemory(Native.getLongSize());
--- a/jdk/src/solaris/classes/sun/awt/X11/XScrollbar.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XScrollbar.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,14 +30,14 @@
import java.awt.image.BufferedImage;
import sun.awt.SunToolkit;
import sun.awt.X11GraphicsConfig;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
/**
* A simple vertical scroll bar.
*/
abstract class XScrollbar {
- private static Logger log = Logger.getLogger("sun.awt.X11.XScrollbar");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XScrollbar");
/**
* The thread that asynchronously tells the scrollbar to scroll.
* @see #startScrolling
@@ -118,7 +118,7 @@
abstract protected void rebuildArrows();
public void setSize(int width, int height) {
- if (log.isLoggable(Level.FINER)) log.finer("Setting scroll bar " + this + " size to " + width + "x" + height);
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("Setting scroll bar " + this + " size to " + width + "x" + height);
this.width = width;
this.height = height;
}
@@ -164,7 +164,7 @@
* @param paintAll paint the whole scrollbar if true, just the thumb is false
*/
void paint(Graphics g, Color colors[], boolean paintAll) {
- if (log.isLoggable(Level.FINER)) log.finer("Painting scrollbar " + this);
+ if (log.isLoggable(PlatformLogger.FINER)) log.finer("Painting scrollbar " + this);
boolean useBufferedImage = false;
Graphics2D g2 = null;
@@ -454,7 +454,7 @@
return;
}
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
String type;
switch (id) {
case MouseEvent.MOUSE_PRESSED:
--- a/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -28,10 +28,10 @@
import java.awt.*;
import java.awt.event.*;
import java.awt.peer.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
class XScrollbarPeer extends XComponentPeer implements ScrollbarPeer, XScrollbarClient {
- private final static Logger log = Logger.getLogger("sun.awt.X11.XScrollbarPeer");
+ private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XScrollbarPeer");
private static final int DEFAULT_LENGTH = 50;
private static final int DEFAULT_WIDTH_SOLARIS = 19;
@@ -162,7 +162,7 @@
public void handleJavaKeyEvent(KeyEvent event) {
super.handleJavaKeyEvent(event);
- if (log.isLoggable(Level.FINEST)) log.finer("KeyEvent on scrollbar: " + event);
+ if (log.isLoggable(PlatformLogger.FINEST)) log.finer("KeyEvent on scrollbar: " + event);
if (!(event.isConsumed()) && event.getID() == KeyEvent.KEY_RELEASED) {
switch(event.getKeyCode()) {
case KeyEvent.VK_UP:
--- a/jdk/src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,14 +27,14 @@
import java.awt.*;
import java.awt.peer.SystemTrayPeer;
-import java.util.logging.Logger;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
import sun.awt.SunToolkit;
import sun.awt.AppContext;
+import sun.util.logging.PlatformLogger;
public class XSystemTrayPeer implements SystemTrayPeer, XMSelectionListener {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XSystemTrayPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XSystemTrayPeer");
SystemTray target;
static XSystemTrayPeer peerInstance; // there is only one SystemTray peer per application
--- a/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -52,12 +52,13 @@
import com.sun.java.swing.plaf.motif.*;
import java.awt.im.InputMethodRequests;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
import sun.awt.CausedFocusEvent;
import sun.awt.ComponentAccessor;
public class XTextFieldPeer extends XComponentPeer implements TextFieldPeer {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XTextField");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XTextField");
String text;
XAWTTextField xtext;
@@ -256,7 +257,7 @@
}
public void setBackground(Color c) {
- if (log.isLoggable(Level.FINE)) log.fine("target="+ target + ", old=" + background + ", new=" + c);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("target="+ target + ", old=" + background + ", new=" + c);
background = c;
if (xtext != null) {
xtext.setBackground(c);
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Mon Oct 05 18:22:00 2009 -0700
@@ -46,22 +46,22 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.swing.LookAndFeel;
import javax.swing.UIDefaults;
import sun.awt.*;
+import sun.font.FontConfigManager;
import sun.font.FontManager;
import sun.misc.PerformanceLogger;
import sun.print.PrintJob2D;
import sun.security.action.GetBooleanAction;
+import sun.util.logging.PlatformLogger;
public final class XToolkit extends UNIXToolkit implements Runnable {
- private static Logger log = Logger.getLogger("sun.awt.X11.XToolkit");
- private static Logger eventLog = Logger.getLogger("sun.awt.X11.event.XToolkit");
- private static final Logger timeoutTaskLog = Logger.getLogger("sun.awt.X11.timeoutTask.XToolkit");
- private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XToolkit");
- private static final Logger backingStoreLog = Logger.getLogger("sun.awt.X11.backingStore.XToolkit");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XToolkit");
+ private static final PlatformLogger eventLog = PlatformLogger.getLogger("sun.awt.X11.event.XToolkit");
+ private static final PlatformLogger timeoutTaskLog = PlatformLogger.getLogger("sun.awt.X11.timeoutTask.XToolkit");
+ private static final PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XToolkit");
+ private static final PlatformLogger backingStoreLog = PlatformLogger.getLogger("sun.awt.X11.backingStore.XToolkit");
//There is 400 ms is set by default on Windows and 500 by default on KDE and GNOME.
//We use the same hardcoded constant.
@@ -95,6 +95,8 @@
*/
private XSettings xs;
+ private FontConfigManager fcManager = new FontConfigManager();
+
static int arrowCursor;
static TreeMap winMap = new TreeMap();
static HashMap specialPeerMap = new HashMap();
@@ -178,13 +180,13 @@
// Default XErrorHandler may just terminate the process. Don't call it.
// return XlibWrapper.CallErrorHandler(saved_error_handler, display, error.pData);
}
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "Unhandled XErrorEvent: " +
- "id=" + error.get_resourceid() + ", " +
- "serial=" + error.get_serial() + ", " +
- "ec=" + error.get_error_code() + ", " +
- "rc=" + error.get_request_code() + ", " +
- "mc=" + error.get_minor_code());
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("Unhandled XErrorEvent: " +
+ "id=" + error.get_resourceid() + ", " +
+ "serial=" + error.get_serial() + ", " +
+ "ec=" + error.get_error_code() + ", " +
+ "rc=" + error.get_request_code() + ", " +
+ "mc=" + error.get_minor_code());
}
return 0;
}
@@ -203,7 +205,7 @@
return SAVED_ERROR_HANDLER(display, event);
}
} catch (Throwable z) {
- log.log(Level.FINE, "Error in GlobalErrorHandler", z);
+ log.fine("Error in GlobalErrorHandler", z);
}
return 0;
}
@@ -321,7 +323,7 @@
((XAWTXSettings)xs).dispose();
}
freeXKB();
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
dumpPeers();
}
@@ -564,8 +566,8 @@
}
static void processException(Throwable thr) {
- if (log.isLoggable(Level.WARNING)) {
- log.log(Level.WARNING, "Exception on Toolkit thread", thr);
+ if (log.isLoggable(PlatformLogger.WARNING)) {
+ log.warning("Exception on Toolkit thread", thr);
}
}
@@ -626,8 +628,8 @@
continue;
}
- if (eventLog.isLoggable(Level.FINER)) {
- eventLog.log(Level.FINER, "{0}", ev);
+ if (eventLog.isLoggable(PlatformLogger.FINER)) {
+ eventLog.finer("{0}", ev);
}
// Check if input method consumes the event
@@ -642,13 +644,13 @@
}
}
}
- if( keyEventLog.isLoggable(Level.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
+ if( keyEventLog.isLoggable(PlatformLogger.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
keyEventLog.fine("before XFilterEvent:"+ev);
}
if (XlibWrapper.XFilterEvent(ev.getPData(), w)) {
continue;
}
- if( keyEventLog.isLoggable(Level.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
+ if( keyEventLog.isLoggable(PlatformLogger.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
keyEventLog.fine("after XFilterEvent:"+ev); // IS THIS CORRECT?
}
@@ -1335,7 +1337,7 @@
}
static void dumpPeers() {
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("Mapped windows:");
Iterator iter = winMap.entrySet().iterator();
while (iter.hasNext()) {
@@ -1431,7 +1433,7 @@
}
} catch (InterruptedException ie) {
// Note: the returned timeStamp can be incorrect in this case.
- if (log.isLoggable(Level.FINE)) log.fine("Catched exception, timeStamp may not be correct (ie = " + ie + ")");
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Catched exception, timeStamp may not be correct (ie = " + ie + ")");
}
} finally {
awtUnlock();
@@ -1530,7 +1532,7 @@
*/
if (desktopProperties.get(SunToolkit.DESKTOPFONTHINTS) == null) {
if (XWM.isKDE2()) {
- Object hint = FontManager.getFontConfigAAHint();
+ Object hint = fcManager.getFontConfigAAHint();
if (hint != null) {
/* set the fontconfig/KDE property so that
* getDesktopHints() below will see it
@@ -1764,7 +1766,7 @@
} finally {
awtUnlock();
}
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine("metaMask = " + metaMask);
log.fine("altMask = " + altMask);
log.fine("numLockMask = " + numLockMask);
@@ -1786,11 +1788,11 @@
}
awtLock();
try {
- if (timeoutTaskLog.isLoggable(Level.FINER)) {
+ if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
timeoutTaskLog.finer("Removing task " + task);
}
if (timeoutTasks == null) {
- if (timeoutTaskLog.isLoggable(Level.FINER)) {
+ if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
timeoutTaskLog.finer("Task is not scheduled");
}
return;
@@ -1837,11 +1839,11 @@
awtLock();
try {
- if (timeoutTaskLog.isLoggable(Level.FINER)) {
- timeoutTaskLog.log(Level.FINER, "XToolkit.schedule(): current time={0}" +
- "; interval={1}" +
- "; task being added={2}" + "; tasks before addition={3}", new Object[] {
- Long.valueOf(System.currentTimeMillis()), Long.valueOf(interval), task, timeoutTasks});
+ if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
+ timeoutTaskLog.finer("XToolkit.schedule(): current time={0}" +
+ "; interval={1}" +
+ "; task being added={2}" + "; tasks before addition={3}",
+ Long.valueOf(System.currentTimeMillis()), Long.valueOf(interval), task, timeoutTasks);
}
if (timeoutTasks == null) {
@@ -1884,9 +1886,9 @@
* Called from run() under awtLock.
*/
private static void callTimeoutTasks() {
- if (timeoutTaskLog.isLoggable(Level.FINER)) {
- timeoutTaskLog.log(Level.FINER, "XToolkit.callTimeoutTasks(): current time={0}" +
- "; tasks={1}", new Object[] {Long.valueOf(System.currentTimeMillis()), timeoutTasks});
+ if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
+ timeoutTaskLog.finer("XToolkit.callTimeoutTasks(): current time={0}" +
+ "; tasks={1}", Long.valueOf(System.currentTimeMillis()), timeoutTasks);
}
if (timeoutTasks == null || timeoutTasks.isEmpty()) {
@@ -1902,9 +1904,9 @@
for (Iterator iter = tasks.iterator(); iter.hasNext();) {
Runnable task = (Runnable)iter.next();
- if (timeoutTaskLog.isLoggable(Level.FINER)) {
- timeoutTaskLog.log(Level.FINER, "XToolkit.callTimeoutTasks(): current time={0}" +
- "; about to run task={1}", new Object[] {Long.valueOf(currentTime), task});
+ if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
+ timeoutTaskLog.finer("XToolkit.callTimeoutTasks(): current time={0}" +
+ "; about to run task={1}", Long.valueOf(currentTime), task);
}
try {
@@ -1977,7 +1979,7 @@
*/
long current_time_utc = System.currentTimeMillis();
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("reset_time=" + reset_time_utc + ", current_time=" + current_time_utc
+ ", server_offset=" + server_offset + ", wrap_time=" + WRAP_TIME_MILLIS);
}
@@ -1986,7 +1988,7 @@
reset_time_utc = System.currentTimeMillis() - getCurrentServerTime();
}
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
log.finer("result = " + (reset_time_utc + server_offset));
}
return reset_time_utc + server_offset;
@@ -2071,14 +2073,14 @@
if (prop == null) {
backingStoreType = XConstants.NotUseful;
- if (backingStoreLog.isLoggable(Level.CONFIG)) {
+ if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
backingStoreLog.config("The system property sun.awt.backingStore is not set" +
", by default backingStore=NotUseful");
}
return;
}
- if (backingStoreLog.isLoggable(Level.CONFIG)) {
+ if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
backingStoreLog.config("The system property sun.awt.backingStore is " + prop);
}
prop = prop.toLowerCase();
@@ -2090,7 +2092,7 @@
backingStoreType = XConstants.NotUseful;
}
- if (backingStoreLog.isLoggable(Level.CONFIG)) {
+ if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
backingStoreLog.config("backingStore(as provided by the system property)=" +
( backingStoreType == XConstants.NotUseful ? "NotUseful"
: backingStoreType == XConstants.WhenMapped ?
@@ -2100,7 +2102,7 @@
if (sun.java2d.x11.X11SurfaceData.isDgaAvailable()) {
backingStoreType = XConstants.NotUseful;
- if (backingStoreLog.isLoggable(Level.CONFIG)) {
+ if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
backingStoreLog.config("DGA is available, backingStore=NotUseful");
}
@@ -2115,7 +2117,7 @@
== XConstants.NotUseful) {
backingStoreType = XConstants.NotUseful;
- if (backingStoreLog.isLoggable(Level.CONFIG)) {
+ if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
backingStoreLog.config("Backing store is not available on the screen " +
i + ", backingStore=NotUseful");
}
@@ -2361,7 +2363,7 @@
// Wait for selection notify for oops on win
long event_number = getEventNumber();
XAtom atom = XAtom.get("WM_S0");
- eventLog.log(Level.FINER, "WM_S0 selection owner {0}", new Object[] {XlibWrapper.XGetSelectionOwner(getDisplay(), atom.getAtom())});
+ eventLog.finer("WM_S0 selection owner {0}", XlibWrapper.XGetSelectionOwner(getDisplay(), atom.getAtom()));
XlibWrapper.XConvertSelection(getDisplay(), atom.getAtom(),
XAtom.get("VERSION").getAtom(), oops.getAtom(),
win.getWindow(), XConstants.CurrentTime);
@@ -2387,7 +2389,7 @@
// If selection update failed we can simply wait some time
// hoping some events will arrive
awtUnlock();
- eventLog.log(Level.FINEST, "Emergency sleep");
+ eventLog.finest("Emergency sleep");
try {
Thread.sleep(WORKAROUND_SLEEP);
} catch (InterruptedException ie) {
@@ -2399,7 +2401,7 @@
return getEventNumber() - event_number > 2;
} finally {
removeEventDispatcher(win.getWindow(), oops_waiter);
- eventLog.log(Level.FINER, "Exiting syncNativeQueue");
+ eventLog.finer("Exiting syncNativeQueue");
awtUnlock();
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -31,18 +31,17 @@
import sun.awt.*;
import java.awt.image.*;
import java.text.BreakIterator;
-import java.util.logging.Logger;
-import java.util.logging.Level;
import java.util.concurrent.ArrayBlockingQueue;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.lang.reflect.InvocationTargetException;
+import sun.util.logging.PlatformLogger;
public class XTrayIconPeer implements TrayIconPeer,
InfoWindow.Balloon.LiveArguments,
InfoWindow.Tooltip.LiveArguments
{
- private static final Logger ctrLog = Logger.getLogger("sun.awt.X11.XTrayIconPeer.centering");
+ private static final PlatformLogger ctrLog = PlatformLogger.getLogger("sun.awt.X11.XTrayIconPeer.centering");
TrayIcon target;
TrayIconEventProxy eventProxy;
@@ -107,9 +106,9 @@
XConfigureEvent ce = ev.get_xconfigure();
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}: {1}x{2}+{3}+{4} (old: {5}+{6})",
- new Object[] { XTrayIconPeer.this, ce.get_width(), ce.get_height(),
- ce.get_x(), ce.get_y(), old_x, old_y });
+ ctrLog.fine("ConfigureNotify on parent of {0}: {1}x{2}+{3}+{4} (old: {5}+{6})",
+ XTrayIconPeer.this, ce.get_width(), ce.get_height(),
+ ce.get_x(), ce.get_y(), old_x, old_y);
// A workaround for Gnome/Metacity (it doesn't affect the behaviour on KDE).
// On Metacity the EmbeddedFrame's parent window bounds are larger
@@ -129,14 +128,14 @@
// If both the height and the width differ from the fixed size then WM
// must level at least one side to the fixed size. For some reason it may take
// a few hops (even after reparenting) and we have to skip the intermediate ones.
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Skipping as intermediate resizing.",
- XTrayIconPeer.this);
+ ctrLog.fine("ConfigureNotify on parent of {0}. Skipping as intermediate resizing.",
+ XTrayIconPeer.this);
return;
} else if (ce.get_height() > TRAY_ICON_HEIGHT) {
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Centering by \"Y\".",
- XTrayIconPeer.this);
+ ctrLog.fine("ConfigureNotify on parent of {0}. Centering by \"Y\".",
+ XTrayIconPeer.this);
XlibWrapper.XMoveResizeWindow(XToolkit.getDisplay(), eframeParentID,
ce.get_x(),
@@ -148,8 +147,8 @@
} else if (ce.get_width() > TRAY_ICON_WIDTH) {
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Centering by \"X\".",
- XTrayIconPeer.this);
+ ctrLog.fine("ConfigureNotify on parent of {0}. Centering by \"X\".",
+ XTrayIconPeer.this);
XlibWrapper.XMoveResizeWindow(XToolkit.getDisplay(), eframeParentID,
ce.get_x()+ce.get_width()/2 - TRAY_ICON_WIDTH/2,
@@ -166,8 +165,8 @@
if (ex_height != 0) {
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Move detected. Centering by \"Y\".",
- XTrayIconPeer.this);
+ ctrLog.fine("ConfigureNotify on parent of {0}. Move detected. Centering by \"Y\".",
+ XTrayIconPeer.this);
XlibWrapper.XMoveWindow(XToolkit.getDisplay(), eframeParentID,
ce.get_x(),
@@ -175,15 +174,15 @@
} else if (ex_width != 0) {
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Move detected. Centering by \"X\".",
- XTrayIconPeer.this);
+ ctrLog.fine("ConfigureNotify on parent of {0}. Move detected. Centering by \"X\".",
+ XTrayIconPeer.this);
XlibWrapper.XMoveWindow(XToolkit.getDisplay(), eframeParentID,
ce.get_x() + ex_width/2 - TRAY_ICON_WIDTH/2,
ce.get_y());
} else {
- ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Move detected. Skipping.",
- XTrayIconPeer.this);
+ ctrLog.fine("ConfigureNotify on parent of {0}. Move detected. Skipping.",
+ XTrayIconPeer.this);
}
}
old_x = ce.get_x();
--- a/jdk/src/solaris/classes/sun/awt/X11/XWINProtocol.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWINProtocol.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,11 +27,10 @@
package sun.awt.X11;
import java.awt.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
class XWINProtocol extends XProtocol implements XStateProtocol, XLayerProtocol {
- final static Logger log = Logger.getLogger("sun.awt.X11.XWINProtocol");
+ final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWINProtocol");
/* Gnome WM spec */
XAtom XA_WIN_SUPPORTING_WM_CHECK = XAtom.get("_WIN_SUPPORTING_WM_CHECK");
@@ -64,7 +63,7 @@
req.set_format(32);
req.set_data(0, (WIN_STATE_MAXIMIZED_HORIZ | WIN_STATE_MAXIMIZED_VERT));
req.set_data(1, win_state);
- if (log.isLoggable(Level.FINE)) log.fine("Sending WIN_STATE to root to change the state to " + win_state);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Sending WIN_STATE to root to change the state to " + win_state);
try {
XToolkit.awtLock();
XlibWrapper.XSendEvent(XToolkit.getDisplay(),
@@ -112,7 +111,7 @@
win_state &= ~WIN_STATE_MAXIMIZED_HORIZ;
}
if ((old_win_state ^ win_state) != 0) {
- if (log.isLoggable(Level.FINE)) log.fine("Setting WIN_STATE on " + window + " to change the state to " + win_state);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting WIN_STATE on " + window + " to change the state to " + win_state);
XA_WIN_STATE.setCard32Property(window, win_state);
}
}
@@ -157,7 +156,7 @@
req.set_data(0, layer == LAYER_NORMAL ? WIN_LAYER_NORMAL : WIN_LAYER_ONTOP);
req.set_data(1, 0);
req.set_data(2, 0);
- if (log.isLoggable(Level.FINE)) log.fine("Setting layer " + layer + " by root message : " + req);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting layer " + layer + " by root message : " + req);
XToolkit.awtLock();
try {
XlibWrapper.XSendEvent(XToolkit.getDisplay(),
@@ -172,7 +171,7 @@
}
req.dispose();
} else {
- if (log.isLoggable(Level.FINE)) log.fine("Setting layer property to " + layer);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting layer property to " + layer);
XA_WIN_LAYER.setCard32Property(window, layer == LAYER_NORMAL ? WIN_LAYER_NORMAL : WIN_LAYER_ONTOP);
}
}
@@ -198,7 +197,7 @@
}
WinWindow = checkAnchor(XA_WIN_SUPPORTING_WM_CHECK, XAtom.XA_CARDINAL);
supportChecked = true;
- if (log.isLoggable(Level.FINE)) log.fine("### " + this + " is active: " + (WinWindow != 0));
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " is active: " + (WinWindow != 0));
}
boolean active() {
@@ -207,13 +206,13 @@
}
boolean doStateProtocol() {
boolean res = active() && checkProtocol(XA_WIN_PROTOCOLS, XA_WIN_STATE);
- if (log.isLoggable(Level.FINE)) log.fine("### " + this + " supports state: " + res);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " supports state: " + res);
return res;
}
boolean doLayerProtocol() {
boolean res = active() && checkProtocol(XA_WIN_PROTOCOLS, XA_WIN_LAYER);
- if (log.isLoggable(Level.FINE)) log.fine("### " + this + " supports layer: " + res);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " supports layer: " + res);
return res;
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XWM.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWM.java Mon Oct 05 18:22:00 2009 -0700
@@ -37,10 +37,10 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import sun.util.logging.PlatformLogger;
+
/**
* Class incapsulating knowledge about window managers in general
@@ -49,9 +49,9 @@
final class XWM
{
- private final static Logger log = Logger.getLogger("sun.awt.X11.XWM");
- private final static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XWM");
- private final static Logger stateLog = Logger.getLogger("sun.awt.X11.states.XWM");
+ private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWM");
+ private final static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XWM");
+ private final static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states.XWM");
static final XAtom XA_MWM_HINTS = new XAtom();
@@ -142,7 +142,7 @@
XWM(int WMID) {
this.WMID = WMID;
initializeProtocols();
- if (log.isLoggable(Level.FINE)) log.fine("Window manager: " + toString());
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Window manager: " + toString());
}
int getID() {
return WMID;
@@ -246,7 +246,7 @@
* having a window manager running. I.e. it does not reparent
* top level shells.
*/
- if (insLog.isLoggable(Level.FINE)) {
+ if (insLog.isLoggable(PlatformLogger.FINE)) {
insLog.finer("eXcursion means NO_WM");
}
return true;
@@ -264,7 +264,7 @@
long selection_owner =
XlibWrapper.XGetSelectionOwner(XToolkit.getDisplay(),
XAtom.get(selection_name).getAtom());
- if (insLog.isLoggable(Level.FINE)) {
+ if (insLog.isLoggable(PlatformLogger.FINE)) {
insLog.finer("selection owner of " + selection_name
+ " is " + selection_owner);
}
@@ -293,7 +293,7 @@
XToolkit.getDefaultRootWindow(),
XConstants.CWEventMask,
substruct.pData);
- if (insLog.isLoggable(Level.FINE)) {
+ if (insLog.isLoggable(PlatformLogger.FINE)) {
insLog.finer("It looks like there is no WM thus NO_WM");
}
}
@@ -355,7 +355,7 @@
return 0;
}
} catch (Exception e) {
- if (log.isLoggable(Level.FINER)) {
+ if (log.isLoggable(PlatformLogger.FINER)) {
e.printStackTrace();
}
return 0;
@@ -401,7 +401,7 @@
static boolean isCDE() {
if (!XA_DT_SM_WINDOW_INFO.isInterned()) {
- log.log(Level.FINER, "{0} is not interned", new Object[] {XA_DT_SM_WINDOW_INFO});
+ log.finer("{0} is not interned", XA_DT_SM_WINDOW_INFO);
return false;
}
@@ -432,7 +432,7 @@
/* Now check that this window has _DT_SM_STATE_INFO (ignore contents) */
if (!XA_DT_SM_STATE_INFO.isInterned()) {
- log.log(Level.FINER, "{0} is not interned", new Object[] {XA_DT_SM_STATE_INFO});
+ log.finer("{0} is not interned", XA_DT_SM_STATE_INFO);
return false;
}
WindowPropertyGetter getter2 =
@@ -596,7 +596,7 @@
*/
if (!XA_ICEWM_WINOPTHINT.isInterned()) {
- log.log(Level.FINER, "{0} is not interned", new Object[] {XA_ICEWM_WINOPTHINT});
+ log.finer("{0} is not interned", XA_ICEWM_WINOPTHINT);
return false;
}
@@ -629,7 +629,7 @@
*/
static boolean isIceWM() {
if (!XA_ICEWM_WINOPTHINT.isInterned()) {
- log.log(Level.FINER, "{0} is not interned", new Object[] {XA_ICEWM_WINOPTHINT});
+ log.finer("{0} is not interned", XA_ICEWM_WINOPTHINT);
return false;
}
@@ -694,7 +694,7 @@
return wm;
}
static int getWMID() {
- if (insLog.isLoggable(Level.FINEST)) {
+ if (insLog.isLoggable(PlatformLogger.FINEST)) {
insLog.finest("awt_wmgr = " + awt_wmgr);
}
/*
@@ -718,7 +718,7 @@
// Later, WM will initialize its own version of protocol
XNETProtocol l_net_protocol = g_net_protocol = new XNETProtocol();
l_net_protocol.detect();
- if (log.isLoggable(Level.FINE) && l_net_protocol.active()) {
+ if (log.isLoggable(PlatformLogger.FINE) && l_net_protocol.active()) {
log.fine("_NET_WM_NAME is " + l_net_protocol.getWMName());
}
XWINProtocol win = g_win_protocol = new XWINProtocol();
@@ -798,7 +798,7 @@
}
hints.set_flags(hints.get_flags() & ~mask);
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
XlibWrapper.XSetWMNormalHints(XToolkit.getDisplay(),
window.getWindow(),
hints.pData);
@@ -855,7 +855,7 @@
XAtomList decorDel = new XAtomList();
decorations = normalizeMotifDecor(decorations);
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting OL_DECOR to " + Integer.toBinaryString(decorations));
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting OL_DECOR to " + Integer.toBinaryString(decorations));
if ((decorations & MWMConstants.MWM_DECOR_TITLE) == 0) {
decorDel.add(XA_OL_DECOR_HEADER);
}
@@ -872,7 +872,7 @@
insLog.finer("Deleting OL_DECOR");
XA_OL_DECOR_DEL.DeleteProperty(window);
} else {
- if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting OL_DECOR to " + decorDel);
+ if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting OL_DECOR to " + decorDel);
XA_OL_DECOR_DEL.setAtomListProperty(window, decorDel);
}
}
@@ -900,7 +900,7 @@
hints.set_functions(functions);
hints.set_decorations(decorations);
- if (stateLog.isLoggable(Level.FINER)) stateLog.finer("Setting MWM_HINTS to " + hints);
+ if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("Setting MWM_HINTS to " + hints);
window.setMWMHints(hints);
}
@@ -962,7 +962,7 @@
* Make specified shell resizable.
*/
static void setShellResizable(XDecoratedPeer window) {
- if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell resizable " + window);
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell resizable " + window);
XToolkit.awtLock();
try {
Rectangle shellBounds = window.getShellBounds();
@@ -992,7 +992,7 @@
static void setShellNotResizable(XDecoratedPeer window, WindowDimensions newDimensions, Rectangle shellBounds,
boolean justChangeSize)
{
- if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting non-resizable shell " + window + ", dimensions " + newDimensions +
+ if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting non-resizable shell " + window + ", dimensions " + newDimensions +
", shellBounds " + shellBounds +", just change size: " + justChangeSize);
XToolkit.awtLock();
try {
@@ -1285,7 +1285,7 @@
res = defaultInsets;
}
}
- if (insLog.isLoggable(Level.FINEST)) insLog.finest("WM guessed insets: " + res);
+ if (insLog.isLoggable(PlatformLogger.FINEST)) insLog.finest("WM guessed insets: " + res);
return res;
}
/*
@@ -1354,7 +1354,7 @@
XNETProtocol net_protocol = getWM().getNETProtocol();
if (net_protocol != null && net_protocol.active()) {
Insets insets = getInsetsFromProp(window, XA_NET_FRAME_EXTENTS);
- insLog.log(Level.FINE, "_NET_FRAME_EXTENTS: {0}", insets);
+ insLog.fine("_NET_FRAME_EXTENTS: {0}", insets);
if (insets != null) {
return insets;
@@ -1495,7 +1495,7 @@
* [mwm, e!, kwin, fvwm2 ... ]
*/
Insets correctWM = XWM.getInsetsFromExtents(window);
- insLog.log(Level.FINER, "Got insets from property: {0}", correctWM);
+ insLog.finer("Got insets from property: {0}", correctWM);
if (correctWM == null) {
correctWM = new Insets(0,0,0,0);
@@ -1556,7 +1556,7 @@
}
case XWM.OTHER_WM:
default: { /* this is very similar to the E! case above */
- insLog.log(Level.FINEST, "Getting correct insets for OTHER_WM/default, parent: {0}", parent);
+ insLog.finest("Getting correct insets for OTHER_WM/default, parent: {0}", parent);
syncTopLevelPos(parent, lwinAttr);
int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
window, lwinAttr.pData);
@@ -1583,8 +1583,8 @@
&& lwinAttr.get_width()+2*lwinAttr.get_border_width() == pattr.get_width()
&& lwinAttr.get_height()+2*lwinAttr.get_border_width() == pattr.get_height())
{
- insLog.log(Level.FINEST, "Double reparenting detected, pattr({2})={0}, lwinAttr({3})={1}",
- new Object[] {lwinAttr, pattr, parent, window});
+ insLog.finest("Double reparenting detected, pattr({2})={0}, lwinAttr({3})={1}",
+ lwinAttr, pattr, parent, window);
lwinAttr.set_x(pattr.get_x());
lwinAttr.set_y(pattr.get_y());
lwinAttr.set_border_width(lwinAttr.get_border_width()+pattr.get_border_width());
@@ -1611,8 +1611,8 @@
* widths and inner/outer distinction, so for the time
* being, just ignore it.
*/
- insLog.log(Level.FINEST, "Attrs before calculation: pattr({2})={0}, lwinAttr({3})={1}",
- new Object[] {lwinAttr, pattr, parent, window});
+ insLog.finest("Attrs before calculation: pattr({2})={0}, lwinAttr({3})={1}",
+ lwinAttr, pattr, parent, window);
correctWM = new Insets(lwinAttr.get_y() + lwinAttr.get_border_width(),
lwinAttr.get_x() + lwinAttr.get_border_width(),
pattr.get_height() - (lwinAttr.get_y() + lwinAttr.get_height() + 2*lwinAttr.get_border_width()),
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java Mon Oct 05 18:22:00 2009 -0700
@@ -35,8 +35,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.*;
@@ -46,11 +45,11 @@
import sun.java2d.SurfaceData;
public class XWindow extends XBaseWindow implements X11ComponentPeer {
- private static Logger log = Logger.getLogger("sun.awt.X11.XWindow");
- private static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XWindow");
- private static Logger eventLog = Logger.getLogger("sun.awt.X11.event.XWindow");
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XWindow");
- private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XWindow");
+ private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWindow");
+ private static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XWindow");
+ private static PlatformLogger eventLog = PlatformLogger.getLogger("sun.awt.X11.event.XWindow");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XWindow");
+ private static PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XWindow");
/* If a motion comes in while a multi-click is pending,
* allow a smudge factor so that moving the mouse by a small
* amount does not wipe out the multi-click state variables.
@@ -414,7 +413,7 @@
((Component)e.getSource()).dispatchEvent(e);
}
}, PeerEvent.ULTIMATE_PRIORITY_EVENT);
- if (focusLog.isLoggable(Level.FINER) && (e instanceof FocusEvent)) focusLog.finer("Sending " + e);
+ if (focusLog.isLoggable(PlatformLogger.FINER) && (e instanceof FocusEvent)) focusLog.finer("Sending " + e);
XToolkit.postEvent(XToolkit.targetToAppContext(e.getSource()), pe);
}
@@ -670,7 +669,7 @@
if (isEventDisabled(xev)) {
return;
}
- if (eventLog.isLoggable(Level.FINE)) eventLog.fine(xbe.toString());
+ if (eventLog.isLoggable(PlatformLogger.FINE)) eventLog.fine(xbe.toString());
long when;
int modifiers;
boolean popupTrigger = false;
@@ -704,7 +703,7 @@
/*
multiclick checking
*/
- if (eventLog.isLoggable(Level.FINEST)) eventLog.finest("lastWindow = " + lastWindow + ", lastButton "
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) eventLog.finest("lastWindow = " + lastWindow + ", lastButton "
+ lastButton + ", lastTime " + lastTime + ", multiClickTime "
+ XToolkit.getMultiClickTime());
if (lastWindow == this && lastButton == lbutton && (when - lastTime) < XToolkit.getMultiClickTime()) {
@@ -895,7 +894,7 @@
super.handleXCrossingEvent(xev);
XCrossingEvent xce = xev.get_xcrossing();
- if (eventLog.isLoggable(Level.FINEST)) eventLog.finest(xce.toString());
+ if (eventLog.isLoggable(PlatformLogger.FINEST)) eventLog.finest(xce.toString());
if (xce.get_type() == XConstants.EnterNotify) {
enterNotify(xce.get_window());
@@ -997,8 +996,8 @@
Rectangle oldBounds = getBounds();
super.handleConfigureNotifyEvent(xev);
- insLog.log(Level.FINER, "Configure, {0}, event disabled: {1}",
- new Object[] {xev.get_xconfigure(), isEventDisabled(xev)});
+ insLog.finer("Configure, {0}, event disabled: {1}",
+ xev.get_xconfigure(), isEventDisabled(xev));
if (isEventDisabled(xev)) {
return;
}
@@ -1017,7 +1016,7 @@
public void handleMapNotifyEvent(XEvent xev) {
super.handleMapNotifyEvent(xev);
- log.log(Level.FINE, "Mapped {0}", new Object[] {this});
+ log.fine("Mapped {0}", this);
if (isEventDisabled(xev)) {
return;
}
@@ -1074,7 +1073,7 @@
public void handleKeyPress(XEvent xev) {
super.handleKeyPress(xev);
XKeyEvent ev = xev.get_xkey();
- if (eventLog.isLoggable(Level.FINE)) eventLog.fine(ev.toString());
+ if (eventLog.isLoggable(PlatformLogger.FINE)) eventLog.fine(ev.toString());
if (isEventDisabled(xev)) {
return;
}
@@ -1087,14 +1086,14 @@
int unicodeKey = 0;
keysym[0] = XConstants.NoSymbol;
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
logIncomingKeyEvent( ev );
}
if ( //TODO check if there's an active input method instance
// without calling a native method. Is it necessary though?
haveCurrentX11InputMethodInstance()) {
if (x11inputMethodLookupString(ev.pData, keysym)) {
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
keyEventLog.fine("--XWindow.java XIM did process event; return; dec keysym processed:"+(keysym[0])+
"; hex keysym processed:"+Long.toHexString(keysym[0])
);
@@ -1102,7 +1101,7 @@
return;
}else {
unicodeKey = keysymToUnicode( keysym[0], ev.get_state() );
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
keyEventLog.fine("--XWindow.java XIM did NOT process event, hex keysym:"+Long.toHexString(keysym[0])+"\n"+
" unicode key:"+Integer.toHexString((int)unicodeKey));
}
@@ -1112,7 +1111,7 @@
// Produce do-it-yourself keysym and perhaps unicode character.
keysym[0] = xkeycodeToKeysym(ev);
unicodeKey = keysymToUnicode( keysym[0], ev.get_state() );
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
keyEventLog.fine("--XWindow.java XIM is absent; hex keysym:"+Long.toHexString(keysym[0])+"\n"+
" unicode key:"+Integer.toHexString((int)unicodeKey));
}
@@ -1135,7 +1134,7 @@
// is undefined, we still have a guess of what has been engraved on a keytop.
int unicodeFromPrimaryKeysym = keysymToUnicode( xkeycodeToPrimaryKeysym(ev) ,0);
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
keyEventLog.fine(">>>Fire Event:"+
(ev.get_type() == XConstants.KeyPress ? "KEY_PRESSED; " : "KEY_RELEASED; ")+
"jkeycode:decimal="+jkc.getJavaKeycode()+
@@ -1178,7 +1177,7 @@
public void handleKeyRelease(XEvent xev) {
super.handleKeyRelease(xev);
XKeyEvent ev = xev.get_xkey();
- if (eventLog.isLoggable(Level.FINE)) eventLog.fine(ev.toString());
+ if (eventLog.isLoggable(PlatformLogger.FINE)) eventLog.fine(ev.toString());
if (isEventDisabled(xev)) {
return;
}
@@ -1190,7 +1189,7 @@
int unicodeKey = 0;
keysym[0] = XConstants.NoSymbol;
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
logIncomingKeyEvent( ev );
}
// Keysym should be converted to Unicode, if possible and necessary,
@@ -1201,7 +1200,7 @@
if( jkc == null ) {
jkc = new XKeysym.Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN);
}
- if (keyEventLog.isLoggable(Level.FINE)) {
+ if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
keyEventLog.fine(">>>Fire Event:"+
(ev.get_type() == XConstants.KeyPress ? "KEY_PRESSED; " : "KEY_RELEASED; ")+
"jkeycode:decimal="+jkc.getJavaKeycode()+
@@ -1333,10 +1332,10 @@
void updateSizeHints(int x, int y, int width, int height) {
long flags = XUtilConstants.PSize | (isLocationByPlatform() ? 0 : (XUtilConstants.PPosition | XUtilConstants.USPosition));
if (!isResizable()) {
- log.log(Level.FINER, "Window {0} is not resizable", new Object[] {this});
+ log.finer("Window {0} is not resizable", this);
flags |= XUtilConstants.PMinSize | XUtilConstants.PMaxSize;
} else {
- log.log(Level.FINER, "Window {0} is resizable", new Object[] {this});
+ log.finer("Window {0} is resizable", this);
}
setSizeHints(flags, x, y, width, height);
}
@@ -1344,10 +1343,10 @@
void updateSizeHints(int x, int y) {
long flags = isLocationByPlatform() ? 0 : (XUtilConstants.PPosition | XUtilConstants.USPosition);
if (!isResizable()) {
- log.log(Level.FINER, "Window {0} is not resizable", new Object[] {this});
+ log.finer("Window {0} is not resizable", this);
flags |= XUtilConstants.PMinSize | XUtilConstants.PMaxSize | XUtilConstants.PSize;
} else {
- log.log(Level.FINER, "Window {0} is resizable", new Object[] {this});
+ log.finer("Window {0} is resizable", this);
}
setSizeHints(flags, x, y, width, height);
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -41,8 +41,7 @@
import java.util.Set;
import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
import sun.awt.AWTAccessor;
import sun.awt.ComponentAccessor;
@@ -58,11 +57,11 @@
class XWindowPeer extends XPanelPeer implements WindowPeer,
DisplayChangedListener {
- private static final Logger log = Logger.getLogger("sun.awt.X11.XWindowPeer");
- private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XWindowPeer");
- private static final Logger insLog = Logger.getLogger("sun.awt.X11.insets.XWindowPeer");
- private static final Logger grabLog = Logger.getLogger("sun.awt.X11.grab.XWindowPeer");
- private static final Logger iconLog = Logger.getLogger("sun.awt.X11.icon.XWindowPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWindowPeer");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XWindowPeer");
+ private static final PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XWindowPeer");
+ private static final PlatformLogger grabLog = PlatformLogger.getLogger("sun.awt.X11.grab.XWindowPeer");
+ private static final PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XWindowPeer");
// should be synchronized on awtLock
private static Set<XWindowPeer> windows = new HashSet<XWindowPeer>();
@@ -201,7 +200,7 @@
Window owner = t_window.getOwner();
if (owner != null) {
ownerPeer = (XWindowPeer)owner.getPeer();
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.fine("Owner is " + owner);
focusLog.fine("Owner peer is " + ownerPeer);
focusLog.fine("Owner X window " + Long.toHexString(ownerPeer.getWindow()));
@@ -214,7 +213,7 @@
XToolkit.awtLock();
try {
// Set WM_TRANSIENT_FOR
- if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Setting transient on " + Long.toHexString(getWindow())
+ if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.fine("Setting transient on " + Long.toHexString(getWindow())
+ " for " + Long.toHexString(ownerWindow));
setToplevelTransientFor(this, ownerPeer, false, true);
@@ -259,7 +258,7 @@
for (Iterator<Image> i = iconImages.iterator(); i.hasNext(); ) {
Image image = i.next();
if (image == null) {
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("XWindowPeer.updateIconImages: Skipping the image passed into Java because it's null.");
}
continue;
@@ -268,7 +267,7 @@
try {
iconInfo = new XIconInfo(image);
} catch (Exception e){
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("XWindowPeer.updateIconImages: Perhaps the image passed into Java is broken. Skipping this icon.");
}
continue;
@@ -339,9 +338,9 @@
}
}
- if (iconLog.isLoggable(Level.FINEST)) {
- iconLog.log(Level.FINEST, ">>> Length_ of buffer of icons data: " + totalLength +
- ", maximum length: " + MAXIMUM_BUFFER_LENGTH_NET_WM_ICON);
+ if (iconLog.isLoggable(PlatformLogger.FINEST)) {
+ iconLog.finest(">>> Length_ of buffer of icons data: " + totalLength +
+ ", maximum length: " + MAXIMUM_BUFFER_LENGTH_NET_WM_ICON);
}
return result;
@@ -351,10 +350,10 @@
* Dumps each icon from the list
*/
static void dumpIcons(java.util.List<XIconInfo> icons) {
- if (iconLog.isLoggable(Level.FINEST)) {
- iconLog.log(Level.FINEST, ">>> Sizes of icon images:");
+ if (iconLog.isLoggable(PlatformLogger.FINEST)) {
+ iconLog.finest(">>> Sizes of icon images:");
for (Iterator<XIconInfo> i = icons.iterator(); i.hasNext(); ) {
- iconLog.log(Level.FINEST, " {0}", i.next());
+ iconLog.finest(" {0}", i.next());
}
}
}
@@ -631,7 +630,7 @@
return;
}
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("XWindowPeer: Check if we've been moved to a new screen since we're running in Xinerama mode");
}
@@ -668,7 +667,7 @@
}
}
if (newScreenNum != curScreenNum) {
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
log.finest("XWindowPeer: Moved to a new screen");
}
executeDisplayChangedOnEDT(newGC);
@@ -743,7 +742,7 @@
// override_redirect all we can do is check whether our parent
// is active. If it is - we can freely synthesize focus transfer.
// Luckily, this logic is already implemented in requestWindowFocus.
- if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Requesting window focus");
+ if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.fine("Requesting window focus");
requestWindowFocus(time, timeProvided);
}
@@ -769,7 +768,7 @@
public void handleFocusEvent(XEvent xev) {
XFocusChangeEvent xfe = xev.get_xfocus();
FocusEvent fe;
- focusLog.log(Level.FINE, "{0}", new Object[] {xfe});
+ focusLog.fine("{0}", xfe);
if (isEventDisabled(xev)) {
return;
}
@@ -952,7 +951,7 @@
}
private void updateAlwaysOnTop() {
- log.log(Level.FINE, "Promoting always-on-top state {0}", Boolean.valueOf(alwaysOnTop));
+ log.fine("Promoting always-on-top state {0}", Boolean.valueOf(alwaysOnTop));
XWM.getWM().setLayer(this,
alwaysOnTop ?
XLayerProtocol.LAYER_ALWAYS_ON_TOP :
@@ -1388,7 +1387,7 @@
synchronized(getStateLock()) {
XDialogPeer blockerPeer = (XDialogPeer) ComponentAccessor.getPeer(d);
if (blocked) {
- log.log(Level.FINE, "{0} is blocked by {1}", new Object[] { this, blockerPeer});
+ log.fine("{0} is blocked by {1}", this, blockerPeer);
modalBlocker = d;
if (isReparented() || XWM.isNonReparentingWM()) {
@@ -1741,7 +1740,7 @@
}
public void xSetVisible(boolean visible) {
- if (log.isLoggable(Level.FINE)) log.fine("Setting visible on " + this + " to " + visible);
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting visible on " + this + " to " + visible);
XToolkit.awtLock();
try {
this.visible = visible;
@@ -1864,9 +1863,9 @@
public void handleXCrossingEvent(XEvent xev) {
XCrossingEvent xce = xev.get_xcrossing();
- if (grabLog.isLoggable(Level.FINE)) {
- grabLog.log(Level.FINE, "{0}, when grabbed {1}, contains {2}",
- new Object[] {xce, isGrabbed(), containsGlobal(xce.get_x_root(), xce.get_y_root())});
+ if (grabLog.isLoggable(PlatformLogger.FINE)) {
+ grabLog.fine("{0}, when grabbed {1}, contains {2}",
+ xce, isGrabbed(), containsGlobal(xce.get_x_root(), xce.get_y_root()));
}
if (isGrabbed()) {
// When window is grabbed, all events are dispatched to
@@ -1877,7 +1876,7 @@
// since it generates MOUSE_ENTERED/MOUSE_EXITED for frame and dialog.
// (fix for 6390326)
XBaseWindow target = XToolkit.windowToXWindow(xce.get_window());
- grabLog.log(Level.FINER, " - Grab event target {0}", new Object[] {target});
+ grabLog.finer(" - Grab event target {0}", target);
if (target != null && target != this) {
target.dispatchEvent(xev);
return;
@@ -1888,9 +1887,9 @@
public void handleMotionNotify(XEvent xev) {
XMotionEvent xme = xev.get_xmotion();
- if (grabLog.isLoggable(Level.FINE)) {
- grabLog.log(Level.FINER, "{0}, when grabbed {1}, contains {2}",
- new Object[] {xme, isGrabbed(), containsGlobal(xme.get_x_root(), xme.get_y_root())});
+ if (grabLog.isLoggable(PlatformLogger.FINE)) {
+ grabLog.finer("{0}, when grabbed {1}, contains {2}",
+ xme, isGrabbed(), containsGlobal(xme.get_x_root(), xme.get_y_root()));
}
if (isGrabbed()) {
boolean dragging = false;
@@ -1919,7 +1918,7 @@
xme.set_x(localCoord.x);
xme.set_y(localCoord.y);
}
- grabLog.log(Level.FINER, " - Grab event target {0}", new Object[] {target});
+ grabLog.finer(" - Grab event target {0}", target);
if (target != null) {
if (target != getContentXWindow() && target != this) {
target.dispatchEvent(xev);
@@ -1951,9 +1950,9 @@
if (xbe.get_button() > SunToolkit.MAX_BUTTONS_SUPPORTED) {
return;
}
- if (grabLog.isLoggable(Level.FINE)) {
- grabLog.log(Level.FINE, "{0}, when grabbed {1}, contains {2} ({3}, {4}, {5}x{6})",
- new Object[] {xbe, isGrabbed(), containsGlobal(xbe.get_x_root(), xbe.get_y_root()), getAbsoluteX(), getAbsoluteY(), getWidth(), getHeight()});
+ if (grabLog.isLoggable(PlatformLogger.FINE)) {
+ grabLog.fine("{0}, when grabbed {1}, contains {2} ({3}, {4}, {5}x{6})",
+ xbe, isGrabbed(), containsGlobal(xbe.get_x_root(), xbe.get_y_root()), getAbsoluteX(), getAbsoluteY(), getWidth(), getHeight());
}
if (isGrabbed()) {
// When window is grabbed, all events are dispatched to
@@ -1962,7 +1961,7 @@
// translation)
XBaseWindow target = XToolkit.windowToXWindow(xbe.get_window());
try {
- grabLog.log(Level.FINER, " - Grab event target {0} (press target {1})", new Object[] {target, pressTarget});
+ grabLog.finer(" - Grab event target {0} (press target {1})", target, pressTarget);
if (xbe.get_type() == XConstants.ButtonPress
&& xbe.get_button() == XConstants.buttons[0])
{
@@ -1995,7 +1994,7 @@
// Outside this toplevel hierarchy
// According to the specification of UngrabEvent, post it
// when press occurs outside of the window and not on its owned windows
- grabLog.log(Level.FINE, "Generating UngrabEvent on {0} because not inside of shell", this);
+ grabLog.fine("Generating UngrabEvent on {0} because not inside of shell", this);
postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
return;
}
@@ -2013,18 +2012,18 @@
// toplevel == null - outside of
// hierarchy, toplevel is Dialog - should
// send ungrab (but shouldn't for Window)
- grabLog.log(Level.FINE, "Generating UngrabEvent on {0} because hierarchy ended", this);
+ grabLog.fine("Generating UngrabEvent on {0} because hierarchy ended", this);
postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
}
} else {
// toplevel is null - outside of hierarchy
- grabLog.log(Level.FINE, "Generating UngrabEvent on {0} because toplevel is null", this);
+ grabLog.fine("Generating UngrabEvent on {0} because toplevel is null", this);
postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
return;
}
} else {
// target doesn't map to XAWT window - outside of hierarchy
- grabLog.log(Level.FINE, "Generating UngrabEvent on because target is null {0}", this);
+ grabLog.fine("Generating UngrabEvent on because target is null {0}", this);
postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
return;
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XWrapperBase.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWrapperBase.java Mon Oct 05 18:22:00 2009 -0700
@@ -26,10 +26,10 @@
package sun.awt.X11;
// This class serves as the base class for all the wrappers.
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
abstract class XWrapperBase {
- static final Logger log = Logger.getLogger("sun.awt.X11.wrappers");
+ static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.wrappers");
public String toString() {
String ret = "";
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java Mon Oct 05 18:22:00 2009 -0700
@@ -27,7 +27,8 @@
import java.io.*;
import java.nio.charset.*;
import java.text.MessageFormat;
-import java.util.logging.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
public class WrapperGenerator {
/* XLibParser converts Xlib.h to a Java Object that encapsulates the
@@ -835,7 +836,7 @@
pw.println("package "+package_name+";\n");
pw.println("import sun.misc.*;\n");
- pw.println("import java.util.logging.*;");
+ pw.println("import sun.util.logging.PlatformLogger;");
String baseClass = stp.getBaseClass();
if (baseClass == null) {
baseClass = defaultBaseClass;
--- a/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h Mon Oct 05 18:22:00 2009 -0700
@@ -67,8 +67,7 @@
tojava import java.util.Hashtable;
tojava import sun.misc.Unsafe;
tojava
-tojava import java.util.logging.Level;
-tojava import java.util.logging.Logger;
+tojava import sun.util.logging.PlatformLogger;
tojava
tojava public class XKeysym {
tojava
@@ -108,7 +107,7 @@
tojava static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
tojava static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
tojava static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
-tojava private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XKeysym");
+tojava private static PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XKeysym");
tojava public static char convertKeysym( long ks, int state ) {
tojava
tojava /* First check for Latin-1 characters (1:1 mapping) */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11FontManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,850 @@
+package sun.awt;
+
+import java.awt.GraphicsEnvironment;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StreamTokenizer;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+import javax.swing.plaf.FontUIResource;
+import sun.awt.motif.MFontConfiguration;
+import sun.font.CompositeFont;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
+import sun.font.FontConfigManager;
+import sun.font.FcFontConfiguration;
+import sun.font.FontAccess;
+import sun.font.FontUtilities;
+import sun.font.NativeFont;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * The X11 implementation of {@link FontManager}.
+ */
+public class X11FontManager extends SunFontManager {
+
+ // constants identifying XLFD and font ID fields
+ private static final int FOUNDRY_FIELD = 1;
+ private static final int FAMILY_NAME_FIELD = 2;
+ private static final int WEIGHT_NAME_FIELD = 3;
+ private static final int SLANT_FIELD = 4;
+ private static final int SETWIDTH_NAME_FIELD = 5;
+ private static final int ADD_STYLE_NAME_FIELD = 6;
+ private static final int PIXEL_SIZE_FIELD = 7;
+ private static final int POINT_SIZE_FIELD = 8;
+ private static final int RESOLUTION_X_FIELD = 9;
+ private static final int RESOLUTION_Y_FIELD = 10;
+ private static final int SPACING_FIELD = 11;
+ private static final int AVERAGE_WIDTH_FIELD = 12;
+ private static final int CHARSET_REGISTRY_FIELD = 13;
+ private static final int CHARSET_ENCODING_FIELD = 14;
+
+ /*
+ * fontNameMap is a map from a fontID (which is a substring of an XLFD like
+ * "-monotype-arial-bold-r-normal-iso8859-7")
+ * to font file path like
+ * /usr/openwin/lib/locale/iso_8859_7/X11/fonts/TrueType/ArialBoldItalic.ttf
+ * It's used in a couple of methods like
+ * getFileNameFomPlatformName(..) to help locate the font file.
+ * We use this substring of a full XLFD because the font configuration files
+ * define the XLFDs in a way that's easier to make into a request.
+ * E.g., the -0-0-0-0-p-0- reported by X is -*-%d-*-*-p-*- in the font
+ * configuration files. We need to remove that part for comparisons.
+ */
+ private static Map fontNameMap = new HashMap();
+
+ /*
+ * xlfdMap is a map from a platform path like
+ * /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-GothicB.ttf to an XLFD like
+ * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
+ * Because there may be multiple native names, because the font is used
+ * to support multiple X encodings for example, the value of an entry in
+ * this map is always a vector where we store all the native names.
+ * For fonts which we don't understand the key isn't a pathname, its
+ * the full XLFD string like :-
+ * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
+ */
+ private static Map xlfdMap = new HashMap();
+
+ /* xFontDirsMap is also a map from a font ID to a font filepath.
+ * The difference from fontNameMap is just that it does not have
+ * resolved symbolic links. Normally this is not interesting except
+ * that we need to know the directory in which a font was found to
+ * add it to the X font server path, since although the files may
+ * be linked, the fonts.dir is different and specific to the encoding
+ * handled by that directory. This map is nulled out after use to free
+ * heap space. If the optimal path is taken, such that all fonts in
+ * font configuration files are referenced by filename, then the font
+ * dir can be directly derived as its parent directory.
+ * If a font is used by two XLFDs, each corresponding to a different
+ * X11 font directory, then precautions must be taken to include both
+ * directories.
+ */
+ private static Map xFontDirsMap;
+
+ /*
+ * This is the set of font directories needed to be on the X font path
+ * to enable AWT heavyweights to find all of the font configuration fonts.
+ * It is populated by :
+ * - awtfontpath entries in the fontconfig.properties
+ * - parent directories of "core" fonts used in the fontconfig.properties
+ * - looking up font dirs in the xFontDirsMap where the key is a fontID
+ * (cut down version of the XLFD read from the font configuration file).
+ * This set is nulled out after use to free heap space.
+ */
+ private static HashSet<String> fontConfigDirs = null;
+
+ /* These maps are used on Linux where we reference the Lucida oblique
+ * fonts in fontconfig files even though they aren't in the standard
+ * font directory. This explicitly remaps the XLFDs for these to the
+ * correct base font. This is needed to prevent composite fonts from
+ * defaulting to the Lucida Sans which is a bad substitute for the
+ * monospaced Lucida Sans Typewriter. Also these maps prevent the
+ * JRE from doing wasted work at start up.
+ */
+ HashMap<String, String> oblmap = null;
+
+
+ /*
+ * Used to eliminate redundant work. When a font directory is
+ * registered it added to this list. Subsequent registrations for the
+ * same directory can then be skipped by checking this Map.
+ * Access to this map is not synchronised here since creation
+ * of the singleton GE instance is already synchronised and that is
+ * the only code path that accesses this map.
+ */
+ private static HashMap registeredDirs = new HashMap();
+
+ /* Array of directories to be added to the X11 font path.
+ * Used by static method called from Toolkits which use X11 fonts.
+ * Specifically this means MToolkit
+ */
+ private static String[] fontdirs = null;
+
+ private static String[] defaultPlatformFont = null;
+
+ private FontConfigManager fcManager = null;
+
+ public static X11FontManager getInstance() {
+ return (X11FontManager) SunFontManager.getInstance();
+ }
+
+ /**
+ * Takes family name property in the following format:
+ * "-linotype-helvetica-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1"
+ * and returns the name of the corresponding physical font.
+ * This code is used to resolve font configuration fonts, and expects
+ * only to get called for these fonts.
+ */
+ @Override
+ public String getFileNameFromPlatformName(String platName) {
+
+ /* If the FontConfig file doesn't use xlfds, or its
+ * FcFontConfiguration, this may be already a file name.
+ */
+ if (platName.startsWith("/")) {
+ return platName;
+ }
+
+ String fileName = null;
+ String fontID = specificFontIDForName(platName);
+
+ /* If the font filename has been explicitly assigned in the
+ * font configuration file, use it. This avoids accessing
+ * the wrong fonts on Linux, where different fonts (some
+ * of which may not be usable by 2D) may share the same
+ * specific font ID. It may also speed up the lookup.
+ */
+ fileName = super.getFileNameFromPlatformName(platName);
+ if (fileName != null) {
+ if (isHeadless() && fileName.startsWith("-")) {
+ /* if it's headless, no xlfd should be used */
+ return null;
+ }
+ if (fileName.startsWith("/")) {
+ /* If a path is assigned in the font configuration file,
+ * it is required that the config file also specify using the
+ * new awtfontpath key the X11 font directories
+ * which must be added to the X11 font path to support
+ * AWT access to that font. For that reason we no longer
+ * have code here to add the parent directory to the list
+ * of font config dirs, since the parent directory may not
+ * be sufficient if fonts are symbolically linked to a
+ * different directory.
+ *
+ * Add this XLFD (platform name) to the list of known
+ * ones for this file.
+ */
+ Vector xVal = (Vector) xlfdMap.get(fileName);
+ if (xVal == null) {
+ /* Try to be robust on Linux distros which move fonts
+ * around by verifying that the fileName represents a
+ * file that exists. If it doesn't, set it to null
+ * to trigger a search.
+ */
+ if (getFontConfiguration().needToSearchForFile(fileName)) {
+ fileName = null;
+ }
+ if (fileName != null) {
+ xVal = new Vector();
+ xVal.add(platName);
+ xlfdMap.put(fileName, xVal);
+ }
+ } else {
+ if (!xVal.contains(platName)) {
+ xVal.add(platName);
+ }
+ }
+ }
+ if (fileName != null) {
+ fontNameMap.put(fontID, fileName);
+ return fileName;
+ }
+ }
+
+ if (fontID != null) {
+ fileName = (String)fontNameMap.get(fontID);
+ /* On Linux check for the Lucida Oblique fonts */
+ if (fileName == null && FontUtilities.isLinux && !isOpenJDK()) {
+ if (oblmap == null) {
+ initObliqueLucidaFontMap();
+ }
+ String oblkey = getObliqueLucidaFontID(fontID);
+ if (oblkey != null) {
+ fileName = oblmap.get(oblkey);
+ }
+ }
+ if (fontPath == null &&
+ (fileName == null || !fileName.startsWith("/"))) {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .warning("** Registering all font paths because " +
+ "can't find file for " + platName);
+ }
+ fontPath = getPlatformFontPath(noType1Font);
+ registerFontDirs(fontPath);
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .warning("** Finished registering all font paths");
+ }
+ fileName = (String)fontNameMap.get(fontID);
+ }
+ if (fileName == null && !isHeadless()) {
+ /* Query X11 directly to see if this font is available
+ * as a native font.
+ */
+ fileName = getX11FontName(platName);
+ }
+ if (fileName == null) {
+ fontID = switchFontIDForName(platName);
+ fileName = (String)fontNameMap.get(fontID);
+ }
+ if (fileName != null) {
+ fontNameMap.put(fontID, fileName);
+ }
+ }
+ return fileName;
+ }
+
+ @Override
+ protected String[] getNativeNames(String fontFileName,
+ String platformName) {
+ Vector nativeNames;
+ if ((nativeNames=(Vector)xlfdMap.get(fontFileName))==null) {
+ if (platformName == null) {
+ return null;
+ } else {
+ /* back-stop so that at least the name used in the
+ * font configuration file is known as a native name
+ */
+ String []natNames = new String[1];
+ natNames[0] = platformName;
+ return natNames;
+ }
+ } else {
+ int len = nativeNames.size();
+ return (String[])nativeNames.toArray(new String[len]);
+ }
+ }
+
+ /* NOTE: this method needs to be executed in a privileged context.
+ * The superclass constructor which is the primary caller of
+ * this method executes entirely in such a context. Additionally
+ * the loadFonts() method does too. So all should be well.
+
+ */
+ @Override
+ protected void registerFontDir(String path) {
+ /* fonts.dir file format looks like :-
+ * 47
+ * Arial.ttf -monotype-arial-regular-r-normal--0-0-0-0-p-0-iso8859-1
+ * Arial-Bold.ttf -monotype-arial-bold-r-normal--0-0-0-0-p-0-iso8859-1
+ * ...
+ */
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger().info("ParseFontDir " + path);
+ }
+ File fontsDotDir = new File(path + File.separator + "fonts.dir");
+ FileReader fr = null;
+ try {
+ if (fontsDotDir.canRead()) {
+ fr = new FileReader(fontsDotDir);
+ BufferedReader br = new BufferedReader(fr, 8192);
+ StreamTokenizer st = new StreamTokenizer(br);
+ st.eolIsSignificant(true);
+ int ttype = st.nextToken();
+ if (ttype == StreamTokenizer.TT_NUMBER) {
+ int numEntries = (int)st.nval;
+ ttype = st.nextToken();
+ if (ttype == StreamTokenizer.TT_EOL) {
+ st.resetSyntax();
+ st.wordChars(32, 127);
+ st.wordChars(128 + 32, 255);
+ st.whitespaceChars(0, 31);
+
+ for (int i=0; i < numEntries; i++) {
+ ttype = st.nextToken();
+ if (ttype == StreamTokenizer.TT_EOF) {
+ break;
+ }
+ if (ttype != StreamTokenizer.TT_WORD) {
+ break;
+ }
+ int breakPos = st.sval.indexOf(' ');
+ if (breakPos <= 0) {
+ /* On TurboLinux 8.0 a fonts.dir file had
+ * a line with integer value "24" which
+ * appeared to be the number of remaining
+ * entries in the file. This didn't add to
+ * the value on the first line of the file.
+ * Seemed like XFree86 didn't like this line
+ * much either. It failed to parse the file.
+ * Ignore lines like this completely, and
+ * don't let them count as an entry.
+ */
+ numEntries++;
+ ttype = st.nextToken();
+ if (ttype != StreamTokenizer.TT_EOL) {
+ break;
+ }
+
+ continue;
+ }
+ if (st.sval.charAt(0) == '!') {
+ /* TurboLinux 8.0 comment line: ignore.
+ * can't use st.commentChar('!') to just
+ * skip because this line mustn't count
+ * against numEntries.
+ */
+ numEntries++;
+ ttype = st.nextToken();
+ if (ttype != StreamTokenizer.TT_EOL) {
+ break;
+ }
+ continue;
+ }
+ String fileName = st.sval.substring(0, breakPos);
+ /* TurboLinux 8.0 uses some additional syntax to
+ * indicate algorithmic styling values.
+ * Ignore ':' separated files at the beginning
+ * of the fileName
+ */
+ int lastColon = fileName.lastIndexOf(':');
+ if (lastColon > 0) {
+ if (lastColon+1 >= fileName.length()) {
+ continue;
+ }
+ fileName = fileName.substring(lastColon+1);
+ }
+ String fontPart = st.sval.substring(breakPos+1);
+ String fontID = specificFontIDForName(fontPart);
+ String sVal = (String) fontNameMap.get(fontID);
+
+ if (FontUtilities.debugFonts()) {
+ PlatformLogger logger = FontUtilities.getLogger();
+ logger.info("file=" + fileName +
+ " xlfd=" + fontPart);
+ logger.info("fontID=" + fontID +
+ " sVal=" + sVal);
+ }
+ String fullPath = null;
+ try {
+ File file = new File(path,fileName);
+ /* we may have a resolved symbolic link
+ * this becomes important for an xlfd we
+ * still need to know the location it was
+ * found to update the X server font path
+ * for use by AWT heavyweights - and when 2D
+ * wants to use the native rasteriser.
+ */
+ if (xFontDirsMap == null) {
+ xFontDirsMap = new HashMap();
+ }
+ xFontDirsMap.put(fontID, path);
+ fullPath = file.getCanonicalPath();
+ } catch (IOException e) {
+ fullPath = path + File.separator + fileName;
+ }
+ Vector xVal = (Vector) xlfdMap.get(fullPath);
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .info("fullPath=" + fullPath +
+ " xVal=" + xVal);
+ }
+ if ((xVal == null || !xVal.contains(fontPart)) &&
+ (sVal == null) || !sVal.startsWith("/")) {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .info("Map fontID:"+fontID +
+ "to file:" + fullPath);
+ }
+ fontNameMap.put(fontID, fullPath);
+ if (xVal == null) {
+ xVal = new Vector();
+ xlfdMap.put (fullPath, xVal);
+ }
+ xVal.add(fontPart);
+ }
+
+ ttype = st.nextToken();
+ if (ttype != StreamTokenizer.TT_EOL) {
+ break;
+ }
+ }
+ }
+ }
+ fr.close();
+ }
+ } catch (IOException ioe1) {
+ } finally {
+ if (fr != null) {
+ try {
+ fr.close();
+ } catch (IOException ioe2) {
+ }
+ }
+ }
+ }
+
+ @Override
+ public void loadFonts() {
+ super.loadFonts();
+ /* These maps are greatly expanded during a loadFonts but
+ * can be reset to their initial state afterwards.
+ * Since preferLocaleFonts() and preferProportionalFonts() will
+ * trigger a partial repopulating from the FontConfiguration
+ * it has to be the inital (empty) state for the latter two, not
+ * simply nulling out.
+ * xFontDirsMap is a special case in that the implementation
+ * will typically not ever need to initialise it so it can be null.
+ */
+ xFontDirsMap = null;
+ xlfdMap = new HashMap(1);
+ fontNameMap = new HashMap(1);
+ }
+
+ private String getObliqueLucidaFontID(String fontID) {
+ if (fontID.startsWith("-lucidasans-medium-i-normal") ||
+ fontID.startsWith("-lucidasans-bold-i-normal") ||
+ fontID.startsWith("-lucidatypewriter-medium-i-normal") ||
+ fontID.startsWith("-lucidatypewriter-bold-i-normal")) {
+ return fontID.substring(0, fontID.indexOf("-i-"));
+ } else {
+ return null;
+ }
+ }
+
+ private static String getX11FontName(String platName) {
+ String xlfd = platName.replaceAll("%d", "*");
+ if (NativeFont.fontExists(xlfd)) {
+ return xlfd;
+ } else {
+ return null;
+ }
+ }
+
+ private void initObliqueLucidaFontMap() {
+ oblmap = new HashMap<String, String>();
+ oblmap.put("-lucidasans-medium",
+ jreLibDirName+"/fonts/LucidaSansRegular.ttf");
+ oblmap.put("-lucidasans-bold",
+ jreLibDirName+"/fonts/LucidaSansDemiBold.ttf");
+ oblmap.put("-lucidatypewriter-medium",
+ jreLibDirName+"/fonts/LucidaTypewriterRegular.ttf");
+ oblmap.put("-lucidatypewriter-bold",
+ jreLibDirName+"/fonts/LucidaTypewriterBold.ttf");
+ }
+
+ private boolean isHeadless() {
+ GraphicsEnvironment ge =
+ GraphicsEnvironment.getLocalGraphicsEnvironment();
+ return GraphicsEnvironment.isHeadless();
+ }
+
+ private String specificFontIDForName(String name) {
+
+ int[] hPos = new int[14];
+ int hyphenCnt = 1;
+ int pos = 1;
+
+ while (pos != -1 && hyphenCnt < 14) {
+ pos = name.indexOf('-', pos);
+ if (pos != -1) {
+ hPos[hyphenCnt++] = pos;
+ pos++;
+ }
+ }
+
+ if (hyphenCnt != 14) {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .severe("Font Configuration Font ID is malformed:" + name);
+ }
+ return name; // what else can we do?
+ }
+
+ StringBuffer sb =
+ new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
+ hPos[SETWIDTH_NAME_FIELD]));
+ sb.append(name.substring(hPos[CHARSET_REGISTRY_FIELD-1]));
+ String retval = sb.toString().toLowerCase (Locale.ENGLISH);
+ return retval;
+ }
+
+ private String switchFontIDForName(String name) {
+
+ int[] hPos = new int[14];
+ int hyphenCnt = 1;
+ int pos = 1;
+
+ while (pos != -1 && hyphenCnt < 14) {
+ pos = name.indexOf('-', pos);
+ if (pos != -1) {
+ hPos[hyphenCnt++] = pos;
+ pos++;
+ }
+ }
+
+ if (hyphenCnt != 14) {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger()
+ .severe("Font Configuration Font ID is malformed:" + name);
+ }
+ return name; // what else can we do?
+ }
+
+ String slant = name.substring(hPos[SLANT_FIELD-1]+1,
+ hPos[SLANT_FIELD]);
+ String family = name.substring(hPos[FAMILY_NAME_FIELD-1]+1,
+ hPos[FAMILY_NAME_FIELD]);
+ String registry = name.substring(hPos[CHARSET_REGISTRY_FIELD-1]+1,
+ hPos[CHARSET_REGISTRY_FIELD]);
+ String encoding = name.substring(hPos[CHARSET_ENCODING_FIELD-1]+1);
+
+ if (slant.equals("i")) {
+ slant = "o";
+ } else if (slant.equals("o")) {
+ slant = "i";
+ }
+ // workaround for #4471000
+ if (family.equals("itc zapfdingbats")
+ && registry.equals("sun")
+ && encoding.equals("fontspecific")){
+ registry = "adobe";
+ }
+ StringBuffer sb =
+ new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
+ hPos[SLANT_FIELD-1]+1));
+ sb.append(slant);
+ sb.append(name.substring(hPos[SLANT_FIELD],
+ hPos[SETWIDTH_NAME_FIELD]+1));
+ sb.append(registry);
+ sb.append(name.substring(hPos[CHARSET_ENCODING_FIELD-1]));
+ String retval = sb.toString().toLowerCase (Locale.ENGLISH);
+ return retval;
+ }
+
+ /**
+ * Returns the face name for the given XLFD.
+ */
+ public String getFileNameFromXLFD(String name) {
+ String fileName = null;
+ String fontID = specificFontIDForName(name);
+ if (fontID != null) {
+ fileName = (String)fontNameMap.get(fontID);
+ if (fileName == null) {
+ fontID = switchFontIDForName(name);
+ fileName = (String)fontNameMap.get(fontID);
+ }
+ if (fileName == null) {
+ fileName = getDefaultFontFile();
+ }
+ }
+ return fileName;
+ }
+
+ /* Register just the paths, (it doesn't register the fonts).
+ * If a font configuration file has specified a baseFontPath
+ * fontPath is just those directories, unless on usage we
+ * find it doesn't contain what we need for the logical fonts.
+ * Otherwise, we register all the paths on Solaris, because
+ * the fontPath we have here is the complete one from
+ * parsing /var/sadm/install/contents, not just
+ * what's on the X font path (may be this should be
+ * changed).
+ * But for now what it means is that if we didn't do
+ * this then if the font weren't listed anywhere on the
+ * less complete font path we'd trigger loadFonts which
+ * actually registers the fonts. This may actually be
+ * the right thing tho' since that would also set up
+ * the X font path without which we wouldn't be able to
+ * display some "native" fonts.
+ * So something to revisit is that probably fontPath
+ * here ought to be only the X font path + jre font dir.
+ * loadFonts should have a separate native call to
+ * get the rest of the platform font path.
+ *
+ * Registering the directories can now be avoided in the
+ * font configuration initialisation when filename entries
+ * exist in the font configuration file for all fonts.
+ * (Perhaps a little confusingly a filename entry is
+ * actually keyed using the XLFD used in the font entries,
+ * and it maps *to* a real filename).
+ * In the event any are missing, registration of all
+ * directories will be invoked to find the real files.
+ *
+ * But registering the directory performed other
+ * functions such as filling in the map of all native names
+ * for the font. So when this method isn't invoked, they still
+ * must be found. This is mitigated by getNativeNames now
+ * being able to return at least the platform name, but mostly
+ * by ensuring that when a filename key is found, that
+ * xlfd key is stored as one of the set of platform names
+ * for the font. Its a set because typical font configuration
+ * files reference the same CJK font files using multiple
+ * X11 encodings. For the code that adds this to the map
+ * see X11GE.getFileNameFromPlatformName(..)
+ * If you don't get all of these then some code points may
+ * not use the Xserver, and will not get the PCF bitmaps
+ * that are available for some point sizes.
+ * So, in the event that there is such a problem,
+ * unconditionally making this call may be necessary, at
+ * some cost to JRE start-up
+ */
+ @Override
+ protected void registerFontDirs(String pathName) {
+
+ StringTokenizer parser = new StringTokenizer(pathName,
+ File.pathSeparator);
+ try {
+ while (parser.hasMoreTokens()) {
+ String dirPath = parser.nextToken();
+ if (dirPath != null && !registeredDirs.containsKey(dirPath)) {
+ registeredDirs.put(dirPath, null);
+ registerFontDir(dirPath);
+ }
+ }
+ } catch (NoSuchElementException e) {
+ }
+ }
+
+ // An X font spec (xlfd) includes an encoding. The same TrueType font file
+ // may be referenced from different X font directories in font.dir files
+ // to support use in multiple encodings by X apps.
+ // So for the purposes of font configuration logical fonts where AWT
+ // heavyweights need to access the font via X APIs we need to ensure that
+ // the directory for precisely the encodings needed by this are added to
+ // the x font path. This requires that we note the platform names
+ // specified in font configuration files and use that to identify the
+ // X font directory that contains a font.dir file for that platform name
+ // and add it to the X font path (if display is local)
+ // Here we make use of an already built map of xlfds to font locations
+ // to add the font location to the set of those required to build the
+ // x font path needed by AWT.
+ // These are added to the x font path later.
+ // All this is necessary because on Solaris the font.dir directories
+ // may contain not real font files, but symbolic links to the actual
+ // location but that location is not suitable for the x font path, since
+ // it probably doesn't have a font.dir at all and certainly not one
+ // with the required encodings
+ // If the fontconfiguration file is properly set up so that all fonts
+ // are mapped to files then we will never trigger initialising
+ // xFontDirsMap (it will be null). In this case the awtfontpath entries
+ // must specify all the X11 directories needed by AWT.
+ @Override
+ protected void addFontToPlatformFontPath(String platformName) {
+ // Lazily initialize fontConfigDirs.
+ getPlatformFontPathFromFontConfig();
+ if (xFontDirsMap != null) {
+ String fontID = specificFontIDForName(platformName);
+ String dirName = (String)xFontDirsMap.get(fontID);
+ if (dirName != null) {
+ fontConfigDirs.add(dirName);
+ }
+ }
+ return;
+ }
+
+ private void getPlatformFontPathFromFontConfig() {
+ if (fontConfigDirs == null) {
+ fontConfigDirs = getFontConfiguration().getAWTFontPathSet();
+ if (FontUtilities.debugFonts() && fontConfigDirs != null) {
+ String[] names = fontConfigDirs.toArray(new String[0]);
+ for (int i=0;i<names.length;i++) {
+ FontUtilities.getLogger().info("awtfontpath : " + names[i]);
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void registerPlatformFontsUsedByFontConfiguration() {
+ // Lazily initialize fontConfigDirs.
+ getPlatformFontPathFromFontConfig();
+ if (fontConfigDirs == null) {
+ return;
+ }
+ if (FontUtilities.isLinux) {
+ fontConfigDirs.add(jreLibDirName+File.separator+"oblique-fonts");
+ }
+ fontdirs = (String[])fontConfigDirs.toArray(new String[0]);
+ }
+
+ /* Called by MToolkit to set the X11 font path */
+ public static void setNativeFontPath() {
+ if (fontdirs == null) {
+ return;
+ }
+
+ // need to register these individually rather than by one call
+ // to ensure that one bad directory doesn't cause all to be rejected
+ for (int i=0; i<fontdirs.length; i++) {
+ if (FontUtilities.debugFonts()) {
+ FontUtilities.getLogger().info("Add " + fontdirs[i] + " to X11 fontpath");
+ }
+ setNativeFontPath(fontdirs[i]);
+ }
+ }
+
+ private synchronized static native void setNativeFontPath(String fontPath);
+
+
+ // Implements SunGraphicsEnvironment.createFontConfiguration.
+ protected FontConfiguration createFontConfiguration() {
+ /* The logic here decides whether to use a preconfigured
+ * fontconfig.properties file, or synthesise one using platform APIs.
+ * On Solaris (as opposed to OpenSolaris) we try to use the
+ * pre-configured ones, but if the files it specifies are missing
+ * we fail-safe to synthesising one. This might happen if Solaris
+ * changes its fonts.
+ * For OpenSolaris I don't expect us to ever create fontconfig files,
+ * so it will always synthesise. Note that if we misidentify
+ * OpenSolaris as Solaris, then the test for the presence of
+ * Solaris-only font files will correct this.
+ * For Linux we require an exact match of distro and version to
+ * use the preconfigured file, and also that it points to
+ * existent fonts.
+ * If synthesising fails, we fall back to any preconfigured file
+ * and do the best we can. For the commercial JDK this will be
+ * fine as it includes the Lucida fonts. OpenJDK should not hit
+ * this as the synthesis should always work on its platforms.
+ */
+ FontConfiguration mFontConfig = new MFontConfiguration(this);
+ if (FontUtilities.isOpenSolaris ||
+ (FontUtilities.isLinux &&
+ (!mFontConfig.foundOsSpecificFile() ||
+ !mFontConfig.fontFilesArePresent()) ||
+ (FontUtilities.isSolaris && !mFontConfig.fontFilesArePresent()))) {
+ FcFontConfiguration fcFontConfig =
+ new FcFontConfiguration(this);
+ if (fcFontConfig.init()) {
+ return fcFontConfig;
+ }
+ }
+ mFontConfig.init();
+ return mFontConfig;
+ }
+ public FontConfiguration
+ createFontConfiguration(boolean preferLocaleFonts,
+ boolean preferPropFonts) {
+
+ return new MFontConfiguration(this,
+ preferLocaleFonts, preferPropFonts);
+ }
+
+ public synchronized native String getFontPath(boolean noType1Fonts);
+
+ public String[] getDefaultPlatformFont() {
+ if (defaultPlatformFont != null) {
+ return defaultPlatformFont;
+ }
+ String[] info = new String[2];
+ getFontConfigManager().initFontConfigFonts(false);
+ FontConfigManager.FcCompFont[] fontConfigFonts =
+ getFontConfigManager().getFontConfigFonts();
+ for (int i=0; i<fontConfigFonts.length; i++) {
+ if ("sans".equals(fontConfigFonts[i].fcFamily) &&
+ 0 == fontConfigFonts[i].style) {
+ info[0] = fontConfigFonts[i].firstFont.familyName;
+ info[1] = fontConfigFonts[i].firstFont.fontFile;
+ break;
+ }
+ }
+ /* Absolute last ditch attempt in the face of fontconfig problems.
+ * If we didn't match, pick the first, or just make something
+ * up so we don't NPE.
+ */
+ if (info[0] == null) {
+ if (fontConfigFonts.length > 0 &&
+ fontConfigFonts[0].firstFont.fontFile != null) {
+ info[0] = fontConfigFonts[0].firstFont.familyName;
+ info[1] = fontConfigFonts[0].firstFont.fontFile;
+ } else {
+ info[0] = "Dialog";
+ info[1] = "/dialog.ttf";
+ }
+ }
+ defaultPlatformFont = info;
+ return defaultPlatformFont;
+ }
+
+ public synchronized FontConfigManager getFontConfigManager() {
+
+ if (fcManager == null) {
+ fcManager = new FontConfigManager();
+ }
+
+ return fcManager;
+ }
+
+ @Override
+ protected FontUIResource getFontConfigFUIR(String family, int style, int size) {
+
+ CompositeFont font2D = getFontConfigManager().getFontConfigFont(family, style);
+
+ if (font2D == null) { // Not expected, just a precaution.
+ return new FontUIResource(family, style, size);
+ }
+
+ /* The name of the font will be that of the physical font in slot,
+ * but by setting the handle to that of the CompositeFont it
+ * renders as that CompositeFont.
+ * It also needs to be marked as a created font which is the
+ * current mechanism to signal that deriveFont etc must copy
+ * the handle from the original font.
+ */
+ FontUIResource fuir =
+ new FontUIResource(font2D.getFamilyName(null), style, size);
+ FontAccess.getFontAccess().setFont2D(fuir, font2D.handle);
+ FontAccess.getFontAccess().setCreatedFont(fuir);
+ return fuir;
+ }
+}
--- a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Mon Oct 05 18:22:00 2009 -0700
@@ -41,7 +41,6 @@
import java.net.UnknownHostException;
import java.util.*;
-import java.util.logging.*;
import sun.awt.motif.MFontConfiguration;
import sun.font.FcFontConfiguration;
@@ -51,6 +50,7 @@
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.UnixSurfaceManagerFactory;
+import sun.util.logging.PlatformLogger;
/**
* This is an implementation of a GraphicsEnvironment object for the
@@ -63,82 +63,11 @@
public class X11GraphicsEnvironment
extends SunGraphicsEnvironment
{
- private static final Logger log = Logger.getLogger("sun.awt.X11GraphicsEnvironment");
- private static final Logger screenLog = Logger.getLogger("sun.awt.screen.X11GraphicsEnvironment");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11GraphicsEnvironment");
+ private static final PlatformLogger screenLog = PlatformLogger.getLogger("sun.awt.screen.X11GraphicsEnvironment");
private static Boolean xinerState;
- /*
- * This is the set of font directories needed to be on the X font path
- * to enable AWT heavyweights to find all of the font configuration fonts.
- * It is populated by :
- * - awtfontpath entries in the fontconfig.properties
- * - parent directories of "core" fonts used in the fontconfig.properties
- * - looking up font dirs in the xFontDirsMap where the key is a fontID
- * (cut down version of the XLFD read from the font configuration file).
- * This set is nulled out after use to free heap space.
- */
- private static HashSet<String> fontConfigDirs = null;
-
- /*
- * fontNameMap is a map from a fontID (which is a substring of an XLFD like
- * "-monotype-arial-bold-r-normal-iso8859-7")
- * to font file path like
- * /usr/openwin/lib/locale/iso_8859_7/X11/fonts/TrueType/ArialBoldItalic.ttf
- * It's used in a couple of methods like
- * getFileNameFomPlatformName(..) to help locate the font file.
- * We use this substring of a full XLFD because the font configuration files
- * define the XLFDs in a way that's easier to make into a request.
- * E.g., the -0-0-0-0-p-0- reported by X is -*-%d-*-*-p-*- in the font
- * configuration files. We need to remove that part for comparisons.
- */
- private static Map fontNameMap = new HashMap();
-
- /* xFontDirsMap is also a map from a font ID to a font filepath.
- * The difference from fontNameMap is just that it does not have
- * resolved symbolic links. Normally this is not interesting except
- * that we need to know the directory in which a font was found to
- * add it to the X font server path, since although the files may
- * be linked, the fonts.dir is different and specific to the encoding
- * handled by that directory. This map is nulled out after use to free
- * heap space. If the optimal path is taken, such that all fonts in
- * font configuration files are referenced by filename, then the font
- * dir can be directly derived as its parent directory.
- * If a font is used by two XLFDs, each corresponding to a different
- * X11 font directory, then precautions must be taken to include both
- * directories.
- */
- private static Map xFontDirsMap;
-
- /*
- * xlfdMap is a map from a platform path like
- * /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-GothicB.ttf to an XLFD like
- * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
- * Because there may be multiple native names, because the font is used
- * to support multiple X encodings for example, the value of an entry in
- * this map is always a vector where we store all the native names.
- * For fonts which we don't understand the key isn't a pathname, its
- * the full XLFD string like :-
- * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
- */
- private static Map xlfdMap = new HashMap();
-
- /*
- * Used to eliminate redundant work. When a font directory is
- * registered it added to this list. Subsequent registrations for the
- * same directory can then be skipped by checking this Map.
- * Access to this map is not synchronised here since creation
- * of the singleton GE instance is already synchronised and that is
- * the only code path that accesses this map.
- */
- private static HashMap registeredDirs = new HashMap();
-
- /* Array of directories to be added to the X11 font path.
- * Used by static method called from Toolkits which use X11 fonts.
- * Specifically this means MToolkit
- */
- private static String[] fontdirs = null;
-
static {
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {
@@ -234,7 +163,6 @@
return getScreenDevices()[getDefaultScreenNum()];
}
- @Override
public boolean isDisplayLocal() {
if (isDisplayLocal == null) {
SunToolkit.awtLock();
@@ -311,657 +239,7 @@
return result.booleanValue();
}
- /* These maps are used on Linux where we reference the Lucida oblique
- * fonts in fontconfig files even though they aren't in the standard
- * font directory. This explicitly remaps the XLFDs for these to the
- * correct base font. This is needed to prevent composite fonts from
- * defaulting to the Lucida Sans which is a bad substitute for the
- * monospaced Lucida Sans Typewriter. Also these maps prevent the
- * JRE from doing wasted work at start up.
- */
- HashMap<String, String> oblmap = null;
- private String getObliqueLucidaFontID(String fontID) {
- if (fontID.startsWith("-lucidasans-medium-i-normal") ||
- fontID.startsWith("-lucidasans-bold-i-normal") ||
- fontID.startsWith("-lucidatypewriter-medium-i-normal") ||
- fontID.startsWith("-lucidatypewriter-bold-i-normal")) {
- return fontID.substring(0, fontID.indexOf("-i-"));
- } else {
- return null;
- }
- }
-
- private void initObliqueLucidaFontMap() {
- oblmap = new HashMap<String, String>();
- oblmap.put("-lucidasans-medium",
- jreLibDirName+"/fonts/LucidaSansRegular.ttf");
- oblmap.put("-lucidasans-bold",
- jreLibDirName+"/fonts/LucidaSansDemiBold.ttf");
- oblmap.put("-lucidatypewriter-medium",
- jreLibDirName+"/fonts/LucidaTypewriterRegular.ttf");
- oblmap.put("-lucidatypewriter-bold",
- jreLibDirName+"/fonts/LucidaTypewriterBold.ttf");
- }
-
- /**
- * Takes family name property in the following format:
- * "-linotype-helvetica-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1"
- * and returns the name of the corresponding physical font.
- * This code is used to resolve font configuration fonts, and expects
- * only to get called for these fonts.
- */
- public String getFileNameFromPlatformName(String platName) {
-
- /* If the FontConfig file doesn't use xlfds, or its
- * FcFontConfiguration, this may be already a file name.
- */
- if (platName.startsWith("/")) {
- return platName;
- }
-
- String fileName = null;
- String fontID = specificFontIDForName(platName);
-
- /* If the font filename has been explicitly assigned in the
- * font configuration file, use it. This avoids accessing
- * the wrong fonts on Linux, where different fonts (some
- * of which may not be usable by 2D) may share the same
- * specific font ID. It may also speed up the lookup.
- */
- fileName = super.getFileNameFromPlatformName(platName);
- if (fileName != null) {
- if (isHeadless() && fileName.startsWith("-")) {
- /* if it's headless, no xlfd should be used */
- return null;
- }
- if (fileName.startsWith("/")) {
- /* If a path is assigned in the font configuration file,
- * it is required that the config file also specify using the
- * new awtfontpath key the X11 font directories
- * which must be added to the X11 font path to support
- * AWT access to that font. For that reason we no longer
- * have code here to add the parent directory to the list
- * of font config dirs, since the parent directory may not
- * be sufficient if fonts are symbolically linked to a
- * different directory.
- *
- * Add this XLFD (platform name) to the list of known
- * ones for this file.
- */
- Vector xVal = (Vector) xlfdMap.get(fileName);
- if (xVal == null) {
- /* Try to be robust on Linux distros which move fonts
- * around by verifying that the fileName represents a
- * file that exists. If it doesn't, set it to null
- * to trigger a search.
- */
- if (getFontConfiguration().needToSearchForFile(fileName)) {
- fileName = null;
- }
- if (fileName != null) {
- xVal = new Vector();
- xVal.add(platName);
- xlfdMap.put(fileName, xVal);
- }
- } else {
- if (!xVal.contains(platName)) {
- xVal.add(platName);
- }
- }
- }
- if (fileName != null) {
- fontNameMap.put(fontID, fileName);
- return fileName;
- }
- }
-
- if (fontID != null) {
- fileName = (String)fontNameMap.get(fontID);
- /* On Linux check for the Lucida Oblique fonts */
- if (fileName == null && isLinux && !isOpenJDK()) {
- if (oblmap == null) {
- initObliqueLucidaFontMap();
- }
- String oblkey = getObliqueLucidaFontID(fontID);
- if (oblkey != null) {
- fileName = oblmap.get(oblkey);
- }
- }
- if (fontPath == null &&
- (fileName == null || !fileName.startsWith("/"))) {
- if (debugFonts) {
- logger.warning("** Registering all font paths because " +
- "can't find file for " + platName);
- }
- fontPath = getPlatformFontPath(noType1Font);
- registerFontDirs(fontPath);
- if (debugFonts) {
- logger.warning("** Finished registering all font paths");
- }
- fileName = (String)fontNameMap.get(fontID);
- }
- if (fileName == null && !isHeadless()) {
- /* Query X11 directly to see if this font is available
- * as a native font.
- */
- fileName = getX11FontName(platName);
- }
- if (fileName == null) {
- fontID = switchFontIDForName(platName);
- fileName = (String)fontNameMap.get(fontID);
- }
- if (fileName != null) {
- fontNameMap.put(fontID, fileName);
- }
- }
- return fileName;
- }
-
- private static String getX11FontName(String platName) {
- String xlfd = platName.replaceAll("%d", "*");
- if (NativeFont.fontExists(xlfd)) {
- return xlfd;
- } else {
- return null;
- }
- }
-
- /**
- * Returns the face name for the given XLFD.
- */
- public String getFileNameFromXLFD(String name) {
- String fileName = null;
- String fontID = specificFontIDForName(name);
- if (fontID != null) {
- fileName = (String)fontNameMap.get(fontID);
- if (fileName == null) {
- fontID = switchFontIDForName(name);
- fileName = (String)fontNameMap.get(fontID);
- }
- if (fileName == null) {
- fileName = getDefaultFontFile();
- }
- }
- return fileName;
- }
-
- // constants identifying XLFD and font ID fields
- private static final int FOUNDRY_FIELD = 1;
- private static final int FAMILY_NAME_FIELD = 2;
- private static final int WEIGHT_NAME_FIELD = 3;
- private static final int SLANT_FIELD = 4;
- private static final int SETWIDTH_NAME_FIELD = 5;
- private static final int ADD_STYLE_NAME_FIELD = 6;
- private static final int PIXEL_SIZE_FIELD = 7;
- private static final int POINT_SIZE_FIELD = 8;
- private static final int RESOLUTION_X_FIELD = 9;
- private static final int RESOLUTION_Y_FIELD = 10;
- private static final int SPACING_FIELD = 11;
- private static final int AVERAGE_WIDTH_FIELD = 12;
- private static final int CHARSET_REGISTRY_FIELD = 13;
- private static final int CHARSET_ENCODING_FIELD = 14;
-
- private String switchFontIDForName(String name) {
-
- int[] hPos = new int[14];
- int hyphenCnt = 1;
- int pos = 1;
-
- while (pos != -1 && hyphenCnt < 14) {
- pos = name.indexOf('-', pos);
- if (pos != -1) {
- hPos[hyphenCnt++] = pos;
- pos++;
- }
- }
-
- if (hyphenCnt != 14) {
- if (debugFonts) {
- logger.severe("Font Configuration Font ID is malformed:" + name);
- }
- return name; // what else can we do?
- }
-
- String slant = name.substring(hPos[SLANT_FIELD-1]+1,
- hPos[SLANT_FIELD]);
- String family = name.substring(hPos[FAMILY_NAME_FIELD-1]+1,
- hPos[FAMILY_NAME_FIELD]);
- String registry = name.substring(hPos[CHARSET_REGISTRY_FIELD-1]+1,
- hPos[CHARSET_REGISTRY_FIELD]);
- String encoding = name.substring(hPos[CHARSET_ENCODING_FIELD-1]+1);
-
- if (slant.equals("i")) {
- slant = "o";
- } else if (slant.equals("o")) {
- slant = "i";
- }
- // workaround for #4471000
- if (family.equals("itc zapfdingbats")
- && registry.equals("sun")
- && encoding.equals("fontspecific")){
- registry = "adobe";
- }
- StringBuffer sb =
- new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
- hPos[SLANT_FIELD-1]+1));
- sb.append(slant);
- sb.append(name.substring(hPos[SLANT_FIELD],
- hPos[SETWIDTH_NAME_FIELD]+1));
- sb.append(registry);
- sb.append(name.substring(hPos[CHARSET_ENCODING_FIELD-1]));
- String retval = sb.toString().toLowerCase (Locale.ENGLISH);
- return retval;
- }
-
-
- private String specificFontIDForName(String name) {
-
- int[] hPos = new int[14];
- int hyphenCnt = 1;
- int pos = 1;
-
- while (pos != -1 && hyphenCnt < 14) {
- pos = name.indexOf('-', pos);
- if (pos != -1) {
- hPos[hyphenCnt++] = pos;
- pos++;
- }
- }
-
- if (hyphenCnt != 14) {
- if (debugFonts) {
- logger.severe("Font Configuration Font ID is malformed:" + name);
- }
- return name; // what else can we do?
- }
-
- StringBuffer sb =
- new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
- hPos[SETWIDTH_NAME_FIELD]));
- sb.append(name.substring(hPos[CHARSET_REGISTRY_FIELD-1]));
- String retval = sb.toString().toLowerCase (Locale.ENGLISH);
- return retval;
- }
-
- protected String[] getNativeNames(String fontFileName,
- String platformName) {
- Vector nativeNames;
- if ((nativeNames=(Vector)xlfdMap.get(fontFileName))==null) {
- if (platformName == null) {
- return null;
- } else {
- /* back-stop so that at least the name used in the
- * font configuration file is known as a native name
- */
- String []natNames = new String[1];
- natNames[0] = platformName;
- return natNames;
- }
- } else {
- int len = nativeNames.size();
- return (String[])nativeNames.toArray(new String[len]);
- }
- }
-
-
- // An X font spec (xlfd) includes an encoding. The same TrueType font file
- // may be referenced from different X font directories in font.dir files
- // to support use in multiple encodings by X apps.
- // So for the purposes of font configuration logical fonts where AWT
- // heavyweights need to access the font via X APIs we need to ensure that
- // the directory for precisely the encodings needed by this are added to
- // the x font path. This requires that we note the platform names
- // specified in font configuration files and use that to identify the
- // X font directory that contains a font.dir file for that platform name
- // and add it to the X font path (if display is local)
- // Here we make use of an already built map of xlfds to font locations
- // to add the font location to the set of those required to build the
- // x font path needed by AWT.
- // These are added to the x font path later.
- // All this is necessary because on Solaris the font.dir directories
- // may contain not real font files, but symbolic links to the actual
- // location but that location is not suitable for the x font path, since
- // it probably doesn't have a font.dir at all and certainly not one
- // with the required encodings
- // If the fontconfiguration file is properly set up so that all fonts
- // are mapped to files then we will never trigger initialising
- // xFontDirsMap (it will be null). In this case the awtfontpath entries
- // must specify all the X11 directories needed by AWT.
- protected void addFontToPlatformFontPath(String platformName) {
- if (xFontDirsMap != null) {
- String fontID = specificFontIDForName(platformName);
- String dirName = (String)xFontDirsMap.get(fontID);
- if (dirName != null) {
- fontConfigDirs.add(dirName);
- }
- }
- return;
- }
-
- protected void getPlatformFontPathFromFontConfig() {
- if (fontConfigDirs == null) {
- fontConfigDirs = getFontConfiguration().getAWTFontPathSet();
- if (debugFonts && fontConfigDirs != null) {
- String[] names = fontConfigDirs.toArray(new String[0]);
- for (int i=0;i<names.length;i++) {
- logger.info("awtfontpath : " + names[i]);
- }
- }
- }
- }
-
- protected void registerPlatformFontsUsedByFontConfiguration() {
- if (fontConfigDirs == null) {
- return;
- }
- if (isLinux) {
- fontConfigDirs.add(jreLibDirName+File.separator+"oblique-fonts");
- }
- fontdirs = (String[])fontConfigDirs.toArray(new String[0]);
- }
-
- /* Called by MToolkit to set the X11 font path */
- public static void setNativeFontPath() {
- if (fontdirs == null) {
- return;
- }
-
- // need to register these individually rather than by one call
- // to ensure that one bad directory doesn't cause all to be rejected
- for (int i=0; i<fontdirs.length; i++) {
- if (debugFonts) {
- logger.info("Add " + fontdirs[i] + " to X11 fontpath");
- }
- FontManager.setNativeFontPath(fontdirs[i]);
- }
- }
-
- /* Register just the paths, (it doesn't register the fonts).
- * If a font configuration file has specified a baseFontPath
- * fontPath is just those directories, unless on usage we
- * find it doesn't contain what we need for the logical fonts.
- * Otherwise, we register all the paths on Solaris, because
- * the fontPath we have here is the complete one from
- * parsing /var/sadm/install/contents, not just
- * what's on the X font path (may be this should be
- * changed).
- * But for now what it means is that if we didn't do
- * this then if the font weren't listed anywhere on the
- * less complete font path we'd trigger loadFonts which
- * actually registers the fonts. This may actually be
- * the right thing tho' since that would also set up
- * the X font path without which we wouldn't be able to
- * display some "native" fonts.
- * So something to revisit is that probably fontPath
- * here ought to be only the X font path + jre font dir.
- * loadFonts should have a separate native call to
- * get the rest of the platform font path.
- *
- * Registering the directories can now be avoided in the
- * font configuration initialisation when filename entries
- * exist in the font configuration file for all fonts.
- * (Perhaps a little confusingly a filename entry is
- * actually keyed using the XLFD used in the font entries,
- * and it maps *to* a real filename).
- * In the event any are missing, registration of all
- * directories will be invoked to find the real files.
- *
- * But registering the directory performed other
- * functions such as filling in the map of all native names
- * for the font. So when this method isn't invoked, they still
- * must be found. This is mitigated by getNativeNames now
- * being able to return at least the platform name, but mostly
- * by ensuring that when a filename key is found, that
- * xlfd key is stored as one of the set of platform names
- * for the font. Its a set because typical font configuration
- * files reference the same CJK font files using multiple
- * X11 encodings. For the code that adds this to the map
- * see X11GE.getFileNameFromPlatformName(..)
- * If you don't get all of these then some code points may
- * not use the Xserver, and will not get the PCF bitmaps
- * that are available for some point sizes.
- * So, in the event that there is such a problem,
- * unconditionally making this call may be necessary, at
- * some cost to JRE start-up
- */
- protected void registerFontDirs(String pathName) {
-
- StringTokenizer parser = new StringTokenizer(pathName,
- File.pathSeparator);
- try {
- while (parser.hasMoreTokens()) {
- String dirPath = parser.nextToken();
- if (dirPath != null && !registeredDirs.containsKey(dirPath)) {
- registeredDirs.put(dirPath, null);
- registerFontDir(dirPath);
- }
- }
- } catch (NoSuchElementException e) {
- }
- }
-
- /* NOTE: this method needs to be executed in a privileged context.
- * The superclass constructor which is the primary caller of
- * this method executes entirely in such a context. Additionally
- * the loadFonts() method does too. So all should be well.
-
- */
- protected void registerFontDir(String path) {
- /* fonts.dir file format looks like :-
- * 47
- * Arial.ttf -monotype-arial-regular-r-normal--0-0-0-0-p-0-iso8859-1
- * Arial-Bold.ttf -monotype-arial-bold-r-normal--0-0-0-0-p-0-iso8859-1
- * ...
- */
- if (debugFonts) {
- logger.info("ParseFontDir " + path);
- }
- File fontsDotDir = new File(path + File.separator + "fonts.dir");
- FileReader fr = null;
- try {
- if (fontsDotDir.canRead()) {
- fr = new FileReader(fontsDotDir);
- BufferedReader br = new BufferedReader(fr, 8192);
- StreamTokenizer st = new StreamTokenizer(br);
- st.eolIsSignificant(true);
- int ttype = st.nextToken();
- if (ttype == StreamTokenizer.TT_NUMBER) {
- int numEntries = (int)st.nval;
- ttype = st.nextToken();
- if (ttype == StreamTokenizer.TT_EOL) {
- st.resetSyntax();
- st.wordChars(32, 127);
- st.wordChars(128 + 32, 255);
- st.whitespaceChars(0, 31);
-
- for (int i=0; i < numEntries; i++) {
- ttype = st.nextToken();
- if (ttype == StreamTokenizer.TT_EOF) {
- break;
- }
- if (ttype != StreamTokenizer.TT_WORD) {
- break;
- }
- int breakPos = st.sval.indexOf(' ');
- if (breakPos <= 0) {
- /* On TurboLinux 8.0 a fonts.dir file had
- * a line with integer value "24" which
- * appeared to be the number of remaining
- * entries in the file. This didn't add to
- * the value on the first line of the file.
- * Seemed like XFree86 didn't like this line
- * much either. It failed to parse the file.
- * Ignore lines like this completely, and
- * don't let them count as an entry.
- */
- numEntries++;
- ttype = st.nextToken();
- if (ttype != StreamTokenizer.TT_EOL) {
- break;
- }
-
- continue;
- }
- if (st.sval.charAt(0) == '!') {
- /* TurboLinux 8.0 comment line: ignore.
- * can't use st.commentChar('!') to just
- * skip because this line mustn't count
- * against numEntries.
- */
- numEntries++;
- ttype = st.nextToken();
- if (ttype != StreamTokenizer.TT_EOL) {
- break;
- }
- continue;
- }
- String fileName = st.sval.substring(0, breakPos);
- /* TurboLinux 8.0 uses some additional syntax to
- * indicate algorithmic styling values.
- * Ignore ':' separated files at the beginning
- * of the fileName
- */
- int lastColon = fileName.lastIndexOf(':');
- if (lastColon > 0) {
- if (lastColon+1 >= fileName.length()) {
- continue;
- }
- fileName = fileName.substring(lastColon+1);
- }
- String fontPart = st.sval.substring(breakPos+1);
- String fontID = specificFontIDForName(fontPart);
- String sVal = (String) fontNameMap.get(fontID);
-
- if (debugFonts) {
- logger.info("file=" + fileName +
- " xlfd=" + fontPart);
- logger.info("fontID=" + fontID +
- " sVal=" + sVal);
- }
- String fullPath = null;
- try {
- File file = new File(path,fileName);
- /* we may have a resolved symbolic link
- * this becomes important for an xlfd we
- * still need to know the location it was
- * found to update the X server font path
- * for use by AWT heavyweights - and when 2D
- * wants to use the native rasteriser.
- */
- if (xFontDirsMap == null) {
- xFontDirsMap = new HashMap();
- }
- xFontDirsMap.put(fontID, path);
- fullPath = file.getCanonicalPath();
- } catch (IOException e) {
- fullPath = path + File.separator + fileName;
- }
- Vector xVal = (Vector) xlfdMap.get(fullPath);
- if (debugFonts) {
- logger.info("fullPath=" + fullPath +
- " xVal=" + xVal);
- }
- if ((xVal == null || !xVal.contains(fontPart)) &&
- (sVal == null) || !sVal.startsWith("/")) {
- if (debugFonts) {
- logger.info("Map fontID:"+fontID +
- "to file:" + fullPath);
- }
- fontNameMap.put(fontID, fullPath);
- if (xVal == null) {
- xVal = new Vector();
- xlfdMap.put (fullPath, xVal);
- }
- xVal.add(fontPart);
- }
-
- ttype = st.nextToken();
- if (ttype != StreamTokenizer.TT_EOL) {
- break;
- }
- }
- }
- }
- fr.close();
- }
- } catch (IOException ioe1) {
- } finally {
- if (fr != null) {
- try {
- fr.close();
- } catch (IOException ioe2) {
- }
- }
- }
- }
-
- @Override
- public void loadFonts() {
- super.loadFonts();
- /* These maps are greatly expanded during a loadFonts but
- * can be reset to their initial state afterwards.
- * Since preferLocaleFonts() and preferProportionalFonts() will
- * trigger a partial repopulating from the FontConfiguration
- * it has to be the inital (empty) state for the latter two, not
- * simply nulling out.
- * xFontDirsMap is a special case in that the implementation
- * will typically not ever need to initialise it so it can be null.
- */
- xFontDirsMap = null;
- xlfdMap = new HashMap(1);
- fontNameMap = new HashMap(1);
- }
-
- // Implements SunGraphicsEnvironment.createFontConfiguration.
- protected FontConfiguration createFontConfiguration() {
-
- /* The logic here decides whether to use a preconfigured
- * fontconfig.properties file, or synthesise one using platform APIs.
- * On Solaris (as opposed to OpenSolaris) we try to use the
- * pre-configured ones, but if the files it specifies are missing
- * we fail-safe to synthesising one. This might happen if Solaris
- * changes its fonts.
- * For OpenSolaris I don't expect us to ever create fontconfig files,
- * so it will always synthesise. Note that if we misidentify
- * OpenSolaris as Solaris, then the test for the presence of
- * Solaris-only font files will correct this.
- * For Linux we require an exact match of distro and version to
- * use the preconfigured file, and also that it points to
- * existent fonts.
- * If synthesising fails, we fall back to any preconfigured file
- * and do the best we can. For the commercial JDK this will be
- * fine as it includes the Lucida fonts. OpenJDK should not hit
- * this as the synthesis should always work on its platforms.
- */
- FontConfiguration mFontConfig = new MFontConfiguration(this);
- if (isOpenSolaris ||
- (isLinux &&
- (!mFontConfig.foundOsSpecificFile() ||
- !mFontConfig.fontFilesArePresent()) ||
- (isSolaris && !mFontConfig.fontFilesArePresent()))) {
- FcFontConfiguration fcFontConfig =
- new FcFontConfiguration(this);
- if (fcFontConfig.init()) {
- return fcFontConfig;
- }
- }
- mFontConfig.init();
- return mFontConfig;
- }
- public FontConfiguration
- createFontConfiguration(boolean preferLocaleFonts,
- boolean preferPropFonts) {
-
- FontConfiguration config = getFontConfiguration();
- if (config instanceof FcFontConfiguration) {
- // Doesn't need to implement the alternate support.
- return config;
- }
-
- return new MFontConfiguration(this,
- preferLocaleFonts, preferPropFonts);
- }
/**
* Returns face name for default font, or null if
@@ -1006,8 +284,8 @@
// pRunningXinerama() simply returns a global boolean variable,
// so there is no need to synchronize here
xinerState = Boolean.valueOf(pRunningXinerama());
- if (screenLog.isLoggable(Level.FINER)) {
- screenLog.log(Level.FINER, "Running Xinerama: " + xinerState);
+ if (screenLog.isLoggable(PlatformLogger.FINER)) {
+ screenLog.finer("Running Xinerama: " + xinerState);
}
}
return xinerState.booleanValue();
@@ -1090,24 +368,24 @@
(unionRect.width / 2) + unionRect.x < center.x + 1 &&
(unionRect.height / 2) + unionRect.y < center.y + 1) {
- if (screenLog.isLoggable(Level.FINER)) {
- screenLog.log(Level.FINER, "Video Wall: center point is at center of all displays.");
+ if (screenLog.isLoggable(PlatformLogger.FINER)) {
+ screenLog.finer("Video Wall: center point is at center of all displays.");
}
return unionRect;
}
// next, check if at center of one monitor
if (centerMonitorRect != null) {
- if (screenLog.isLoggable(Level.FINER)) {
- screenLog.log(Level.FINER, "Center point at center of a particular " +
- "monitor, but not of the entire virtual display.");
+ if (screenLog.isLoggable(PlatformLogger.FINER)) {
+ screenLog.finer("Center point at center of a particular " +
+ "monitor, but not of the entire virtual display.");
}
return centerMonitorRect;
}
// otherwise, the center is at some weird spot: return unionRect
- if (screenLog.isLoggable(Level.FINER)) {
- screenLog.log(Level.FINER, "Center point is somewhere strange - return union of all bounds.");
+ if (screenLog.isLoggable(PlatformLogger.FINER)) {
+ screenLog.finer("Center point is somewhere strange - return union of all bounds.");
}
return unionRect;
}
--- a/jdk/src/solaris/classes/sun/awt/X11InputMethod.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11InputMethod.java Mon Oct 05 18:22:00 2009 -0700
@@ -57,7 +57,7 @@
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
@@ -68,7 +68,7 @@
* @author JavaSoft International
*/
public abstract class X11InputMethod extends InputMethodAdapter {
- private static final Logger log = Logger.getLogger("sun.awt.X11InputMethod");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11InputMethod");
/*
* The following XIM* values must be the same as those defined in
* Xlib.h
@@ -324,8 +324,8 @@
return;
if (lastXICFocussedComponent != null){
- if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "XICFocused {0}, AWTFocused {1}", new Object[] {
- lastXICFocussedComponent, awtFocussedComponent});
+ if (log.isLoggable(PlatformLogger.FINE)) log.fine("XICFocused {0}, AWTFocused {1}",
+ lastXICFocussedComponent, awtFocussedComponent);
}
if (pData == 0) {
--- a/jdk/src/solaris/classes/sun/awt/motif/MFontConfiguration.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/motif/MFontConfiguration.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,37 +30,42 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
+import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
-import java.util.logging.Logger;
import java.util.Properties;
import java.util.Scanner;
import sun.awt.FontConfiguration;
+import sun.awt.X11FontManager;
import sun.awt.X11GraphicsEnvironment;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
import sun.java2d.SunGraphicsEnvironment;
-import java.nio.charset.Charset;
+import sun.util.logging.PlatformLogger;
public class MFontConfiguration extends FontConfiguration {
private static FontConfiguration fontConfig = null;
- private static Logger logger;
+ private static PlatformLogger logger;
- public MFontConfiguration(SunGraphicsEnvironment environment) {
- super(environment);
- if (SunGraphicsEnvironment.debugFonts) {
- logger = Logger.getLogger("sun.awt.FontConfiguration");
+ public MFontConfiguration(SunFontManager fm) {
+ super(fm);
+ if (FontUtilities.debugFonts()) {
+ logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
}
initTables();
}
- public MFontConfiguration(SunGraphicsEnvironment environment,
+ public MFontConfiguration(SunFontManager fm,
boolean preferLocaleFonts,
boolean preferPropFonts) {
- super(environment, preferLocaleFonts, preferPropFonts);
- if (SunGraphicsEnvironment.debugFonts) {
- logger = Logger.getLogger("sun.awt.FontConfiguration");
+ super(fm, preferLocaleFonts, preferPropFonts);
+ if (FontUtilities.debugFonts()) {
+ logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
}
initTables();
}
@@ -90,7 +95,7 @@
reorderMap.put("UTF-8.th", "thai");
reorderMap.put("UTF-8.zh.TW", "chinese-big5");
reorderMap.put("UTF-8.zh.HK", split("chinese-big5,chinese-hkscs"));
- if (sun.font.FontManager.isSolaris8) {
+ if (FontUtilities.isSolaris8) {
reorderMap.put("UTF-8.zh.CN", split("chinese-gb2312,chinese-big5"));
} else {
reorderMap.put("UTF-8.zh.CN",
@@ -100,7 +105,7 @@
split("chinese-big5,chinese-hkscs,chinese-gb18030-0,chinese-gb18030-1"));
reorderMap.put("Big5", "chinese-big5");
reorderMap.put("Big5-HKSCS", split("chinese-big5,chinese-hkscs"));
- if (! sun.font.FontManager.isSolaris8 && ! sun.font.FontManager.isSolaris9) {
+ if (! FontUtilities.isSolaris8 && ! FontUtilities.isSolaris9) {
reorderMap.put("GB2312", split("chinese-gbk,chinese-gb2312"));
} else {
reorderMap.put("GB2312","chinese-gb2312");
@@ -209,7 +214,7 @@
protected String mapFileName(String fileName) {
if (fileName != null && fileName.startsWith(fontsDirPrefix)) {
- return SunGraphicsEnvironment.jreFontDirName
+ return SunFontManager.jreFontDirName
+ fileName.substring(fontsDirPrefix.length());
}
return fileName;
@@ -310,7 +315,7 @@
!needToSearchForFile(fileName)) {
return fileName;
}
- return ((X11GraphicsEnvironment) environment).getFileNameFromXLFD(componentFontName);
+ return ((X11FontManager) fontManager).getFileNameFromXLFD(componentFontName);
}
/**
--- a/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java Mon Oct 05 18:22:00 2009 -0700
@@ -43,7 +43,6 @@
import java.util.Properties;
import java.util.Map;
import java.util.Iterator;
-import java.util.logging.*;
import sun.awt.AppContext;
import sun.awt.AWTAutoShutdown;
@@ -61,6 +60,7 @@
import java.awt.dnd.peer.DragSourceContextPeer;
//import sun.awt.motif.MInputMethod;
+import sun.awt.X11FontManager;
import sun.awt.X11GraphicsConfig;
import sun.awt.X11GraphicsEnvironment;
import sun.awt.XSettings;
@@ -73,10 +73,11 @@
import sun.misc.Unsafe;
import sun.security.action.GetBooleanAction;
+import sun.util.logging.PlatformLogger;
public class MToolkit extends UNIXToolkit implements Runnable {
- private static final Logger log = Logger.getLogger("sun.awt.motif.MToolkit");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.motif.MToolkit");
// the system clipboard - CLIPBOARD selection
//X11Clipboard clipboard;
@@ -124,7 +125,7 @@
* and when we know that MToolkit is the one that will be used,
* since XToolkit doesn't need the X11 font path set
*/
- X11GraphicsEnvironment.setNativeFontPath();
+ X11FontManager.getInstance().setNativeFontPath();
motifdnd = ((Boolean)java.security.AccessController.doPrivileged(
new GetBooleanAction("awt.dnd.motifdnd"))).booleanValue();
@@ -616,8 +617,8 @@
protected Boolean lazilyLoadDynamicLayoutSupportedProperty(String name) {
boolean nativeDynamic = isDynamicLayoutSupportedNative();
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "nativeDynamic == " + nativeDynamic);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("nativeDynamic == " + nativeDynamic);
}
return Boolean.valueOf(nativeDynamic);
--- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Mon Oct 05 18:22:00 2009 -0700
@@ -35,18 +35,19 @@
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.logging.Logger;
import java.util.Properties;
import java.util.Scanner;
import sun.awt.FontConfiguration;
import sun.awt.FontDescriptor;
import sun.awt.SunToolkit;
+import sun.awt.X11FontManager;
import sun.font.CompositeFontDescriptor;
import sun.font.FontManager;
-import sun.font.FontManager.FontConfigInfo;
-import sun.font.FontManager.FcCompFont;
-import sun.font.FontManager.FontConfigFont;
+import sun.font.FontConfigManager.FontConfigInfo;
+import sun.font.FontConfigManager.FcCompFont;
+import sun.font.FontConfigManager.FontConfigFont;
import sun.java2d.SunGraphicsEnvironment;
+import sun.util.logging.PlatformLogger;
public class FcFontConfiguration extends FontConfiguration {
@@ -68,16 +69,16 @@
private FcCompFont[] fcCompFonts = null;
- public FcFontConfiguration(SunGraphicsEnvironment environment) {
- super(environment);
+ public FcFontConfiguration(SunFontManager fm) {
+ super(fm);
init();
}
/* This isn't called but is needed to satisfy super-class contract. */
- public FcFontConfiguration(SunGraphicsEnvironment environment,
+ public FcFontConfiguration(SunFontManager fm,
boolean preferLocaleFonts,
boolean preferPropFonts) {
- super(environment, preferLocaleFonts, preferPropFonts);
+ super(fm, preferLocaleFonts, preferPropFonts);
init();
}
@@ -89,24 +90,23 @@
setFontConfiguration();
readFcInfo();
+ X11FontManager fm = (X11FontManager) fontManager;
+ FontConfigManager fcm = fm.getFontConfigManager();
if (fcCompFonts == null) {
- fcCompFonts = FontManager.loadFontConfig();
+ fcCompFonts = fcm.loadFontConfig();
if (fcCompFonts != null) {
try {
writeFcInfo();
} catch (Exception e) {
- if (SunGraphicsEnvironment.debugFonts) {
- Logger logger =
- Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("Exception writing fcInfo " + e);
+ if (FontUtilities.debugFonts()) {
+ warning("Exception writing fcInfo " + e);
}
}
- } else if (SunGraphicsEnvironment.debugFonts) {
- Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("Failed to get info from libfontconfig");
+ } else if (FontUtilities.debugFonts()) {
+ warning("Failed to get info from libfontconfig");
}
} else {
- FontManager.populateFontConfig(fcCompFonts);
+ fcm.populateFontConfig(fcCompFonts);
}
if (fcCompFonts == null) {
@@ -184,7 +184,9 @@
@Override
public String[] getPlatformFontNames() {
HashSet<String> nameSet = new HashSet<String>();
- FcCompFont[] fcCompFonts = FontManager.loadFontConfig();
+ X11FontManager fm = (X11FontManager) fontManager;
+ FontConfigManager fcm = fm.getFontConfigManager();
+ FcCompFont[] fcCompFonts = fcm.loadFontConfig();
for (int i=0; i<fcCompFonts.length; i++) {
for (int j=0; j<fcCompFonts[i].allFonts.length; j++) {
nameSet.add(fcCompFonts[i].allFonts[j].fontFile);
@@ -223,7 +225,9 @@
@Override
public CompositeFontDescriptor[] get2DCompositeFontInfo() {
- FcCompFont[] fcCompFonts = FontManager.loadFontConfig();
+ X11FontManager fm = (X11FontManager) fontManager;
+ FontConfigManager fcm = fm.getFontConfigManager();
+ FcCompFont[] fcCompFonts = fcm.loadFontConfig();
CompositeFontDescriptor[] result =
new CompositeFontDescriptor[NUM_FONTS * NUM_STYLES];
@@ -321,9 +325,8 @@
osVersion = getVersionString(f);
}
} catch (Exception e) {
- if (SunGraphicsEnvironment.debugFonts) {
- Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("Exception identifying Linux distro.");
+ if (FontUtilities.debugFonts()) {
+ warning("Exception identifying Linux distro.");
}
}
}
@@ -356,7 +359,9 @@
private void writeFcInfo() {
Properties props = new Properties();
props.setProperty("version", fileVersion);
- FontConfigInfo fcInfo = FontManager.getFontConfigInfo();
+ X11FontManager fm = (X11FontManager) fontManager;
+ FontConfigManager fcm = fm.getFontConfigManager();
+ FontConfigInfo fcInfo = fcm.getFontConfigInfo();
props.setProperty("fcversion", Integer.toString(fcInfo.fcVersion));
if (fcInfo.cacheDirs != null) {
for (int i=0;i<fcInfo.cacheDirs.length;i++) {
@@ -391,15 +396,13 @@
"JDK Font Configuration Generated File: *Do Not Edit*");
fos.close();
boolean renamed = tempFile.renameTo(fcInfoFile);
- if (!renamed && SunGraphicsEnvironment.debugFonts) {
+ if (!renamed && FontUtilities.debugFonts()) {
System.out.println("rename failed");
- Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("Failed renaming file to "+ getFcInfoFile());
+ warning("Failed renaming file to "+ getFcInfoFile());
}
} catch (Exception e) {
- if (SunGraphicsEnvironment.debugFonts) {
- Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("IOException writing to "+ getFcInfoFile());
+ if (FontUtilities.debugFonts()) {
+ warning("IOException writing to "+ getFcInfoFile());
}
}
}
@@ -415,14 +418,15 @@
return;
}
Properties props = new Properties();
+ X11FontManager fm = (X11FontManager) fontManager;
+ FontConfigManager fcm = fm.getFontConfigManager();
try {
FileInputStream fis = new FileInputStream(fcFile);
props.load(fis);
fis.close();
} catch (IOException e) {
- if (SunGraphicsEnvironment.debugFonts) {
- Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("IOException reading from "+fcFile.toString());
+ if (FontUtilities.debugFonts()) {
+ warning("IOException reading from "+fcFile.toString());
}
return;
}
@@ -439,15 +443,12 @@
try {
fcVersion = Integer.parseInt(fcVersionStr);
if (fcVersion != 0 &&
- fcVersion != FontManager.getFontConfigVersion()) {
+ fcVersion != fcm.getFontConfigVersion()) {
return;
}
} catch (Exception e) {
- if (SunGraphicsEnvironment.debugFonts) {
- Logger logger =
- Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning("Exception parsing version " +
- fcVersionStr);
+ if (FontUtilities.debugFonts()) {
+ warning("Exception parsing version " + fcVersionStr);
}
return;
}
@@ -509,10 +510,14 @@
}
fcCompFonts = fci;
} catch (Throwable t) {
- if (SunGraphicsEnvironment.debugFonts) {
- Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
- logger.warning(t.toString());
+ if (FontUtilities.debugFonts()) {
+ warning(t.toString());
}
}
}
+
+ private static void warning(String msg) {
+ PlatformLogger logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
+ logger.warning(msg);
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/solaris/classes/sun/font/FontConfigManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,472 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.util.Locale;
+
+import sun.awt.SunHints;
+import sun.awt.SunToolkit;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * Small utility class to manage FontConfig.
+ */
+public class FontConfigManager {
+
+ static boolean fontConfigFailed = false;
+
+ /* This is populated by native */
+ private static final FontConfigInfo fcInfo = new FontConfigInfo();
+
+ /* Begin support for GTK Look and Feel - query libfontconfig and
+ * return a composite Font to Swing that uses the desktop font(s).
+ */
+
+ /* These next three classes are just data structures.
+ */
+ public static class FontConfigFont {
+ public String familyName; // eg Bitstream Vera Sans
+ public String styleStr; // eg Bold
+ public String fullName; // eg Bitstream Vera Sans Bold
+ public String fontFile; // eg /usr/X11/lib/fonts/foo.ttf
+ }
+
+ public static class FcCompFont {
+ public String fcName; // eg sans
+ public String fcFamily; // eg sans
+ public String jdkName; // eg sansserif
+ public int style; // eg 0=PLAIN
+ public FontConfigFont firstFont;
+ public FontConfigFont[] allFonts;
+ //boolean preferBitmaps; // if embedded bitmaps preferred over AA
+ public CompositeFont compFont; // null if not yet created/known.
+ }
+
+ public static class FontConfigInfo {
+ public int fcVersion;
+ public String[] cacheDirs = new String[4];
+ }
+
+ /* fontconfig recognises slants roman, italic, as well as oblique,
+ * and a slew of weights, where the ones that matter here are
+ * regular and bold.
+ * To fully qualify what we want, we can for example ask for (eg)
+ * Font.PLAIN : "serif:regular:roman"
+ * Font.BOLD : "serif:bold:roman"
+ * Font.ITALIC : "serif:regular:italic"
+ * Font.BOLD|Font.ITALIC : "serif:bold:italic"
+ */
+ private static String[] fontConfigNames = {
+ "sans:regular:roman",
+ "sans:bold:roman",
+ "sans:regular:italic",
+ "sans:bold:italic",
+
+ "serif:regular:roman",
+ "serif:bold:roman",
+ "serif:regular:italic",
+ "serif:bold:italic",
+
+ "monospace:regular:roman",
+ "monospace:bold:roman",
+ "monospace:regular:italic",
+ "monospace:bold:italic",
+ };
+
+ /* This array has the array elements created in Java code and is
+ * passed down to native to be filled in.
+ */
+ private FcCompFont[] fontConfigFonts;
+
+ /**
+ * Instantiates a new FontConfigManager getting the default instance
+ * of FontManager from the FontManagerFactory.
+ */
+ public FontConfigManager() {
+ }
+
+ public static String[] getFontConfigNames() {
+ return fontConfigNames;
+ }
+
+ /* Called from code that needs to know what are the AA settings
+ * that apps using FC would pick up for the default desktop font.
+ * Note apps can change the default desktop font. etc, so this
+ * isn't certain to be right but its going to correct for most cases.
+ * Native return values map to the text aa values in sun.awt.SunHints.
+ * which is used to look up the renderinghint value object.
+ */
+ public static Object getFontConfigAAHint() {
+ return getFontConfigAAHint("sans");
+ }
+
+ /* This is public solely so that for debugging purposes it can be called
+ * with other names, which might (eg) include a size, eg "sans-24"
+ * The return value is a text aa rendering hint value.
+ * Normally we should call the no-args version.
+ */
+ public static Object getFontConfigAAHint(String fcFamily) {
+ if (FontUtilities.isWindows) {
+ return null;
+ } else {
+ int hint = getFontConfigAASettings(getFCLocaleStr(), fcFamily);
+ if (hint < 0) {
+ return null;
+ } else {
+ return SunHints.Value.get(SunHints.INTKEY_TEXT_ANTIALIASING,
+ hint);
+ }
+ }
+ }
+
+
+ private static String getFCLocaleStr() {
+ Locale l = SunToolkit.getStartupLocale();
+ String localeStr = l.getLanguage();
+ String country = l.getCountry();
+ if (!country.equals("")) {
+ localeStr = localeStr + "-" + country;
+ }
+ return localeStr;
+ }
+
+ /* This does cause the native libfontconfig to be loaded and unloaded,
+ * but it does not incur the overhead of initialisation of its
+ * data structures, so shouldn't have a measurable impact.
+ */
+ public static native int getFontConfigVersion();
+
+ /* This can be made public if it's needed to force a re-read
+ * rather than using the cached values. The re-read would be needed
+ * only if some event signalled that the fontconfig has changed.
+ * In that event this method would need to return directly the array
+ * to be used by the caller in case it subsequently changed.
+ */
+ public synchronized void initFontConfigFonts(boolean includeFallbacks) {
+
+ if (fontConfigFonts != null) {
+ if (!includeFallbacks || (fontConfigFonts[0].allFonts != null)) {
+ return;
+ }
+ }
+
+ if (FontUtilities.isWindows || fontConfigFailed) {
+ return;
+ }
+
+ long t0 = 0;
+ if (FontUtilities.isLogging()) {
+ t0 = System.nanoTime();
+ }
+
+ String[] fontConfigNames = FontConfigManager.getFontConfigNames();
+ FcCompFont[] fontArr = new FcCompFont[fontConfigNames.length];
+
+ for (int i = 0; i< fontArr.length; i++) {
+ fontArr[i] = new FcCompFont();
+ fontArr[i].fcName = fontConfigNames[i];
+ int colonPos = fontArr[i].fcName.indexOf(':');
+ fontArr[i].fcFamily = fontArr[i].fcName.substring(0, colonPos);
+ fontArr[i].jdkName = FontUtilities.mapFcName(fontArr[i].fcFamily);
+ fontArr[i].style = i % 4; // depends on array order.
+ }
+ getFontConfig(getFCLocaleStr(), fcInfo, fontArr, includeFallbacks);
+ FontConfigFont anyFont = null;
+ /* If don't find anything (eg no libfontconfig), then just return */
+ for (int i = 0; i< fontArr.length; i++) {
+ FcCompFont fci = fontArr[i];
+ if (fci.firstFont == null) {
+ if (FontUtilities.isLogging()) {
+ PlatformLogger logger = FontUtilities.getLogger();
+ logger.info("Fontconfig returned no font for " +
+ fontArr[i].fcName);
+ }
+ fontConfigFailed = true;
+ } else if (anyFont == null) {
+ anyFont = fci.firstFont;
+ }
+ }
+
+ if (anyFont == null) {
+ if (FontUtilities.isLogging()) {
+ PlatformLogger logger = FontUtilities.getLogger();
+ logger.info("Fontconfig returned no fonts at all.");
+ return;
+ }
+ } else if (fontConfigFailed) {
+ for (int i = 0; i< fontArr.length; i++) {
+ if (fontArr[i].firstFont == null) {
+ fontArr[i].firstFont = anyFont;
+ }
+ }
+ }
+
+ fontConfigFonts = fontArr;
+
+ if (FontUtilities.isLogging()) {
+
+ PlatformLogger logger = FontUtilities.getLogger();
+
+ long t1 = System.nanoTime();
+ logger.info("Time spent accessing fontconfig="
+ + ((t1 - t0) / 1000000) + "ms.");
+
+ for (int i = 0; i< fontConfigFonts.length; i++) {
+ FcCompFont fci = fontConfigFonts[i];
+ logger.info("FC font " + fci.fcName+" maps to family " +
+ fci.firstFont.familyName +
+ " in file " + fci.firstFont.fontFile);
+ if (fci.allFonts != null) {
+ for (int f=0;f<fci.allFonts.length;f++) {
+ FontConfigFont fcf = fci.allFonts[f];
+ logger.info("Family=" + fcf.familyName +
+ " Style="+ fcf.styleStr +
+ " Fullname="+fcf.fullName +
+ " File="+fcf.fontFile);
+ }
+ }
+ }
+ }
+ }
+
+ public PhysicalFont registerFromFcInfo(FcCompFont fcInfo) {
+
+ SunFontManager fm = SunFontManager.getInstance();
+
+ /* If it's a TTC file we need to know that as we will need to
+ * make sure we return the right font */
+ String fontFile = fcInfo.firstFont.fontFile;
+ int offset = fontFile.length()-4;
+ if (offset <= 0) {
+ return null;
+ }
+ String ext = fontFile.substring(offset).toLowerCase();
+ boolean isTTC = ext.equals(".ttc");
+
+ /* If this file is already registered, can just return its font.
+ * However we do need to check in case it's a TTC as we need
+ * a specific font, so rather than directly returning it, let
+ * findFont2D resolve that.
+ */
+ PhysicalFont physFont = fm.getRegisteredFontFile(fontFile);
+ if (physFont != null) {
+ if (isTTC) {
+ Font2D f2d = fm.findFont2D(fcInfo.firstFont.familyName,
+ fcInfo.style,
+ FontManager.NO_FALLBACK);
+ if (f2d instanceof PhysicalFont) { /* paranoia */
+ return (PhysicalFont)f2d;
+ } else {
+ return null;
+ }
+ } else {
+ return physFont;
+ }
+ }
+
+ /* If the font may hide a JRE font (eg fontconfig says it is
+ * Lucida Sans), we want to use the JRE version, so make it
+ * point to the JRE font.
+ */
+ physFont = fm.findJREDeferredFont(fcInfo.firstFont.familyName,
+ fcInfo.style);
+
+ /* It is also possible the font file is on the "deferred" list,
+ * in which case we can just initialise it now.
+ */
+ if (physFont == null &&
+ fm.isDeferredFont(fontFile) == true) {
+ physFont = fm.initialiseDeferredFont(fcInfo.firstFont.fontFile);
+ /* use findFont2D to get the right font from TTC's */
+ if (physFont != null) {
+ if (isTTC) {
+ Font2D f2d = fm.findFont2D(fcInfo.firstFont.familyName,
+ fcInfo.style,
+ FontManager.NO_FALLBACK);
+ if (f2d instanceof PhysicalFont) { /* paranoia */
+ return (PhysicalFont)f2d;
+ } else {
+ return null;
+ }
+ } else {
+ return physFont;
+ }
+ }
+ }
+
+ /* In the majority of cases we reach here, and need to determine
+ * the type and rank to register the font.
+ */
+ if (physFont == null) {
+ int fontFormat = SunFontManager.FONTFORMAT_NONE;
+ int fontRank = Font2D.UNKNOWN_RANK;
+
+ if (ext.equals(".ttf") || isTTC) {
+ fontFormat = SunFontManager.FONTFORMAT_TRUETYPE;
+ fontRank = Font2D.TTF_RANK;
+ } else if (ext.equals(".pfa") || ext.equals(".pfb")) {
+ fontFormat = SunFontManager.FONTFORMAT_TYPE1;
+ fontRank = Font2D.TYPE1_RANK;
+ }
+ physFont = fm.registerFontFile(fcInfo.firstFont.fontFile, null,
+ fontFormat, true, fontRank);
+ }
+ return physFont;
+ }
+
+ /*
+ * We need to return a Composite font which has as the font in
+ * its first slot one obtained from fontconfig.
+ */
+ public CompositeFont getFontConfigFont(String name, int style) {
+
+ name = name.toLowerCase();
+
+ initFontConfigFonts(false);
+
+ FcCompFont fcInfo = null;
+ for (int i=0; i<fontConfigFonts.length; i++) {
+ if (name.equals(fontConfigFonts[i].fcFamily) &&
+ style == fontConfigFonts[i].style) {
+ fcInfo = fontConfigFonts[i];
+ break;
+ }
+ }
+ if (fcInfo == null) {
+ fcInfo = fontConfigFonts[0];
+ }
+
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .info("FC name=" + name + " style=" + style +
+ " uses " + fcInfo.firstFont.familyName +
+ " in file: " + fcInfo.firstFont.fontFile);
+ }
+
+ if (fcInfo.compFont != null) {
+ return fcInfo.compFont;
+ }
+
+ /* jdkFont is going to be used for slots 1..N and as a fallback.
+ * Slot 0 will be the physical font from fontconfig.
+ */
+ FontManager fm = FontManagerFactory.getInstance();
+ CompositeFont jdkFont = (CompositeFont)
+ fm.findFont2D(fcInfo.jdkName, style, FontManager.LOGICAL_FALLBACK);
+
+ if (fcInfo.firstFont.familyName == null ||
+ fcInfo.firstFont.fontFile == null) {
+ return (fcInfo.compFont = jdkFont);
+ }
+
+ /* First, see if the family and exact style is already registered.
+ * If it is, use it. If it's not, then try to register it.
+ * If that registration fails (signalled by null) just return the
+ * regular JDK composite.
+ * Algorithmically styled fonts won't match on exact style, so
+ * will fall through this code, but the regisration code will
+ * find that file already registered and return its font.
+ */
+ FontFamily family = FontFamily.getFamily(fcInfo.firstFont.familyName);
+ PhysicalFont physFont = null;
+ if (family != null) {
+ Font2D f2D = family.getFontWithExactStyleMatch(fcInfo.style);
+ if (f2D instanceof PhysicalFont) {
+ physFont = (PhysicalFont)f2D;
+ }
+ }
+
+ if (physFont == null ||
+ !fcInfo.firstFont.fontFile.equals(physFont.platName)) {
+ physFont = registerFromFcInfo(fcInfo);
+ if (physFont == null) {
+ return (fcInfo.compFont = jdkFont);
+ }
+ family = FontFamily.getFamily(physFont.getFamilyName(null));
+ }
+
+ /* Now register the fonts in the family (the other styles) after
+ * checking that they aren't already registered and are actually in
+ * a different file. They may be the same file in CJK cases.
+ * For cases where they are different font files - eg as is common for
+ * Latin fonts, then we rely on fontconfig to report these correctly.
+ * Assume that all styles of this font are found by fontconfig,
+ * so we can find all the family members which must be registered
+ * together to prevent synthetic styling.
+ */
+ for (int i=0; i<fontConfigFonts.length; i++) {
+ FcCompFont fc = fontConfigFonts[i];
+ if (fc != fcInfo &&
+ physFont.getFamilyName(null).equals(fc.firstFont.familyName) &&
+ !fc.firstFont.fontFile.equals(physFont.platName) &&
+ family.getFontWithExactStyleMatch(fc.style) == null) {
+
+ registerFromFcInfo(fontConfigFonts[i]);
+ }
+ }
+
+ /* Now we have a physical font. We will back this up with the JDK
+ * logical font (sansserif, serif, or monospaced) that corresponds
+ * to the Pango/GTK/FC logical font name.
+ */
+ return (fcInfo.compFont = new CompositeFont(physFont, jdkFont));
+ }
+
+ /**
+ *
+ * @param locale
+ * @param fcFamily
+ * @return
+ */
+ public FcCompFont[] getFontConfigFonts() {
+ return fontConfigFonts;
+ }
+
+ /* Return an array of FcCompFont structs describing the primary
+ * font located for each of fontconfig/GTK/Pango's logical font names.
+ */
+ private static native void getFontConfig(String locale,
+ FontConfigInfo fcInfo,
+ FcCompFont[] fonts,
+ boolean includeFallbacks);
+
+ void populateFontConfig(FcCompFont[] fcInfo) {
+ fontConfigFonts = fcInfo;
+ }
+
+ FcCompFont[] loadFontConfig() {
+ initFontConfigFonts(true);
+ return fontConfigFonts;
+ }
+
+ FontConfigInfo getFontConfigInfo() {
+ initFontConfigFonts(true);
+ return fcInfo;
+ }
+
+ private static native int
+ getFontConfigAASettings(String locale, String fcFamily);
+}
--- a/jdk/src/solaris/classes/sun/font/NativeFont.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/font/NativeFont.java Mon Oct 05 18:22:00 2009 -0700
@@ -242,7 +242,8 @@
mapper = new NativeGlyphMapper(this);
} else {
/* we need to delegate */
- delegateFont = FontManager.getDefaultPhysicalFont();
+ SunFontManager fm = SunFontManager.getInstance();
+ delegateFont = fm.getDefaultPhysicalFont();
mapper = delegateFont.getMapper();
}
}
@@ -254,7 +255,8 @@
return new NativeStrike(this, desc);
} else {
if (delegateFont == null) {
- delegateFont = FontManager.getDefaultPhysicalFont();
+ SunFontManager fm = SunFontManager.getInstance();
+ delegateFont = fm.getDefaultPhysicalFont();
}
/* If no FileFont's are found, delegate font may be
* a NativeFont, so we need to avoid recursing here.
@@ -314,7 +316,8 @@
PhysicalFont getDelegateFont() {
if (delegateFont == null) {
- delegateFont = FontManager.getDefaultPhysicalFont();
+ SunFontManager fm = SunFontManager.getInstance();
+ delegateFont = fm.getDefaultPhysicalFont();
}
return delegateFont;
}
--- a/jdk/src/solaris/classes/sun/font/NativeStrike.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/font/NativeStrike.java Mon Oct 05 18:22:00 2009 -0700
@@ -112,11 +112,12 @@
double scale = Math.abs(desc.devTx.getScaleX());
pScalerContext = createScalerContext(nameBytes, ptSize, scale);
if (pScalerContext == 0L) {
- FontManager.deRegisterBadFont(nativeFont);
+ SunFontManager.getInstance().deRegisterBadFont(nativeFont);
pScalerContext = createNullScalerContext();
numGlyphs = 0;
- if (FontManager.logging) {
- FontManager.logger.severe("Could not create native strike " +
+ if (FontUtilities.isLogging()) {
+ FontUtilities.getLogger()
+ .severe("Could not create native strike " +
new String(nameBytes));
}
return;
@@ -134,7 +135,7 @@
private boolean usingIntGlyphImages() {
if (intGlyphImages != null) {
return true;
- } else if (FontManager.longAddresses) {
+ } else if (longAddresses) {
return false;
} else {
/* We could obtain minGlyphIndex and index relative to that
@@ -153,7 +154,7 @@
}
private long[] getLongGlyphImages() {
- if (longGlyphImages == null && FontManager.longAddresses) {
+ if (longGlyphImages == null && longAddresses) {
/* We could obtain minGlyphIndex and index relative to that
* if we need to save space.
--- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java Mon Oct 05 18:22:00 2009 -0700
@@ -661,9 +661,10 @@
}
}
} else if (category == OrientationRequested.class) {
- if (flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
- flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
- flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT)) {
+ if ((flavor != null) &&
+ (flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
+ flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
+ flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) {
return null;
}
--- a/jdk/src/solaris/native/sun/awt/fontpath.c Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/solaris/native/sun/awt/fontpath.c Mon Oct 05 18:22:00 2009 -0700
@@ -150,15 +150,26 @@
static jboolean isLocalSet = False;
jboolean ret;
- if (isLocalSet) {
- return isLocal;
+ if (! isLocalSet) {
+ jclass geCls = (*env)->FindClass(env, "java/awt/GraphicsEnvironment");
+ jmethodID getLocalGE = (*env)->GetStaticMethodID(env, geCls,
+ "getLocalGraphicsEnvironment",
+ "()Ljava/awt/GraphicsEnvironment;");
+ jobject ge = (*env)->CallStaticObjectMethod(env, geCls, getLocalGE);
+
+ jclass sgeCls = (*env)->FindClass(env,
+ "sun/java2d/SunGraphicsEnvironment");
+ if ((*env)->IsInstanceOf(env, ge, sgeCls)) {
+ jmethodID isDisplayLocal = (*env)->GetMethodID(env, sgeCls,
+ "isDisplayLocal",
+ "()Z");
+ isLocal = (*env)->CallBooleanMethod(env, ge, isDisplayLocal);
+ } else {
+ isLocal = True;
+ }
+ isLocalSet = True;
}
- isLocal = JNU_CallStaticMethodByName(env, NULL,
- "sun/awt/X11GraphicsEnvironment",
- "_isDisplayLocal",
- "()Z").z;
- isLocalSet = True;
return isLocal;
}
@@ -516,8 +527,8 @@
return path;
}
-JNIEXPORT jstring JNICALL Java_sun_font_FontManager_getFontPath
-(JNIEnv *env, jclass obj, jboolean noType1) {
+JNIEXPORT jstring JNICALL Java_sun_awt_X11FontManager_getFontPath
+(JNIEnv *env, jobject thiz, jboolean noType1) {
jstring ret;
static char *ptr = NULL; /* retain result across calls */
@@ -564,7 +575,7 @@
}
#endif /* !HEADLESS */
-JNIEXPORT void JNICALL Java_sun_font_FontManager_setNativeFontPath
+JNIEXPORT void JNICALL Java_sun_font_X11FontManager_setNativeFontPath
(JNIEnv *env, jclass obj, jstring theString) {
#ifdef HEADLESS
return;
@@ -592,21 +603,6 @@
#endif
}
-/* This isn't yet used on unix, the implementation is added since shared
- * code calls this method in preparation for future use.
- */
-/* Obtain all the fontname -> filename mappings.
- * This is called once and the results returned to Java code which can
- * use it for lookups to reduce or avoid the need to search font files.
- */
-JNIEXPORT void JNICALL
-Java_sun_font_FontManager_populateFontFileNameMap
-(JNIEnv *env, jclass obj, jobject fontToFileMap,
- jobject fontToFamilyMap, jobject familyToFontListMap, jobject locale)
-{
- return;
-}
-
#include <dlfcn.h>
#ifndef __linux__ /* i.e. is solaris */
#include <link.h>
@@ -865,7 +861,7 @@
#define TEXT_AA_LCD_VBGR 7
JNIEXPORT jint JNICALL
-Java_sun_font_FontManager_getFontConfigAASettings
+Java_sun_font_FontConfigManager_getFontConfigAASettings
(JNIEnv *env, jclass obj, jstring localeStr, jstring fcNameStr) {
FcNameParseFuncType FcNameParse;
@@ -975,7 +971,7 @@
}
JNIEXPORT jint JNICALL
-Java_sun_font_FontManager_getFontConfigVersion
+Java_sun_font_FontConfigManager_getFontConfigVersion
(JNIEnv *env, jclass obj) {
void* libfontconfig;
@@ -1000,7 +996,7 @@
JNIEXPORT void JNICALL
-Java_sun_font_FontManager_getFontConfig
+Java_sun_font_FontConfigManager_getFontConfig
(JNIEnv *env, jclass obj, jstring localeStr, jobject fcInfoObj,
jobjectArray fcCompFontArray, jboolean includeFallbacks) {
@@ -1034,11 +1030,11 @@
char* debugMinGlyphsStr = getenv("J2D_DEBUG_MIN_GLYPHS");
jclass fcInfoClass =
- (*env)->FindClass(env, "sun/font/FontManager$FontConfigInfo");
+ (*env)->FindClass(env, "sun/font/FontConfigManager$FontConfigInfo");
jclass fcCompFontClass =
- (*env)->FindClass(env, "sun/font/FontManager$FcCompFont");
+ (*env)->FindClass(env, "sun/font/FontConfigManager$FcCompFont");
jclass fcFontClass =
- (*env)->FindClass(env, "sun/font/FontManager$FontConfigFont");
+ (*env)->FindClass(env, "sun/font/FontConfigManager$FontConfigFont");
if (fcInfoObj == NULL || fcCompFontArray == NULL || fcInfoClass == NULL ||
fcCompFontClass == NULL || fcFontClass == NULL) {
@@ -1054,11 +1050,11 @@
"fcName", "Ljava/lang/String;");
fcFirstFontID =
(*env)->GetFieldID(env, fcCompFontClass, "firstFont",
- "Lsun/font/FontManager$FontConfigFont;");
+ "Lsun/font/FontConfigManager$FontConfigFont;");
fcAllFontsID =
(*env)->GetFieldID(env, fcCompFontClass, "allFonts",
- "[Lsun/font/FontManager$FontConfigFont;");
+ "[Lsun/font/FontConfigManager$FontConfigFont;");
fcFontCons = (*env)->GetMethodID(env, fcFontClass, "<init>", "()V");
@@ -1207,11 +1203,7 @@
* Inspect the returned fonts and the ones we like (adds enough glyphs)
* are added to the arrays and we increment 'fontCount'.
*/
- if (includeFallbacks) {
- nfonts = fontset->nfont;
- } else {
- nfonts = 1;
- }
+ nfonts = fontset->nfont;
family = (FcChar8**)calloc(nfonts, sizeof(FcChar8*));
styleStr = (FcChar8**)calloc(nfonts, sizeof(FcChar8*));
fullname = (FcChar8**)calloc(nfonts, sizeof(FcChar8*));
@@ -1253,7 +1245,7 @@
* adversely affects load time for minimal value-add.
* This is still likely far more than we've had in the past.
*/
- if (nfonts==10) {
+ if (j==10) {
minGlyphs = 50;
}
if (unionCharset == NULL) {
@@ -1272,6 +1264,9 @@
(*FcPatternGetString)(fontPattern, FC_FAMILY, 0, &family[j]);
(*FcPatternGetString)(fontPattern, FC_STYLE, 0, &styleStr[j]);
(*FcPatternGetString)(fontPattern, FC_FULLNAME, 0, &fullname[j]);
+ if (!includeFallbacks) {
+ break;
+ }
}
/* Once we get here 'fontCount' is the number of returned fonts
@@ -1313,6 +1308,8 @@
}
if (includeFallbacks) {
(*env)->SetObjectArrayElement(env, fcFontArr, fn++,fcFont);
+ } else {
+ break;
}
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/windows/classes/sun/awt/Win32FontManager.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,280 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package sun.awt;
+
+import java.awt.FontFormatException;
+import java.awt.GraphicsEnvironment;
+import java.io.File;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+
+import sun.awt.Win32GraphicsEnvironment;
+import sun.awt.windows.WFontConfiguration;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
+import sun.font.TrueTypeFont;
+import sun.java2d.HeadlessGraphicsEnvironment;
+import sun.java2d.SunGraphicsEnvironment;
+
+/**
+ * The X11 implementation of {@link FontManager}.
+ */
+public class Win32FontManager extends SunFontManager {
+
+ private static String[] defaultPlatformFont = null;
+
+ private static TrueTypeFont eudcFont;
+
+ static {
+
+ AccessController.doPrivileged(new PrivilegedAction() {
+
+ public Object run() {
+ String eudcFile = getEUDCFontFile();
+ if (eudcFile != null) {
+ try {
+ eudcFont = new TrueTypeFont(eudcFile, null, 0,
+ true);
+ } catch (FontFormatException e) {
+ }
+ }
+ return null;
+ }
+
+ });
+ }
+
+ /* Used on Windows to obtain from the windows registry the name
+ * of a file containing the system EUFC font. If running in one of
+ * the locales for which this applies, and one is defined, the font
+ * defined by this file is appended to all composite fonts as a
+ * fallback component.
+ */
+ private static native String getEUDCFontFile();
+
+ public Win32FontManager() {
+ super();
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+
+ /* Register the JRE fonts so that the native platform can
+ * access them. This is used only on Windows so that when
+ * printing the printer driver can access the fonts.
+ */
+ registerJREFontsWithPlatform(jreFontDirName);
+ return null;
+ }
+ });
+ }
+
+ /* Unlike the shared code version, this expects a base file name -
+ * not a full path name.
+ * The font configuration file has base file names and the FontConfiguration
+ * class reports these back to the GraphicsEnvironment, so these
+ * are the componentFileNames of CompositeFonts.
+ */
+ protected void registerFontFile(String fontFileName, String[] nativeNames,
+ int fontRank, boolean defer) {
+
+ // REMIND: case compare depends on platform
+ if (registeredFontFiles.contains(fontFileName)) {
+ return;
+ }
+ registeredFontFiles.add(fontFileName);
+
+ int fontFormat;
+ if (getTrueTypeFilter().accept(null, fontFileName)) {
+ fontFormat = SunFontManager.FONTFORMAT_TRUETYPE;
+ } else if (getType1Filter().accept(null, fontFileName)) {
+ fontFormat = SunFontManager.FONTFORMAT_TYPE1;
+ } else {
+ /* on windows we don't use/register native fonts */
+ return;
+ }
+
+ if (fontPath == null) {
+ fontPath = getPlatformFontPath(noType1Font);
+ }
+
+ /* Look in the JRE font directory first.
+ * This is playing it safe as we would want to find fonts in the
+ * JRE font directory ahead of those in the system directory
+ */
+ String tmpFontPath = jreFontDirName+File.pathSeparator+fontPath;
+ StringTokenizer parser = new StringTokenizer(tmpFontPath,
+ File.pathSeparator);
+
+ boolean found = false;
+ try {
+ while (!found && parser.hasMoreTokens()) {
+ String newPath = parser.nextToken();
+ File theFile = new File(newPath, fontFileName);
+ if (theFile.canRead()) {
+ found = true;
+ String path = theFile.getAbsolutePath();
+ if (defer) {
+ registerDeferredFont(fontFileName, path,
+ nativeNames,
+ fontFormat, true,
+ fontRank);
+ } else {
+ registerFontFile(path, nativeNames,
+ fontFormat, true,
+ fontRank);
+ }
+ break;
+ }
+ }
+ } catch (NoSuchElementException e) {
+ System.err.println(e);
+ }
+ if (!found) {
+ addToMissingFontFileList(fontFileName);
+ }
+ }
+
+ @Override
+ protected FontConfiguration createFontConfiguration() {
+
+ FontConfiguration fc = new WFontConfiguration(this);
+ fc.init();
+ return fc;
+ }
+
+ @Override
+ public FontConfiguration createFontConfiguration(boolean preferLocaleFonts,
+ boolean preferPropFonts) {
+
+ return new WFontConfiguration(this,
+ preferLocaleFonts,preferPropFonts);
+ }
+
+ protected void
+ populateFontFileNameMap(HashMap<String,String> fontToFileMap,
+ HashMap<String,String> fontToFamilyNameMap,
+ HashMap<String,ArrayList<String>>
+ familyToFontListMap,
+ Locale locale) {
+
+ populateFontFileNameMap0(fontToFileMap, fontToFamilyNameMap,
+ familyToFontListMap, locale);
+
+ }
+
+ private static native void
+ populateFontFileNameMap0(HashMap<String,String> fontToFileMap,
+ HashMap<String,String> fontToFamilyNameMap,
+ HashMap<String,ArrayList<String>>
+ familyToFontListMap,
+ Locale locale);
+
+ public synchronized native String getFontPath(boolean noType1Fonts);
+
+ public String[] getDefaultPlatformFont() {
+
+ if (defaultPlatformFont != null) {
+ return defaultPlatformFont;
+ }
+
+ String[] info = new String[2];
+ info[0] = "Arial";
+ info[1] = "c:\\windows\\fonts";
+ final String[] dirs = getPlatformFontDirs(true);
+ if (dirs.length > 1) {
+ String dir = (String)
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ for (int i=0; i<dirs.length; i++) {
+ String path =
+ dirs[i] + File.separator + "arial.ttf";
+ File file = new File(path);
+ if (file.exists()) {
+ return dirs[i];
+ }
+ }
+ return null;
+ }
+ });
+ if (dir != null) {
+ info[1] = dir;
+ }
+ } else {
+ info[1] = dirs[0];
+ }
+ info[1] = info[1] + File.separator + "arial.ttf";
+ defaultPlatformFont = info;
+ return defaultPlatformFont;
+ }
+
+ /* register only TrueType/OpenType fonts
+ * Because these need to be registed just for use when printing,
+ * we defer the actual registration and the static initialiser
+ * for the printing class makes the call to registerJREFontsForPrinting()
+ */
+ static String fontsForPrinting = null;
+ protected void registerJREFontsWithPlatform(String pathName) {
+ fontsForPrinting = pathName;
+ }
+
+ public static void registerJREFontsForPrinting() {
+ final String pathName;
+ synchronized (Win32GraphicsEnvironment.class) {
+ GraphicsEnvironment.getLocalGraphicsEnvironment();
+ if (fontsForPrinting == null) {
+ return;
+ }
+ pathName = fontsForPrinting;
+ fontsForPrinting = null;
+ }
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction() {
+ public Object run() {
+ File f1 = new File(pathName);
+ String[] ls = f1.list(SunFontManager.getInstance().
+ getTrueTypeFilter());
+ if (ls == null) {
+ return null;
+ }
+ for (int i=0; i <ls.length; i++ ) {
+ File fontFile = new File(f1, ls[i]);
+ registerFontWithPlatform(fontFile.getAbsolutePath());
+ }
+ return null;
+ }
+ });
+ }
+
+ protected static native void registerFontWithPlatform(String fontName);
+
+ protected static native void deRegisterFontWithPlatform(String fontName);
+
+}
--- a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Mon Oct 05 18:22:00 2009 -0700
@@ -43,6 +43,8 @@
import sun.awt.windows.WPrinterJob;
import sun.awt.windows.WToolkit;
import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.SunFontManager;
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.WindowsSurfaceManagerFactory;
@@ -68,7 +70,6 @@
// setup flags before initializing native layer
WindowsFlags.initFlags();
initDisplayWrapper();
- eudcFontFileName = getEUDCFontFile();
// Install correct surface manager factory.
SurfaceManagerFactory.setInstance(new WindowsSurfaceManagerFactory());
@@ -211,14 +212,6 @@
* ----END DISPLAY CHANGE SUPPORT----
*/
- /* Used on Windows to obtain from the windows registry the name
- * of a file containing the system EUFC font. If running in one of
- * the locales for which this applies, and one is defined, the font
- * defined by this file is appended to all composite fonts as a
- * fallback component.
- */
- private static native String getEUDCFontFile();
-
/**
* Whether registerFontFile expects absolute or relative
* font file names.
@@ -227,114 +220,6 @@
return false;
}
- /* Unlike the shared code version, this expects a base file name -
- * not a full path name.
- * The font configuration file has base file names and the FontConfiguration
- * class reports these back to the GraphicsEnvironment, so these
- * are the componentFileNames of CompositeFonts.
- */
- protected void registerFontFile(String fontFileName, String[] nativeNames,
- int fontRank, boolean defer) {
-
- // REMIND: case compare depends on platform
- if (registeredFontFiles.contains(fontFileName)) {
- return;
- }
- registeredFontFiles.add(fontFileName);
-
- int fontFormat;
- if (ttFilter.accept(null, fontFileName)) {
- fontFormat = FontManager.FONTFORMAT_TRUETYPE;
- } else if (t1Filter.accept(null, fontFileName)) {
- fontFormat = FontManager.FONTFORMAT_TYPE1;
- } else {
- /* on windows we don't use/register native fonts */
- return;
- }
-
- if (fontPath == null) {
- fontPath = getPlatformFontPath(noType1Font);
- }
-
- /* Look in the JRE font directory first.
- * This is playing it safe as we would want to find fonts in the
- * JRE font directory ahead of those in the system directory
- */
- String tmpFontPath = jreFontDirName+File.pathSeparator+fontPath;
- StringTokenizer parser = new StringTokenizer(tmpFontPath,
- File.pathSeparator);
-
- boolean found = false;
- try {
- while (!found && parser.hasMoreTokens()) {
- String newPath = parser.nextToken();
- boolean ujr = newPath.equals(jreFontDirName);
- File theFile = new File(newPath, fontFileName);
- if (theFile.canRead()) {
- found = true;
- String path = theFile.getAbsolutePath();
- if (defer) {
- FontManager.registerDeferredFont(fontFileName, path,
- nativeNames,
- fontFormat, ujr,
- fontRank);
- } else {
- FontManager.registerFontFile(path, nativeNames,
- fontFormat, ujr,
- fontRank);
- }
- break;
- }
- }
- } catch (NoSuchElementException e) {
- System.err.println(e);
- }
- if (!found) {
- addToMissingFontFileList(fontFileName);
- }
- }
-
- /* register only TrueType/OpenType fonts
- * Because these need to be registed just for use when printing,
- * we defer the actual registration and the static initialiser
- * for the printing class makes the call to registerJREFontsForPrinting()
- */
- static String fontsForPrinting = null;
- protected void registerJREFontsWithPlatform(String pathName) {
- fontsForPrinting = pathName;
- }
-
- public static void registerJREFontsForPrinting() {
- final String pathName;
- synchronized (Win32GraphicsEnvironment.class) {
- GraphicsEnvironment.getLocalGraphicsEnvironment();
- if (fontsForPrinting == null) {
- return;
- }
- pathName = fontsForPrinting;
- fontsForPrinting = null;
- }
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
- public Object run() {
- File f1 = new File(pathName);
- String[] ls = f1.list(new TTFilter());
- if (ls == null) {
- return null;
- }
- for (int i=0; i <ls.length; i++ ) {
- File fontFile = new File(f1, ls[i]);
- registerFontWithPlatform(fontFile.getAbsolutePath());
- }
- return null;
- }
- });
- }
-
- protected static native void registerFontWithPlatform(String fontName);
-
- protected static native void deRegisterFontWithPlatform(String fontName);
-
protected GraphicsDevice makeScreenDevice(int screennum) {
GraphicsDevice device = null;
if (WindowsFlags.isD3DEnabled()) {
@@ -348,7 +233,7 @@
// Implements SunGraphicsEnvironment.createFontConfiguration.
protected FontConfiguration createFontConfiguration() {
- FontConfiguration fc = new WFontConfiguration(this);
+ FontConfiguration fc = new WFontConfiguration(SunFontManager.getInstance());
fc.init();
return fc;
}
@@ -356,7 +241,12 @@
public FontConfiguration createFontConfiguration(boolean preferLocaleFonts,
boolean preferPropFonts) {
- return new WFontConfiguration(this, preferLocaleFonts,preferPropFonts);
+ return new WFontConfiguration(SunFontManager.getInstance(),
+ preferLocaleFonts,preferPropFonts);
+ }
+
+ public boolean isDisplayLocal() {
+ return true;
}
@Override
@@ -394,11 +284,6 @@
isDWMCompositionEnabled = enabled;
}
- @Override
- public boolean isDisplayLocal() {
- return true;
- }
-
/**
* Used to find out if the OS is Windows Vista or later.
*
--- a/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -59,8 +59,7 @@
import java.awt.dnd.peer.DropTargetPeer;
import sun.awt.ComponentAccessor;
-import java.util.logging.*;
-
+import sun.util.logging.PlatformLogger;
public abstract class WComponentPeer extends WObjectPeer
implements ComponentPeer, DropTargetPeer
@@ -70,9 +69,9 @@
*/
protected volatile long hwnd;
- private static final Logger log = Logger.getLogger("sun.awt.windows.WComponentPeer");
- private static final Logger shapeLog = Logger.getLogger("sun.awt.windows.shape.WComponentPeer");
- private static final Logger focusLog = Logger.getLogger("sun.awt.windows.focus.WComponentPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WComponentPeer");
+ private static final PlatformLogger shapeLog = PlatformLogger.getLogger("sun.awt.windows.shape.WComponentPeer");
+ private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.windows.focus.WComponentPeer");
// ComponentPeer implementation
SurfaceData surfaceData;
@@ -178,10 +177,10 @@
void dynamicallyLayoutContainer() {
// If we got the WM_SIZING, this must be a Container, right?
// In fact, it must be the top-level Container.
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
Container parent = WToolkit.getNativeContainer((Component)target);
if (parent != null) {
- log.log(Level.FINE, "Assertion (parent == null) failed");
+ log.fine("Assertion (parent == null) failed");
}
}
final Container cont = (Container)target;
@@ -283,14 +282,14 @@
paintArea.add(r, e.getID());
}
- if (log.isLoggable(Level.FINEST)) {
+ if (log.isLoggable(PlatformLogger.FINEST)) {
switch(e.getID()) {
case PaintEvent.UPDATE:
- log.log(Level.FINEST, "coalescePaintEvent: UPDATE: add: x = " +
+ log.finest("coalescePaintEvent: UPDATE: add: x = " +
r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
return;
case PaintEvent.PAINT:
- log.log(Level.FINEST, "coalescePaintEvent: PAINT: add: x = " +
+ log.finest("coalescePaintEvent: PAINT: add: x = " +
r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
return;
}
@@ -360,7 +359,7 @@
}
void handleJavaFocusEvent(FocusEvent fe) {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer(fe.toString());
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(fe.toString());
setFocus(fe.getID() == FocusEvent.FOCUS_GAINED);
}
@@ -641,7 +640,7 @@
case WKeyboardFocusManagerPeer.SNFH_FAILURE:
return false;
case WKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
- if (focusLog.isLoggable(Level.FINER)) {
+ if (focusLog.isLoggable(PlatformLogger.FINER)) {
focusLog.finer("Proceeding with request to " + lightweightChild + " in " + target);
}
Window parentWindow = SunToolkit.getContainingWindow((Component)target);
@@ -654,7 +653,7 @@
}
boolean res = wpeer.requestWindowFocus(cause);
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Requested window focus: " + res);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Requested window focus: " + res);
// If parent window can be made focused and has been made focused(synchronously)
// then we can proceed with children, otherwise we retreat.
if (!(res && parentWindow.isFocused())) {
@@ -674,7 +673,7 @@
}
private boolean rejectFocusRequestHelper(String logMsg) {
- if (focusLog.isLoggable(Level.FINER)) focusLog.finer(logMsg);
+ if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(logMsg);
WKeyboardFocusManagerPeer.removeLastFocusRequest((Component)target);
return false;
}
@@ -1017,7 +1016,7 @@
* @since 1.7
*/
public void applyShape(Region shape) {
- if (shapeLog.isLoggable(Level.FINER)) {
+ if (shapeLog.isLoggable(PlatformLogger.FINER)) {
shapeLog.finer(
"*** INFO: Setting shape: PEER: " + this
+ "; TARGET: " + target
--- a/jdk/src/windows/classes/sun/awt/windows/WDesktopProperties.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WDesktopProperties.java Mon Oct 05 18:22:00 2009 -0700
@@ -34,8 +34,7 @@
import java.util.HashMap;
import java.util.Map;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
import sun.awt.SunToolkit;
@@ -54,7 +53,7 @@
* itself when running on a Windows platform.
*/
class WDesktopProperties {
- private static final Logger log = Logger.getLogger("sun.awt.windows.WDesktopProperties");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WDesktopProperties");
private static final String PREFIX = "win.";
private static final String FILE_PREFIX = "awt.file.";
private static final String PROP_NAMES = "win.propNames";
@@ -111,7 +110,7 @@
*/
private synchronized void setBooleanProperty(String key, boolean value) {
assert( key != null );
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(key + "=" + String.valueOf(value));
}
map.put(key, Boolean.valueOf(value));
@@ -122,7 +121,7 @@
*/
private synchronized void setIntegerProperty(String key, int value) {
assert( key != null );
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(key + "=" + String.valueOf(value));
}
map.put(key, Integer.valueOf(value));
@@ -133,7 +132,7 @@
*/
private synchronized void setStringProperty(String key, String value) {
assert( key != null );
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(key + "=" + value);
}
map.put(key, value);
@@ -145,7 +144,7 @@
private synchronized void setColorProperty(String key, int r, int g, int b) {
assert( key != null && r <= 255 && g <=255 && b <= 255 );
Color color = new Color(r, g, b);
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(key + "=" + color);
}
map.put(key, color);
@@ -173,14 +172,14 @@
name = mappedName;
}
Font font = new Font(name, style, size);
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(key + "=" + font);
}
map.put(key, font);
String sizeKey = key + ".height";
Integer iSize = Integer.valueOf(size);
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(sizeKey + "=" + iSize);
}
map.put(sizeKey, iSize);
@@ -193,7 +192,7 @@
assert( key != null && winEventName != null );
Runnable soundRunnable = new WinPlaySound(winEventName);
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
log.fine(key + "=" + soundRunnable);
}
map.put(key, soundRunnable);
--- a/jdk/src/windows/classes/sun/awt/windows/WFontConfiguration.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WFontConfiguration.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,6 +29,8 @@
import java.util.Hashtable;
import sun.awt.FontDescriptor;
import sun.awt.FontConfiguration;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
import sun.java2d.SunGraphicsEnvironment;
import java.nio.charset.*;
@@ -37,16 +39,16 @@
// whether compatibility fallbacks for TimesRoman and Co. are used
private boolean useCompatibilityFallbacks;
- public WFontConfiguration(SunGraphicsEnvironment environment) {
- super(environment);
+ public WFontConfiguration(SunFontManager fm) {
+ super(fm);
useCompatibilityFallbacks = "windows-1252".equals(encoding);
initTables(encoding);
}
- public WFontConfiguration(SunGraphicsEnvironment environment,
+ public WFontConfiguration(SunFontManager fm,
boolean preferLocaleFonts,
boolean preferPropFonts) {
- super(environment, preferLocaleFonts, preferPropFonts);
+ super(fm, preferLocaleFonts, preferPropFonts);
useCompatibilityFallbacks = "windows-1252".equals(encoding);
}
--- a/jdk/src/windows/classes/sun/awt/windows/WMenuItemPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WMenuItemPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -31,11 +31,10 @@
import java.awt.event.ActionEvent;
import java.security.AccessController;
import java.security.PrivilegedAction;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
class WMenuItemPeer extends WObjectPeer implements MenuItemPeer {
- private static final Logger log = Logger.getLogger("sun.awt.WMenuItemPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.WMenuItemPeer");
static {
initIDs();
@@ -166,8 +165,8 @@
ResourceBundle rb = ResourceBundle.getBundle("sun.awt.windows.awtLocalization");
return Font.decode(rb.getString("menuFont"));
} catch (MissingResourceException e) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "WMenuItemPeer: " + e.getMessage()+". Using default MenuItem font.", e);
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("WMenuItemPeer: " + e.getMessage()+". Using default MenuItem font.", e);
}
return new Font("SanSerif", Font.PLAIN, 11);
}
--- a/jdk/src/windows/classes/sun/awt/windows/WPanelPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WPanelPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -30,11 +30,9 @@
import java.util.Vector;
import sun.awt.SunGraphicsCallback;
-import java.util.logging.*;
class WPanelPeer extends WCanvasPeer implements PanelPeer {
- private static final Logger log = Logger.getLogger("sun.awt.windows.WPanelPeer");
// ComponentPeer overrides
public void paint(Graphics g) {
--- a/jdk/src/windows/classes/sun/awt/windows/WPathGraphics.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WPathGraphics.java Mon Oct 05 18:22:00 2009 -0700
@@ -64,7 +64,7 @@
import sun.font.CharToGlyphMapper;
import sun.font.CompositeFont;
import sun.font.Font2D;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
import sun.font.PhysicalFont;
import sun.font.TrueTypeFont;
@@ -119,6 +119,7 @@
* this graphics context.
* @since JDK1.0
*/
+ @Override
public Graphics create() {
return new WPathGraphics((Graphics2D) getDelegate().create(),
@@ -143,6 +144,7 @@
* @see #setClip
* @see #setComposite
*/
+ @Override
public void draw(Shape s) {
Stroke stroke = getStroke();
@@ -250,10 +252,12 @@
* @see java.awt.Graphics#drawChars
* @since JDK1.0
*/
+ @Override
public void drawString(String str, int x, int y) {
drawString(str, (float) x, (float) y);
}
+ @Override
public void drawString(String str, float x, float y) {
drawString(str, x, y, getFont(), getFontRenderContext(), 0f);
}
@@ -270,6 +274,7 @@
* the default render context (as canDrawStringToWidth() will return
* false. That is why it ignores the frc and width arguments.
*/
+ @Override
protected int platformFontCount(Font font, String str) {
AffineTransform deviceTransform = getTransform();
@@ -294,7 +299,7 @@
* fail that case. Just do a quick check whether its a TrueTypeFont
* - ie not a Type1 font etc, and let drawString() resolve the rest.
*/
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
if (font2D instanceof CompositeFont ||
font2D instanceof TrueTypeFont) {
return 1;
@@ -320,14 +325,14 @@
*/
private boolean strNeedsTextLayout(String str, Font font) {
char[] chars = str.toCharArray();
- boolean isComplex = FontManager.isComplexText(chars, 0, chars.length);
+ boolean isComplex = FontUtilities.isComplexText(chars, 0, chars.length);
if (!isComplex) {
return false;
} else if (!useGDITextLayout) {
return true;
} else {
if (preferGDITextLayout ||
- (isXP() && FontManager.textLayoutIsCompatible(font))) {
+ (isXP() && FontUtilities.textLayoutIsCompatible(font))) {
return false;
} else {
return true;
@@ -388,6 +393,7 @@
* @see #setComposite
* @see #setClip
*/
+ @Override
public void drawString(String str, float x, float y,
Font font, FontRenderContext frc, float targetW) {
if (str.length() == 0) {
@@ -498,7 +504,7 @@
float awScale = getAwScale(scaleFactorX, scaleFactorY);
int iangle = getAngle(ptx);
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
if (font2D instanceof TrueTypeFont) {
textOut(str, font, (TrueTypeFont)font2D, frc,
scaledFontSizeY, iangle, awScale,
@@ -549,6 +555,7 @@
/** return true if the Graphics instance can directly print
* this glyphvector
*/
+ @Override
protected boolean printGlyphVector(GlyphVector gv, float x, float y) {
/* We don't want to try to handle per-glyph transforms. GDI can't
* handle per-glyph rotations, etc. There's no way to express it
@@ -693,7 +700,7 @@
glyphAdvPos, 0, //destination
glyphPos.length/2); //num points
- Font2D font2D = FontManager.getFont2D(font);
+ Font2D font2D = FontUtilities.getFont2D(font);
if (font2D instanceof TrueTypeFont) {
String family = font2D.getFamilyName(null);
int style = font.getStyle() | font2D.getStyle();
@@ -792,7 +799,7 @@
char[] chars = str.toCharArray();
int len = chars.length;
GlyphVector gv = null;
- if (!FontManager.isComplexText(chars, 0, len)) {
+ if (!FontUtilities.isComplexText(chars, 0, len)) {
gv = font.createGlyphVector(frc, str);
}
if (gv == null) {
--- a/jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java Mon Oct 05 18:22:00 2009 -0700
@@ -98,6 +98,8 @@
import javax.print.attribute.Size2DSyntax;
import javax.print.StreamPrintService;
+import sun.awt.Win32FontManager;
+
import sun.print.RasterPrinterJob;
import sun.print.SunAlternateMedia;
import sun.print.SunPageSelection;
@@ -359,7 +361,7 @@
initIDs();
- Win32GraphicsEnvironment.registerJREFontsForPrinting();
+ Win32FontManager.registerJREFontsForPrinting();
}
/* Constructors */
--- a/jdk/src/windows/classes/sun/awt/windows/WScrollPanePeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WScrollPanePeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -29,11 +29,11 @@
import java.awt.peer.ScrollPanePeer;
import sun.awt.PeerEvent;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
class WScrollPanePeer extends WPanelPeer implements ScrollPanePeer {
- private static final Logger log = Logger.getLogger("sun.awt.windows.WScrollPanePeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WScrollPanePeer");
int scrollbarWidth;
int scrollbarHeight;
@@ -159,8 +159,8 @@
}
public PeerEvent coalesceEvents(PeerEvent newEvent) {
- if (log.isLoggable(Level.FINEST)) {
- log.log(Level.FINEST, "ScrollEvent coalesced: " + newEvent);
+ if (log.isLoggable(PlatformLogger.FINEST)) {
+ log.finest("ScrollEvent coalesced: " + newEvent);
}
if (newEvent instanceof ScrollEvent) {
return newEvent;
@@ -204,8 +204,8 @@
} else if (orient == Adjustable.HORIZONTAL) {
adj = (ScrollPaneAdjustable)sp.getHAdjustable();
} else {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "Assertion failed: unknown orient");
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("Assertion failed: unknown orient");
}
}
@@ -231,8 +231,8 @@
newpos = this.pos;
break;
default:
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "Assertion failed: unknown type");
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("Assertion failed: unknown type");
}
return;
}
@@ -258,10 +258,10 @@
{
hwAncestor = hwAncestor.getParent();
}
- if (log.isLoggable(Level.FINE)) {
+ if (log.isLoggable(PlatformLogger.FINE)) {
if (hwAncestor == null) {
- log.log(Level.FINE, "Assertion (hwAncestor != null) failed, " +
- "couldn't find heavyweight ancestor of scroll pane child");
+ log.fine("Assertion (hwAncestor != null) failed, " +
+ "couldn't find heavyweight ancestor of scroll pane child");
}
}
WComponentPeer hwPeer = (WComponentPeer)hwAncestor.getPeer();
--- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java Mon Oct 05 18:22:00 2009 -0700
@@ -58,13 +58,15 @@
import java.util.Map;
import java.util.Properties;
-import java.util.logging.*;
-
+import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.SunFontManager;
import sun.misc.PerformanceLogger;
+import sun.util.logging.PlatformLogger;
public class WToolkit extends SunToolkit implements Runnable {
- private static final Logger log = Logger.getLogger("sun.awt.windows.WToolkit");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WToolkit");
static GraphicsConfiguration config;
@@ -107,8 +109,8 @@
initIDs();
// Print out which version of Windows is running
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, "Win version: " + getWindowsVersion());
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine("Win version: " + getWindowsVersion());
}
java.security.AccessController.doPrivileged(
@@ -572,8 +574,11 @@
public FontMetrics getFontMetrics(Font font) {
- // REMIND: platform font flag should be removed post-merlin.
- if (sun.font.FontManager.usePlatformFontMetrics()) {
+ // This is an unsupported hack, but left in for a customer.
+ // Do not remove.
+ FontManager fm = FontManagerFactory.getInstance();
+ if (fm instanceof SunFontManager
+ && ((SunFontManager) fm).usePlatformFontMetrics()) {
return WFontMetrics.getFontMetrics(font);
}
return super.getFontMetrics(font);
@@ -824,10 +829,10 @@
lazilyInitWProps();
Boolean prop = (Boolean) desktopProperties.get("awt.dynamicLayoutSupported");
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "In WTK.isDynamicLayoutSupported()" +
- " nativeDynamic == " + nativeDynamic +
- " wprops.dynamic == " + prop);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("In WTK.isDynamicLayoutSupported()" +
+ " nativeDynamic == " + nativeDynamic +
+ " wprops.dynamic == " + prop);
}
if ((prop == null) || (nativeDynamic != prop.booleanValue())) {
@@ -862,8 +867,8 @@
Map<String, Object> props = wprops.getProperties();
for (String propName : props.keySet()) {
Object val = props.get(propName);
- if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "changed " + propName + " to " + val);
+ if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("changed " + propName + " to " + val);
}
setDesktopProperty(propName, val);
}
--- a/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java Mon Oct 05 18:22:00 2009 -0700
@@ -35,7 +35,7 @@
import java.util.*;
import java.util.List;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
import sun.awt.*;
@@ -45,8 +45,8 @@
DisplayChangedListener
{
- private static final Logger log = Logger.getLogger("sun.awt.windows.WWindowPeer");
- private static final Logger screenLog = Logger.getLogger("sun.awt.windows.screen.WWindowPeer");
+ private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WWindowPeer");
+ private static final PlatformLogger screenLog = PlatformLogger.getLogger("sun.awt.windows.screen.WWindowPeer");
// we can't use WDialogPeer as blocker may be an instance of WPrintDialogPeer that
// extends WWindowPeer, not WDialogPeer
@@ -440,8 +440,8 @@
public void updateGC() {
int scrn = getScreenImOn();
- if (screenLog.isLoggable(Level.FINER)) {
- log.log(Level.FINER, "Screen number: " + scrn);
+ if (screenLog.isLoggable(PlatformLogger.FINER)) {
+ log.finer("Screen number: " + scrn);
}
// get current GD
@@ -465,9 +465,9 @@
// is now mostly on.
winGraphicsConfig = (Win32GraphicsConfig)newDev
.getDefaultConfiguration();
- if (screenLog.isLoggable(Level.FINE)) {
+ if (screenLog.isLoggable(PlatformLogger.FINE)) {
if (winGraphicsConfig == null) {
- screenLog.log(Level.FINE, "Assertion (winGraphicsConfig != null) failed");
+ screenLog.fine("Assertion (winGraphicsConfig != null) failed");
}
}
@@ -700,9 +700,8 @@
TranslucentWindowPainter currentPainter = painter;
if (currentPainter != null) {
currentPainter.updateWindow(repaint);
- } else if (log.isLoggable(Level.FINER)) {
- log.log(Level.FINER,
- "Translucent window painter is null in updateWindow");
+ } else if (log.isLoggable(PlatformLogger.FINER)) {
+ log.finer("Translucent window painter is null in updateWindow");
}
}
}
@@ -736,8 +735,8 @@
public void propertyChange(PropertyChangeEvent e) {
boolean isDisposed = (Boolean)e.getNewValue();
if (isDisposed != true) {
- if (log.isLoggable(Level.FINE)) {
- log.log(Level.FINE, " Assertion (newValue != true) failed for AppContext.GUI_DISPOSED ");
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ log.fine(" Assertion (newValue != true) failed for AppContext.GUI_DISPOSED ");
}
}
AppContext appContext = AppContext.getAppContext();
--- a/jdk/src/windows/native/sun/font/fontpath.c Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/native/sun/font/fontpath.c Mon Oct 05 18:22:00 2009 -0700
@@ -28,12 +28,12 @@
#include <jni.h>
#include <jni_util.h>
-#include <sun_font_FontManager.h>
+#include <sun_awt_Win32FontManager.h>
#define BSIZE (max(512, MAX_PATH+1))
-JNIEXPORT jstring JNICALL Java_sun_font_FontManager_getFontPath(JNIEnv *env, jclass obj, jboolean noType1)
+JNIEXPORT jstring JNICALL Java_sun_awt_Win32FontManager_getFontPath(JNIEnv *env, jobject thiz, jboolean noType1)
{
char windir[BSIZE];
char sysdir[BSIZE];
@@ -68,15 +68,6 @@
return JNU_NewStringPlatform(env, fontpath);
}
-/* This isn't used on windows, the implementation is added in case shared
- * code accidentally calls this method to prevent an UnsatisfiedLinkError
- */
-JNIEXPORT void JNICALL Java_sun_font_FontManager_setNativeFontPath
-(JNIEnv *env, jclass obj, jstring theString)
-{
- return;
-}
-
/* The code below is used to obtain information from the windows font APIS
* and registry on which fonts are available and what font files hold those
* fonts. The results are used to speed font lookup.
@@ -546,7 +537,7 @@
* use it for lookups to reduce or avoid the need to search font files.
*/
JNIEXPORT void JNICALL
-Java_sun_font_FontManager_populateFontFileNameMap
+Java_sun_awt_Win32FontManager_populateFontFileNameMap0
(JNIEnv *env, jclass obj, jobject fontToFileMap,
jobject fontToFamilyMap, jobject familyToFontListMap, jobject locale)
{
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp Fri Oct 02 11:26:42 2009 -0700
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp Mon Oct 05 18:22:00 2009 -0700
@@ -25,6 +25,7 @@
#include <awt.h>
#include <sun_awt_Win32GraphicsEnvironment.h>
+#include <sun_awt_Win32FontManager.h>
#include "awt_Canvas.h"
#include "awt_Win32GraphicsDevice.h"
#include "Devices.h"
@@ -173,14 +174,14 @@
}
/*
- * Class: sun_awt_Win32GraphicsEnvironment
+ * Class: sun_awt_Win32FontManager
* Method: registerFontWithPlatform
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
-Java_sun_awt_Win32GraphicsEnvironment_registerFontWithPlatform(JNIEnv *env,
- jclass cl,
- jstring fontName)
+Java_sun_awt_Win32FontManager_registerFontWithPlatform(JNIEnv *env,
+ jclass cl,
+ jstring fontName)
{
LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
if (file) {
@@ -191,16 +192,16 @@
/*
- * Class: sun_awt_Win32GraphicsEnvironment
+ * Class: sun_awt_Win32FontManagerEnvironment
* Method: deRegisterFontWithPlatform
* Signature: (Ljava/lang/String;)V
*
* This method intended for future use.
*/
JNIEXPORT void JNICALL
-Java_sun_awt_Win32GraphicsEnvironment_deRegisterFontWithPlatform(JNIEnv *env,
- jclass cl,
- jstring fontName)
+Java_sun_awt_Win32FontManager_deRegisterFontWithPlatform(JNIEnv *env,
+ jclass cl,
+ jstring fontName)
{
LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
if (file) {
@@ -223,7 +224,7 @@
JNIEXPORT jstring JNICALL
-Java_sun_awt_Win32GraphicsEnvironment_getEUDCFontFile(JNIEnv *env, jclass cl) {
+Java_sun_awt_Win32FontManager_getEUDCFontFile(JNIEnv *env, jclass cl) {
int rc;
HKEY key;
DWORD type;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/font/TextLayout/TestSinhalaChar.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,70 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+/* @test @(#)TestSinhalaChar.java
+ * @summary verify lack of crash on U+0DDD.
+ * @bug 6795060
+ */
+
+import javax.swing.*;
+import javax.swing.border.LineBorder;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+
+public class TestSinhalaChar {
+ public static void main(String[] args) {
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ new TestSinhalaChar().run();
+ }
+ });
+ }
+ public static boolean AUTOMATIC_TEST=true; // true; run test automatically, else manually at button push
+
+ private void run() {
+ JFrame frame = new JFrame("Test Character (no crash = PASS)");
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ JPanel panel = new JPanel();
+ final JLabel label = new JLabel("(empty)");
+ label.setSize(400, 100);
+ label.setBorder(new LineBorder(Color.black));
+ label.setFont(new Font("Lucida Bright", Font.PLAIN, 12));
+ if(AUTOMATIC_TEST) { /* run the test automatically (else, manually) */
+ label.setText(Character.toString('\u0DDD'));
+ } else {
+ JButton button = new JButton("Set Char x0DDD");
+ button.addActionListener(new AbstractAction() {
+ public void actionPerformed(ActionEvent actionEvent) {
+ label.setText(Character.toString('\u0DDD'));
+ }
+ });
+ panel.add(button);
+ }
+ panel.add(label);
+
+ frame.getContentPane().add(panel);
+ frame.pack();
+ frame.setVisible(true);
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/print/PageFormat/PageFormatFromAttributes.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 4500750 6848799
+ * @summary Tests creating page format from attributes
+ * @run main PageFormatFromAttributes
+ */
+import java.awt.print.*;
+import javax.print.*;
+import javax.print.attribute.*;
+import javax.print.attribute.standard.*;
+
+public class PageFormatFromAttributes {
+
+ public static void main(String args[]) {
+ PrinterJob job = PrinterJob.getPrinterJob();
+ PrintService service = job.getPrintService();
+ if (service == null) {
+ return; // No printers
+ }
+ PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
+ test(job, MediaSizeName.ISO_A4, OrientationRequested.PORTRAIT);
+ test(job, MediaSizeName.ISO_A4, OrientationRequested.LANDSCAPE);
+ test(job, MediaSizeName.ISO_A4,
+ OrientationRequested.REVERSE_LANDSCAPE);
+ test(job, MediaSizeName.ISO_A3, OrientationRequested.PORTRAIT);
+ test(job, MediaSizeName.NA_LETTER, OrientationRequested.PORTRAIT);
+ test(job, MediaSizeName.NA_LETTER, OrientationRequested.LANDSCAPE);
+ test(job, MediaSizeName.NA_LEGAL, OrientationRequested.PORTRAIT);
+ }
+
+ static void test(PrinterJob job,
+ MediaSizeName media, OrientationRequested orient) {
+
+ PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
+ aset.add(media);
+ aset.add(orient);
+
+ PrintService service = job.getPrintService();
+ if (!service.isAttributeValueSupported(media, null, aset) ||
+ !service.isAttributeValueSupported(orient, null, aset)) {
+ return; // Can't test this case.
+ }
+ PageFormat pf = job.getPageFormat(aset);
+ boolean ok = true;
+ switch (pf.getOrientation()) {
+ case PageFormat.PORTRAIT :
+ ok = orient == OrientationRequested.PORTRAIT;
+ break;
+ case PageFormat.LANDSCAPE :
+ ok = orient == OrientationRequested.LANDSCAPE;
+ break;
+ case PageFormat.REVERSE_LANDSCAPE :
+ ok = orient == OrientationRequested.REVERSE_LANDSCAPE;
+ break;
+ }
+ if (!ok) {
+ throw new RuntimeException("orientation not as specified");
+ }
+ MediaSize mediaSize = MediaSize.getMediaSizeForName(media);
+ if (mediaSize == null) {
+ throw new RuntimeException("expected a media size");
+ }
+ double units = Size2DSyntax.INCH/72.0;
+ int w = (int)(mediaSize.getX(1)/units);
+ int h = (int)(mediaSize.getY(1)/units);
+ Paper paper = pf.getPaper();
+ int pw = (int)paper.getWidth();
+ int ph = (int)paper.getHeight();
+ if (pw != w || ph != h) {
+ throw new RuntimeException("size not as specified");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/pisces/ThinLineTest.java Mon Oct 05 18:22:00 2009 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+import java.awt.*;
+import java.awt.geom.Ellipse2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import javax.imageio.ImageIO;
+
+/**
+ * @author chrisn@google.com (Chris Nokleberg)
+ * @author yamauchi@google.com (Hiroshi Yamauchi)
+ */
+public class ThinLineTest {
+ private static final int PIXEL = 381;
+
+ public static void main(String[] args) throws Exception {
+ BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
+ Graphics2D g = image.createGraphics();
+
+ g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g.setPaint(Color.WHITE);
+ g.fill(new Rectangle(image.getWidth(), image.getHeight()));
+
+ g.scale(0.5 / PIXEL, 0.5 / PIXEL);
+ g.setPaint(Color.BLACK);
+ g.setStroke(new BasicStroke(PIXEL));
+ g.draw(new Ellipse2D.Double(PIXEL * 50, PIXEL * 50, PIXEL * 300, PIXEL * 300));
+
+ // To visually check it
+ //ImageIO.write(image, "PNG", new File(args[0]));
+
+ boolean nonWhitePixelFound = false;
+ for (int x = 0; x < 200; ++x) {
+ if (image.getRGB(x, 100) != Color.WHITE.getRGB()) {
+ nonWhitePixelFound = true;
+ break;
+ }
+ }
+ if (!nonWhitePixelFound) {
+ throw new RuntimeException("The thin line disappeared.");
+ }
+ }
+}