Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
e43dcf4d
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e43dcf4d
编写于
8月 07, 2009
作者:
R
rkennke
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6795908: Refactor FontManager
Reviewed-by: prr, igor
上级
09e86cab
变更
58
展开全部
隐藏空白更改
内联
并排
Showing
58 changed file
with
1434 addition
and
6658 deletion
+1434
-6658
make/sun/awt/FILES_export_windows.gmk
make/sun/awt/FILES_export_windows.gmk
+250
-249
make/sun/awt/make.depend
make/sun/awt/make.depend
+351
-351
make/sun/awt/mapfile-mawt-vers
make/sun/awt/mapfile-mawt-vers
+5
-5
make/sun/awt/mapfile-vers-linux
make/sun/awt/mapfile-vers-linux
+5
-5
make/sun/font/mapfile-vers
make/sun/font/mapfile-vers
+1
-6
make/sun/font/mapfile-vers.openjdk
make/sun/font/mapfile-vers.openjdk
+1
-6
make/sun/headless/mapfile-vers
make/sun/headless/mapfile-vers
+4
-6
make/sun/xawt/mapfile-vers
make/sun/xawt/mapfile-vers
+5
-6
src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java
...share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java
+6
-4
src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java
...s/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java
+4
-3
src/share/classes/java/awt/Component.java
src/share/classes/java/awt/Component.java
+9
-2
src/share/classes/java/awt/Font.java
src/share/classes/java/awt/Font.java
+35
-16
src/share/classes/java/awt/GraphicsEnvironment.java
src/share/classes/java/awt/GraphicsEnvironment.java
+9
-9
src/share/classes/javax/swing/plaf/nimbus/Defaults.template
src/share/classes/javax/swing/plaf/nimbus/Defaults.template
+2
-2
src/share/classes/javax/swing/text/StyleContext.java
src/share/classes/javax/swing/text/StyleContext.java
+3
-3
src/share/classes/sun/awt/FontConfiguration.java
src/share/classes/sun/awt/FontConfiguration.java
+23
-21
src/share/classes/sun/font/CMap.java
src/share/classes/sun/font/CMap.java
+3
-3
src/share/classes/sun/font/CompositeFont.java
src/share/classes/sun/font/CompositeFont.java
+17
-16
src/share/classes/sun/font/CompositeGlyphMapper.java
src/share/classes/sun/font/CompositeGlyphMapper.java
+2
-2
src/share/classes/sun/font/FileFont.java
src/share/classes/sun/font/FileFont.java
+12
-10
src/share/classes/sun/font/FileFontStrike.java
src/share/classes/sun/font/FileFontStrike.java
+11
-11
src/share/classes/sun/font/FontDesignMetrics.java
src/share/classes/sun/font/FontDesignMetrics.java
+6
-5
src/share/classes/sun/font/FontFamily.java
src/share/classes/sun/font/FontFamily.java
+3
-2
src/share/classes/sun/font/FontManager.java
src/share/classes/sun/font/FontManager.java
+76
-3783
src/share/classes/sun/font/FontManagerNativeLibrary.java
src/share/classes/sun/font/FontManagerNativeLibrary.java
+1
-1
src/share/classes/sun/font/FontResolver.java
src/share/classes/sun/font/FontResolver.java
+1
-1
src/share/classes/sun/font/FontScaler.java
src/share/classes/sun/font/FontScaler.java
+76
-0
src/share/classes/sun/font/FreetypeFontScaler.java
src/share/classes/sun/font/FreetypeFontScaler.java
+17
-12
src/share/classes/sun/font/GlyphLayout.java
src/share/classes/sun/font/GlyphLayout.java
+2
-2
src/share/classes/sun/font/PhysicalStrike.java
src/share/classes/sun/font/PhysicalStrike.java
+8
-0
src/share/classes/sun/font/StandardGlyphVector.java
src/share/classes/sun/font/StandardGlyphVector.java
+2
-2
src/share/classes/sun/font/StrikeCache.java
src/share/classes/sun/font/StrikeCache.java
+5
-1
src/share/classes/sun/font/TrueTypeFont.java
src/share/classes/sun/font/TrueTypeFont.java
+270
-27
src/share/classes/sun/font/TrueTypeGlyphMapper.java
src/share/classes/sun/font/TrueTypeGlyphMapper.java
+9
-9
src/share/classes/sun/font/Type1Font.java
src/share/classes/sun/font/Type1Font.java
+4
-5
src/share/classes/sun/font/Type1GlyphMapper.java
src/share/classes/sun/font/Type1GlyphMapper.java
+7
-7
src/share/classes/sun/java2d/SunGraphics2D.java
src/share/classes/sun/java2d/SunGraphics2D.java
+4
-2
src/share/classes/sun/java2d/SunGraphicsEnvironment.java
src/share/classes/sun/java2d/SunGraphicsEnvironment.java
+27
-1035
src/share/classes/sun/print/PSPrinterJob.java
src/share/classes/sun/print/PSPrinterJob.java
+3
-1
src/share/classes/sun/print/PathGraphics.java
src/share/classes/sun/print/PathGraphics.java
+4
-2
src/share/classes/sun/swing/SwingUtilities2.java
src/share/classes/sun/swing/SwingUtilities2.java
+2
-2
src/share/native/sun/font/sunFont.c
src/share/native/sun/font/sunFont.c
+2
-63
src/share/native/sun/font/sunfontids.h
src/share/native/sun/font/sunfontids.h
+0
-5
src/solaris/classes/sun/awt/X11/XToolkit.java
src/solaris/classes/sun/awt/X11/XToolkit.java
+4
-1
src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
+0
-722
src/solaris/classes/sun/awt/motif/MFontConfiguration.java
src/solaris/classes/sun/awt/motif/MFontConfiguration.java
+15
-10
src/solaris/classes/sun/awt/motif/MToolkit.java
src/solaris/classes/sun/awt/motif/MToolkit.java
+2
-1
src/solaris/classes/sun/font/FcFontConfiguration.java
src/solaris/classes/sun/font/FcFontConfiguration.java
+32
-21
src/solaris/classes/sun/font/NativeFont.java
src/solaris/classes/sun/font/NativeFont.java
+6
-3
src/solaris/classes/sun/font/NativeStrike.java
src/solaris/classes/sun/font/NativeStrike.java
+6
-5
src/solaris/native/sun/awt/fontpath.c
src/solaris/native/sun/awt/fontpath.c
+29
-33
src/windows/classes/sun/awt/Win32GraphicsEnvironment.java
src/windows/classes/sun/awt/Win32GraphicsEnvironment.java
+9
-124
src/windows/classes/sun/awt/windows/WFontConfiguration.java
src/windows/classes/sun/awt/windows/WFontConfiguration.java
+6
-4
src/windows/classes/sun/awt/windows/WPathGraphics.java
src/windows/classes/sun/awt/windows/WPathGraphics.java
+14
-7
src/windows/classes/sun/awt/windows/WPrinterJob.java
src/windows/classes/sun/awt/windows/WPrinterJob.java
+3
-1
src/windows/classes/sun/awt/windows/WToolkit.java
src/windows/classes/sun/awt/windows/WToolkit.java
+8
-2
src/windows/native/sun/font/fontpath.c
src/windows/native/sun/font/fontpath.c
+3
-12
src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp
src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp
+10
-9
未找到文件。
make/sun/awt/FILES_export_windows.gmk
浏览文件 @
e43dcf4d
#
# 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
make/sun/awt/make.depend
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
make/sun/awt/mapfile-mawt-vers
浏览文件 @
e43dcf4d
...
...
@@ -477,11 +477,11 @@ SUNWprivate_1.1 {
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_Font
Config
Manager_getFontConfig;
Java_sun_font_Font
Config
Manager_getFontConfigAASettings;
Java_sun_
awt_X11
FontManager_getFontPath;
Java_sun_
awt_X11
FontManager_setNativeFontPath;
Java_sun_font_
Sun
FontManager_populateFontFileNameMap;
# CDE private entry point
Java_sun_awt_motif_XsessionWMcommand;
...
...
make/sun/awt/mapfile-vers-linux
浏览文件 @
e43dcf4d
...
...
@@ -533,11 +533,11 @@ SUNWprivate_1.1 {
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_Font
Config
Manager_getFontConfig;
Java_sun_font_Font
Config
Manager_getFontConfigAASettings;
Java_sun_
awt_X11
FontManager_getFontPath;
Java_sun_
awt_X11
FontManager_setNativeFontPath;
Java_sun_font_
Sun
FontManager_populateFontFileNameMap;
# CDE private entry point
Java_sun_awt_motif_XsessionWMcommand;
...
...
make/sun/font/mapfile-vers
浏览文件 @
e43dcf4d
...
...
@@ -33,12 +33,7 @@ SUNWprivate_1.1 {
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;
...
...
make/sun/font/mapfile-vers.openjdk
浏览文件 @
e43dcf4d
...
...
@@ -35,12 +35,7 @@ SUNWprivate_1.1 {
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;
...
...
make/sun/headless/mapfile-vers
浏览文件 @
e43dcf4d
...
...
@@ -59,12 +59,10 @@ SUNWprivate_1.1 {
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;
...
...
make/sun/xawt/mapfile-vers
浏览文件 @
e43dcf4d
...
...
@@ -182,12 +182,11 @@ SUNWprivate_1.1 {
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;
...
...
src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java
浏览文件 @
e43dcf4d
...
...
@@ -29,7 +29,9 @@ import java.awt.*;
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 @@ class PangoFonts {
}
String
fcFamilyLC
=
family
.
toLowerCase
();
if
(
Font
Manager
.
mapFcName
(
fcFamilyLC
)
!=
null
)
{
if
(
Font
Utilities
.
mapFcName
(
fcFamilyLC
)
!=
null
)
{
/* family is a Fc/Pango logical font which we need to expand. */
return
Font
Manager
.
getFontConfigFUIR
(
fcFamilyLC
,
style
,
size
);
return
Font
Utilities
.
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
Font
Manager
.
getCompositeFontUIResource
(
font
);
return
Font
Utilities
.
getCompositeFontUIResource
(
font
);
}
}
...
...
src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java
浏览文件 @
e43dcf4d
...
...
@@ -63,7 +63,7 @@ import java.security.AccessController;
import
sun.awt.SunToolkit
;
import
sun.awt.OSInfo
;
import
sun.awt.shell.ShellFolder
;
import
sun.font.Font
Manager
;
import
sun.font.Font
Utilities
;
import
sun.security.action.GetPropertyAction
;
import
sun.swing.DefaultLayoutStyle
;
...
...
@@ -2347,13 +2347,14 @@ public class WindowsLookAndFeel extends BasicLookAndFeel
font
.
getStyle
(),
size
);
}
}
if
(
FontManager
.
fontSupportsDefaultEncoding
(
font
))
{
if
(
FontUtilities
.
fontSupportsDefaultEncoding
(
font
))
{
if
(!(
font
instanceof
UIResource
))
{
font
=
new
FontUIResource
(
font
);
}
}
else
{
font
=
Font
Manager
.
getCompositeFontUIResource
(
font
);
font
=
Font
Utilities
.
getCompositeFontUIResource
(
font
);
}
return
font
;
...
...
src/share/classes/java/awt/Component.java
浏览文件 @
e43dcf4d
...
...
@@ -74,6 +74,9 @@ import sun.awt.CausedFocusEvent;
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
;
...
...
@@ -2848,8 +2851,12 @@ public abstract class Component implements ImageObserver, MenuContainer,
* @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
);
...
...
src/share/classes/java/awt/Font.java
浏览文件 @
e43dcf4d
...
...
@@ -30,7 +30,6 @@ import java.awt.font.GlyphVector;
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.security.PrivilegedExceptionAction;
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 @@ import static sun.font.EAttribute.*;
*/
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 @@ public class Font implements java.io.Serializable
}
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 @@ public class Font implements java.io.Serializable
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 @@ public class Font implements java.io.Serializable
/* 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 @@ public class Font implements java.io.Serializable
}
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 @@ public class Font implements java.io.Serializable
throw
new
IllegalArgumentException
(
"font format not recognized"
);
}
boolean
copiedFontData
=
false
;
try
{
final
File
tFile
=
AccessController
.
doPrivileged
(
new
PrivilegedExceptionAction
<
File
>()
{
...
...
@@ -2320,7 +2339,7 @@ public class Font implements java.io.Serializable
(
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
)
{
...
...
src/share/classes/java/awt/GraphicsEnvironment.java
浏览文件 @
e43dcf4d
...
...
@@ -29,6 +29,9 @@ 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
;
...
...
@@ -353,7 +356,8 @@ public abstract class GraphicsEnvironment {
if
(
font
==
null
)
{
throw
new
NullPointerException
(
"font cannot be null."
);
}
return
sun
.
font
.
FontManager
.
registerFont
(
font
);
FontManager
fm
=
FontManagerFactory
.
getInstance
();
return
fm
.
registerFont
(
font
);
}
/**
...
...
@@ -377,10 +381,8 @@ public abstract class GraphicsEnvironment {
* @since 1.5
*/
public
void
preferLocaleFonts
()
{
if
(!(
this
instanceof
SunGraphicsEnvironment
))
{
return
;
}
sun
.
font
.
FontManager
.
preferLocaleFonts
();
FontManager
fm
=
FontManagerFactory
.
getInstance
();
fm
.
preferLocaleFonts
();
}
/**
...
...
@@ -400,10 +402,8 @@ public abstract class GraphicsEnvironment {
* @since 1.5
*/
public
void
preferProportionalFonts
()
{
if
(!(
this
instanceof
SunGraphicsEnvironment
))
{
return
;
}
sun
.
font
.
FontManager
.
preferProportionalFonts
();
FontManager
fm
=
FontManagerFactory
.
getInstance
();
fm
.
preferProportionalFonts
();
}
/**
...
...
src/share/classes/javax/swing/plaf/nimbus/Defaults.template
浏览文件 @
e43dcf4d
...
...
@@ -26,7 +26,7 @@ package ${PACKAGE};
import
javax
.
swing
.
Painter
;
import
java
.
awt
.
Graphics
;
import
sun
.
font
.
Font
Manager
;
import
sun
.
font
.
Font
Utilities
;
import
sun
.
swing
.
plaf
.
synth
.
DefaultSynthStyle
;
import
javax
.
swing
.
BorderFactory
;
import
javax
.
swing
.
JComponent
;
...
...
@@ -138,7 +138,7 @@ final class ${LAF_NAME}Defaults {
//
regions
and
their
states
that
this
class
will
use
for
later
lookup
.
//
Additional
regions
can
be
registered
later
by
3
rd
party
components
.
//
These
are
simply
the
default
registrations
.
defaultFont
=
Font
Manager
.
getFontConfigFUIR
(
"sans"
,
Font
.
PLAIN
,
12
);
defaultFont
=
Font
Utilities
.
getFontConfigFUIR
(
"sans"
,
Font
.
PLAIN
,
12
);
defaultStyle
=
new
DefaultSynthStyle
();
defaultStyle
.
setFont
(
defaultFont
);
...
...
src/share/classes/javax/swing/text/StyleContext.java
浏览文件 @
e43dcf4d
...
...
@@ -35,7 +35,7 @@ import javax.swing.event.ChangeEvent;
import
java.lang.ref.WeakReference
;
import
java.util.WeakHashMap
;
import
sun.font.Font
Manager
;
import
sun.font.Font
Utilities
;
/**
* A pool of styles and their associated resources. This class determines
...
...
@@ -263,8 +263,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
if
(
f
==
null
)
{
f
=
new
Font
(
family
,
style
,
size
);
}
if
(!
Font
Manager
.
fontSupportsDefaultEncoding
(
f
))
{
f
=
Font
Manager
.
getCompositeFontUIResource
(
f
);
if
(!
Font
Utilities
.
fontSupportsDefaultEncoding
(
f
))
{
f
=
Font
Utilities
.
getCompositeFontUIResource
(
f
);
}
FontKey
key
=
new
FontKey
(
family
,
style
,
size
);
fontTable
.
put
(
key
,
f
);
...
...
src/share/classes/sun/awt/FontConfiguration.java
浏览文件 @
e43dcf4d
...
...
@@ -30,7 +30,6 @@ import java.io.DataInputStream;
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
;
...
...
@@ -49,7 +48,9 @@ import java.util.Properties;
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
;
/**
* Provides the definitions of the five logical fonts: Serif, SansSerif,
...
...
@@ -68,7 +69,7 @@ public abstract class FontConfiguration {
private
static
Logger
logger
;
protected
static
boolean
isProperties
=
true
;
protected
Sun
GraphicsEnvironment
environment
;
protected
Sun
FontManager
fontManager
;
protected
boolean
preferLocaleFonts
;
protected
boolean
preferPropFonts
;
...
...
@@ -80,11 +81,11 @@ public abstract class FontConfiguration {
/* A default FontConfiguration must be created before an alternate
* one to ensure proper static initialisation takes place.
*/
public
FontConfiguration
(
Sun
GraphicsEnvironment
environment
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
&&
logger
==
null
)
{
public
FontConfiguration
(
Sun
FontManager
fm
)
{
if
(
FontUtilities
.
debugFonts
()
&&
logger
==
null
)
{
logger
=
Logger
.
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 @@ public abstract class FontConfiguration {
return
true
;
}
public
FontConfiguration
(
Sun
GraphicsEnvironment
environment
,
public
FontConfiguration
(
Sun
FontManager
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 @@ public abstract class FontConfiguration {
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 @@ public abstract class FontConfiguration {
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 @@ public abstract class FontConfiguration {
installedFallbackFontFiles
[
i
+
numTTFs
]
=
fallbackDir
+
File
.
separator
+
t1s
[
i
];
}
environment
.
registerFontsInDir
(
fallbackDirName
);
fontManager
.
registerFontsInDir
(
fallbackDirName
);
}
}
...
...
@@ -465,7 +466,7 @@ public abstract class FontConfiguration {
nameIDs
[
index
]
=
getComponentFontID
(
coreScripts
[
index
],
fontIndex
,
styleIndex
);
if
(
preferLocaleFonts
&&
localeMap
!=
null
&&
sun
.
font
.
F
ontManager
.
usingAlternateFontforJALocales
())
{
f
ontManager
.
usingAlternateFontforJALocales
())
{
nameIDs
[
index
]
=
remapLocaleMap
(
fontIndex
,
styleIndex
,
coreScripts
[
index
],
nameIDs
[
index
]);
}
...
...
@@ -480,7 +481,7 @@ public abstract class FontConfiguration {
short
id
=
getComponentFontID
(
fallbackScripts
[
i
],
fontIndex
,
styleIndex
);
if
(
preferLocaleFonts
&&
localeMap
!=
null
&&
sun
.
font
.
F
ontManager
.
usingAlternateFontforJALocales
())
{
f
ontManager
.
usingAlternateFontforJALocales
())
{
id
=
remapLocaleMap
(
fontIndex
,
styleIndex
,
fallbackScripts
[
i
],
id
);
}
if
(
preferPropFonts
)
{
...
...
@@ -973,8 +974,8 @@ public abstract class FontConfiguration {
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 @@ public abstract class FontConfiguration {
*/
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 @@ public abstract class FontConfiguration {
}
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 @@ public abstract class FontConfiguration {
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."
);
...
...
src/share/classes/sun/font/CMap.java
浏览文件 @
e43dcf4d
...
...
@@ -232,7 +232,7 @@ abstract class CMap {
* fonts are using gb2312 encoding, have to use this
* workaround to make Solaris zh_CN locale work. -sherman
*/
if
(
Font
Manager
.
isSolaris
&&
font
.
platName
!=
null
&&
if
(
Font
Utilities
.
isSolaris
&&
font
.
platName
!=
null
&&
(
font
.
platName
.
startsWith
(
"/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType"
)
||
font
.
platName
.
startsWith
(
...
...
@@ -407,8 +407,8 @@ abstract class CMap {
subtableLength
=
buffer
.
getInt
(
offset
+
4
)
&
INTMASK
;
}
if
(
offset
+
subtableLength
>
buffer
.
capacity
())
{
if
(
Font
Manager
.
logging
)
{
Font
Manager
.
logger
.
warning
(
"Cmap subtable overflows buffer."
);
if
(
Font
Utilities
.
isLogging
()
)
{
Font
Utilities
.
getLogger
()
.
warning
(
"Cmap subtable overflows buffer."
);
}
}
switch
(
subtableFormat
)
{
...
...
src/share/classes/sun/font/CompositeFont.java
浏览文件 @
e43dcf4d
...
...
@@ -60,7 +60,7 @@ public final class CompositeFont extends Font2D {
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 @@ public final class CompositeFont extends Font2D {
* 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 @@ public final class CompositeFont extends Font2D {
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 @@ public final class CompositeFont extends Font2D {
* 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
(
FontManager
Factory
.
getInstance
()
)
{
components
=
new
PhysicalFont
[
numSlots
];
components
[
0
]
=
physFont
;
System
.
arraycopy
(
compFont
.
components
,
0
,
...
...
@@ -235,7 +235,8 @@ public final class CompositeFont extends Font2D {
* 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 @@ public final class CompositeFont extends Font2D {
*/
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 @@ public final class CompositeFont extends Font2D {
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
();
}
}
...
...
src/share/classes/sun/font/CompositeGlyphMapper.java
浏览文件 @
e43dcf4d
...
...
@@ -211,10 +211,10 @@ public final class CompositeGlyphMapper extends CharToGlyphMapper {
glyphs
[
i
]
=
convertToGlyph
(
code
);
}
if
(
code
<
Font
Manager
.
MIN_LAYOUT_CHARCODE
)
{
if
(
code
<
Font
Utilities
.
MIN_LAYOUT_CHARCODE
)
{
continue
;
}
else
if
(
Font
Manager
.
isComplexCharCode
(
code
))
{
else
if
(
Font
Utilities
.
isComplexCharCode
(
code
))
{
return
true
;
}
else
if
(
code
>=
0x10000
)
{
...
...
src/share/classes/sun/font/FileFont.java
浏览文件 @
e43dcf4d
...
...
@@ -158,7 +158,8 @@ public abstract class FileFont extends PhysicalFont {
* 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 @@ public abstract class FileFont extends PhysicalFont {
}
}
scaler
.
dispose
();
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
}
StrikeMetrics
getFontMetrics
(
long
pScalerContext
)
{
try
{
return
getScaler
().
getFontMetrics
(
pScalerContext
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getFontMetrics
(
pScalerContext
);
}
}
...
...
@@ -188,7 +189,7 @@ public abstract class FileFont extends PhysicalFont {
try
{
return
getScaler
().
getGlyphAdvance
(
pScalerContext
,
glyphCode
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getGlyphAdvance
(
pScalerContext
,
glyphCode
);
}
}
...
...
@@ -197,7 +198,7 @@ public abstract class FileFont extends PhysicalFont {
try
{
getScaler
().
getGlyphMetrics
(
pScalerContext
,
glyphCode
,
metrics
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
getGlyphMetrics
(
pScalerContext
,
glyphCode
,
metrics
);
}
}
...
...
@@ -206,7 +207,7 @@ public abstract class FileFont extends PhysicalFont {
try
{
return
getScaler
().
getGlyphImage
(
pScalerContext
,
glyphCode
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getGlyphImage
(
pScalerContext
,
glyphCode
);
}
}
...
...
@@ -215,7 +216,7 @@ public abstract class FileFont extends PhysicalFont {
try
{
return
getScaler
().
getGlyphOutlineBounds
(
pScalerContext
,
glyphCode
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getGlyphOutlineBounds
(
pScalerContext
,
glyphCode
);
}
}
...
...
@@ -224,7 +225,7 @@ public abstract class FileFont extends PhysicalFont {
try
{
return
getScaler
().
getGlyphOutline
(
pScalerContext
,
glyphCode
,
x
,
y
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getGlyphOutline
(
pScalerContext
,
glyphCode
,
x
,
y
);
}
}
...
...
@@ -233,7 +234,7 @@ public abstract class FileFont extends PhysicalFont {
try
{
return
getScaler
().
getGlyphVectorOutline
(
pScalerContext
,
glyphs
,
numGlyphs
,
x
,
y
);
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getGlyphVectorOutline
(
pScalerContext
,
glyphs
,
numGlyphs
,
x
,
y
);
}
}
...
...
@@ -275,7 +276,8 @@ public abstract class FileFont extends PhysicalFont {
*/
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
)
{
}
}
...
...
src/share/classes/sun/font/FileFontStrike.java
浏览文件 @
e43dcf4d
...
...
@@ -114,7 +114,7 @@ public class FileFontStrike extends PhysicalStrike {
private
static
native
boolean
initNative
();
private
static
boolean
isXPorLater
=
false
;
static
{
if
(
Font
Manager
.
isWindows
&&
!
FontManager
.
useT2K
&&
if
(
Font
Utilities
.
isWindows
&&
!
FontUtilities
.
useT2K
&&
!
GraphicsEnvironment
.
isHeadless
())
{
isXPorLater
=
initNative
();
}
...
...
@@ -201,7 +201,7 @@ public class FileFontStrike extends PhysicalStrike {
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 @@ public class FileFontStrike extends PhysicalStrike {
* except that the advance returned by GDI is always overwritten by
* the JDK rasteriser supplied one (see getGlyphImageFromWindows()).
*/
if
(
Font
Manager
.
isWindows
&&
isXPorLater
&&
!
Font
Manager
.
useT2K
&&
if
(
Font
Utilities
.
isWindows
&&
isXPorLater
&&
!
Font
Utilities
.
useT2K
&&
!
GraphicsEnvironment
.
isHeadless
()
&&
!
fileFont
.
useJavaRasterizer
&&
(
desc
.
aaHint
==
INTVAL_TEXT_ANTIALIAS_LCD_HRGB
||
...
...
@@ -241,8 +241,8 @@ public class FileFontStrike extends PhysicalStrike {
}
}
}
if
(
Font
Manager
.
logging
&&
FontManager
.
isWindows
)
{
Font
Manager
.
logger
.
info
if
(
Font
Utilities
.
isLogging
()
&&
FontUtilities
.
isWindows
)
{
Font
Utilities
.
getLogger
()
.
info
(
"Strike for "
+
fileFont
+
" at size = "
+
intPtSize
+
" use natives = "
+
useNatives
+
" useJavaRasteriser = "
+
fileFont
.
useJavaRasterizer
+
...
...
@@ -298,7 +298,7 @@ public class FileFontStrike extends PhysicalStrike {
}
long
getGlyphImageFromNative
(
int
glyphCode
)
{
if
(
Font
Manager
.
isWindows
)
{
if
(
Font
Utilities
.
isWindows
)
{
return
getGlyphImageFromWindows
(
glyphCode
);
}
else
{
return
getGlyphImageFromX11
(
glyphCode
);
...
...
@@ -366,8 +366,8 @@ public class FileFontStrike extends PhysicalStrike {
}
else
{
if
(
useNatives
)
{
glyphPtr
=
getGlyphImageFromNative
(
glyphCode
);
if
(
glyphPtr
==
0L
&&
Font
Manager
.
logging
)
{
Font
Manager
.
logger
.
info
if
(
glyphPtr
==
0L
&&
Font
Utilities
.
isLogging
()
)
{
Font
Utilities
.
getLogger
()
.
info
(
"Strike for "
+
fileFont
+
" at size = "
+
intPtSize
+
" couldn't get native glyph for code = "
+
glyphCode
);
...
...
@@ -528,7 +528,7 @@ public class FileFontStrike extends PhysicalStrike {
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 @@ public class FileFontStrike extends PhysicalStrike {
this
.
disposer
.
segIntGlyphImages
=
segIntGlyphImages
;
}
}
else
{
if
(
FontManager
.
longAddresses
)
{
if
(
longAddresses
)
{
glyphCacheFormat
=
LONGARRAY
;
longGlyphImages
=
new
long
[
numGlyphs
];
this
.
disposer
.
longGlyphImages
=
longGlyphImages
;
...
...
src/share/classes/sun/font/FontDesignMetrics.java
浏览文件 @
e43dcf4d
...
...
@@ -261,8 +261,9 @@ public final class FontDesignMetrics extends FontMetrics {
* 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 @@ public final class FontDesignMetrics extends FontMetrics {
private
void
initMatrixAndMetrics
()
{
Font2D
font2D
=
Font
Manager
.
getFont2D
(
font
);
Font2D
font2D
=
Font
Utilities
.
getFont2D
(
font
);
fontStrike
=
font2D
.
getStrike
(
font
,
frc
);
StrikeMetrics
metrics
=
fontStrike
.
getFontMetrics
();
this
.
ascent
=
metrics
.
getAscent
();
...
...
@@ -473,7 +474,7 @@ public final class FontDesignMetrics extends FontMetrics {
char
ch
=
str
.
charAt
(
i
);
if
(
ch
<
0x100
)
{
width
+=
getLatinCharWidth
(
ch
);
}
else
if
(
Font
Manager
.
isNonSimpleChar
(
ch
))
{
}
else
if
(
Font
Utilities
.
isNonSimpleChar
(
ch
))
{
width
=
new
TextLayout
(
str
,
font
,
frc
).
getAdvance
();
break
;
}
else
{
...
...
@@ -504,7 +505,7 @@ public final class FontDesignMetrics extends FontMetrics {
char
ch
=
data
[
i
];
if
(
ch
<
0x100
)
{
width
+=
getLatinCharWidth
(
ch
);
}
else
if
(
Font
Manager
.
isNonSimpleChar
(
ch
))
{
}
else
if
(
Font
Utilities
.
isNonSimpleChar
(
ch
))
{
String
str
=
new
String
(
data
,
off
,
len
);
width
=
new
TextLayout
(
str
,
font
,
frc
).
getAdvance
();
break
;
...
...
src/share/classes/sun/font/FontFamily.java
浏览文件 @
e43dcf4d
...
...
@@ -107,8 +107,9 @@ public class FontFamily {
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
);
...
...
src/share/classes/sun/font/FontManager.java
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
src/share/classes/sun/font/FontManagerNativeLibrary.java
浏览文件 @
e43dcf4d
...
...
@@ -34,7 +34,7 @@ public class FontManagerNativeLibrary {
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.
...
...
src/share/classes/sun/font/FontResolver.java
浏览文件 @
e43dcf4d
...
...
@@ -114,7 +114,7 @@ public final class FontResolver {
for
(
int
i
=
0
;
i
<
getAllFonts
().
length
;
i
++)
{
Font
font
=
allFonts
[
i
];
Font2D
font2D
=
Font
Manager
.
getFont2D
(
font
);
Font2D
font2D
=
Font
Utilities
.
getFont2D
(
font
);
if
(
font2D
.
hasSupplementaryChars
())
{
fonts
.
add
(
font
);
indices
.
add
(
Integer
.
valueOf
(
i
));
...
...
src/share/classes/sun/font/FontScaler.java
浏览文件 @
e43dcf4d
...
...
@@ -29,6 +29,9 @@ import java.awt.geom.GeneralPath;
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 @@ import sun.java2d.DisposerRecord;
* 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
...
...
src/share/classes/sun/font/FreetypeFontScaler.java
浏览文件 @
e43dcf4d
...
...
@@ -79,7 +79,7 @@ class FreetypeFontScaler extends FontScaler {
pScalerContext
,
nativeScaler
);
}
return
Font
Manag
er
.
getNullScaler
().
getFontMetrics
(
0L
);
return
Font
Scal
er
.
getNullScaler
().
getFontMetrics
(
0L
);
}
synchronized
float
getGlyphAdvance
(
long
pScalerContext
,
int
glyphCode
)
...
...
@@ -90,7 +90,8 @@ class FreetypeFontScaler extends FontScaler {
nativeScaler
,
glyphCode
);
}
return
FontManager
.
getNullScaler
().
getGlyphAdvance
(
0L
,
glyphCode
);
return
FontScaler
.
getNullScaler
().
getGlyphAdvance
(
0L
,
glyphCode
);
}
synchronized
void
getGlyphMetrics
(
long
pScalerContext
,
...
...
@@ -104,7 +105,8 @@ class FreetypeFontScaler extends FontScaler {
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 @@ class FreetypeFontScaler extends FontScaler {
nativeScaler
,
glyphCode
);
}
return
FontManager
.
getNullScaler
().
getGlyphImage
(
0L
,
glyphCode
);
return
FontScaler
.
getNullScaler
().
getGlyphImage
(
0L
,
glyphCode
);
}
synchronized
Rectangle2D
.
Float
getGlyphOutlineBounds
(
...
...
@@ -127,7 +130,8 @@ class FreetypeFontScaler extends FontScaler {
nativeScaler
,
glyphCode
);
}
return
FontManager
.
getNullScaler
().
getGlyphOutlineBounds
(
0L
,
glyphCode
);
return
FontScaler
.
getNullScaler
().
getGlyphOutlineBounds
(
0L
,
glyphCode
);
}
synchronized
GeneralPath
getGlyphOutline
(
...
...
@@ -140,7 +144,8 @@ class FreetypeFontScaler extends FontScaler {
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 @@ class FreetypeFontScaler extends FontScaler {
numGlyphs
,
x
,
y
);
}
return
Font
Manager
.
getNullScaler
().
getGlyphVectorOutline
(
0L
,
glyphs
,
numGlyphs
,
x
,
y
);
return
Font
Scaler
.
getNullScaler
().
getGlyphVectorOutline
(
0L
,
glyphs
,
numGlyphs
,
x
,
y
);
}
synchronized
long
getLayoutTableCache
()
throws
FontScalerException
{
...
...
@@ -173,21 +178,21 @@ class FreetypeFontScaler extends FontScaler {
if
(
nativeScaler
!=
0L
)
{
return
getNumGlyphsNative
(
nativeScaler
);
}
return
Font
Manag
er
.
getNullScaler
().
getNumGlyphs
();
return
Font
Scal
er
.
getNullScaler
().
getNumGlyphs
();
}
synchronized
int
getMissingGlyphCode
()
throws
FontScalerException
{
if
(
nativeScaler
!=
0L
)
{
return
getMissingGlyphCodeNative
(
nativeScaler
);
}
return
Font
Manag
er
.
getNullScaler
().
getMissingGlyphCode
();
return
Font
Scal
er
.
getNullScaler
().
getMissingGlyphCode
();
}
synchronized
int
getGlyphCode
(
char
charCode
)
throws
FontScalerException
{
if
(
nativeScaler
!=
0L
)
{
return
getGlyphCodeNative
(
nativeScaler
,
charCode
);
}
return
Font
Manag
er
.
getNullScaler
().
getGlyphCode
(
charCode
);
return
Font
Scal
er
.
getNullScaler
().
getGlyphCode
(
charCode
);
}
synchronized
Point2D
.
Float
getGlyphPoint
(
long
pScalerContext
,
...
...
@@ -197,7 +202,7 @@ class FreetypeFontScaler extends FontScaler {
return
getGlyphPointNative
(
font
.
get
(),
pScalerContext
,
nativeScaler
,
glyphCode
,
ptNumber
);
}
return
Font
Manag
er
.
getNullScaler
().
getGlyphPoint
(
return
Font
Scal
er
.
getNullScaler
().
getGlyphPoint
(
pScalerContext
,
glyphCode
,
ptNumber
);
}
...
...
src/share/classes/sun/font/GlyphLayout.java
浏览文件 @
e43dcf4d
...
...
@@ -259,7 +259,7 @@ public final class GlyphLayout {
*/
int
aa
=
FontStrikeDesc
.
getAAHintIntVal
(
frc
.
getAntiAliasingHint
(),
Font
Manager
.
getFont2D
(
font
),
Font
Utilities
.
getFont2D
(
font
),
(
int
)
Math
.
abs
(
ptSize
));
int
fm
=
FontStrikeDesc
.
getFMHintIntVal
(
frc
.
getFractionalMetricsHint
());
...
...
@@ -407,7 +407,7 @@ public final class GlyphLayout {
int
lang
=
-
1
;
// default for now
Font2D
font2D
=
Font
Manager
.
getFont2D
(
font
);
Font2D
font2D
=
Font
Utilities
.
getFont2D
(
font
);
_textRecord
.
init
(
text
,
offset
,
lim
,
min
,
max
);
int
start
=
offset
;
...
...
src/share/classes/sun/font/PhysicalStrike.java
浏览文件 @
e43dcf4d
...
...
@@ -36,6 +36,14 @@ import java.util.concurrent.ConcurrentHashMap;
public
abstract
class
PhysicalStrike
extends
FontStrike
{
static
final
long
INTMASK
=
0xffffffff
L
;
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
;
...
...
src/share/classes/sun/font/StandardGlyphVector.java
浏览文件 @
e43dcf4d
...
...
@@ -197,7 +197,7 @@ public class StandardGlyphVector extends GlyphVector {
// how do we know its a base glyph
// for now, it is if the natural advance of the glyph is non-zero
Font2D
f2d
=
Font
Manager
.
getFont2D
(
font
);
Font2D
f2d
=
Font
Utilities
.
getFont2D
(
font
);
FontStrike
strike
=
f2d
.
getStrike
(
font
,
frc
);
float
[]
deltas
=
{
trackPt
.
x
,
trackPt
.
y
};
...
...
@@ -1116,7 +1116,7 @@ public class StandardGlyphVector extends GlyphVector {
}
private
void
initFontData
()
{
font2D
=
Font
Manager
.
getFont2D
(
font
);
font2D
=
Font
Utilities
.
getFont2D
(
font
);
float
s
=
font
.
getSize2D
();
if
(
font
.
isTransformed
())
{
ftx
=
font
.
getTransform
();
...
...
src/share/classes/sun/font/StrikeCache.java
浏览文件 @
e43dcf4d
...
...
@@ -237,7 +237,7 @@ public final class StrikeCache {
* 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 @@ public final class StrikeCache {
}
}
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
...
...
src/share/classes/sun/font/TrueTypeFont.java
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
src/share/classes/sun/font/TrueTypeGlyphMapper.java
浏览文件 @
e43dcf4d
...
...
@@ -60,9 +60,9 @@ public class TrueTypeGlyphMapper extends CharToGlyphMapper {
missingGlyph
=
0
;
/* standard for TrueType fonts */
ByteBuffer
buffer
=
font
.
getTableBuffer
(
TrueTypeFont
.
maxpTag
);
numGlyphs
=
buffer
.
getChar
(
4
);
// offset 4 bytes in MAXP table.
if
(
Font
Manager
.
isSolaris
&&
isJAlocale
&&
font
.
supportsJA
())
{
if
(
Font
Utilities
.
isSolaris
&&
isJAlocale
&&
font
.
supportsJA
())
{
needsJAremapping
=
true
;
if
(
Font
Manager
.
isSolaris8
&&
if
(
Font
Utilities
.
isSolaris8
&&
getGlyphFromCMAP
(
JA_WAVE_DASH_CHAR
)
==
missingGlyph
)
{
remapJAWaveDash
=
true
;
}
...
...
@@ -82,8 +82,8 @@ public class TrueTypeGlyphMapper extends CharToGlyphMapper {
glyphCode
>=
FileFontStrike
.
INVISIBLE_GLYPHS
)
{
return
glyphCode
;
}
else
{
if
(
Font
Manager
.
logging
)
{
Font
Manager
.
logger
.
warning
if
(
Font
Utilities
.
isLogging
()
)
{
Font
Utilities
.
getLogger
()
.
warning
(
font
+
" out of range glyph id="
+
Integer
.
toHexString
((
int
)
glyphCode
)
+
" for char "
+
Integer
.
toHexString
(
charCode
));
...
...
@@ -97,11 +97,11 @@ public class TrueTypeGlyphMapper extends CharToGlyphMapper {
}
private
void
handleBadCMAP
()
{
if
(
Font
Manager
.
logging
)
{
Font
Manager
.
logger
.
severe
(
"Null Cmap for "
+
font
+
if
(
Font
Utilities
.
isLogging
()
)
{
Font
Utilities
.
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 @@ public class TrueTypeGlyphMapper extends CharToGlyphMapper {
font
.
glyphToCharMap
[
glyphs
[
i
]]
=
(
char
)
code
;
}
if
(
code
<
Font
Manager
.
MIN_LAYOUT_CHARCODE
)
{
if
(
code
<
Font
Utilities
.
MIN_LAYOUT_CHARCODE
)
{
continue
;
}
else
if
(
Font
Manager
.
isComplexCharCode
(
code
))
{
else
if
(
Font
Utilities
.
isComplexCharCode
(
code
))
{
return
true
;
}
else
if
(
code
>=
0x10000
)
{
...
...
src/share/classes/sun/font/Type1Font.java
浏览文件 @
e43dcf4d
...
...
@@ -635,7 +635,7 @@ public class Type1Font extends FileFont {
protected
synchronized
FontScaler
getScaler
()
{
if
(
scaler
==
null
)
{
scaler
=
Font
Manag
er
.
getScaler
(
this
,
0
,
false
,
fileSize
);
scaler
=
Font
Scal
er
.
getScaler
(
this
,
0
,
false
,
fileSize
);
}
return
scaler
;
...
...
@@ -652,7 +652,7 @@ public class Type1Font extends FileFont {
try
{
return
getScaler
().
getNumGlyphs
();
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getNumGlyphs
();
}
}
...
...
@@ -661,7 +661,7 @@ public class Type1Font extends FileFont {
try
{
return
getScaler
().
getMissingGlyphCode
();
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getMissingGlyphCode
();
}
}
...
...
@@ -670,7 +670,7 @@ public class Type1Font extends FileFont {
try
{
return
getScaler
().
getGlyphCode
(
charCode
);
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getGlyphCode
(
charCode
);
}
}
...
...
@@ -679,5 +679,4 @@ public class Type1Font extends FileFont {
return
"** Type1 Font: Family="
+
familyName
+
" Name="
+
fullName
+
" style="
+
style
+
" fileName="
+
platName
;
}
}
src/share/classes/sun/font/Type1GlyphMapper.java
浏览文件 @
e43dcf4d
...
...
@@ -46,7 +46,7 @@ public final class Type1GlyphMapper extends CharToGlyphMapper {
try
{
missingGlyph
=
scaler
.
getMissingGlyphCode
();
}
catch
(
FontScalerException
fe
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
try
{
missingGlyph
=
scaler
.
getMissingGlyphCode
();
}
catch
(
FontScalerException
e
)
{
//should not happen
...
...
@@ -59,7 +59,7 @@ public final class Type1GlyphMapper extends CharToGlyphMapper {
try
{
return
scaler
.
getNumGlyphs
();
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
getNumGlyphs
();
}
}
...
...
@@ -72,7 +72,7 @@ public final class Type1GlyphMapper extends CharToGlyphMapper {
try
{
return
scaler
.
getGlyphCode
(
ch
)
!=
missingGlyph
;
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
canDisplay
(
ch
);
}
}
...
...
@@ -81,7 +81,7 @@ public final class Type1GlyphMapper extends CharToGlyphMapper {
try
{
return
scaler
.
getGlyphCode
(
ch
);
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
charToGlyph
(
ch
);
}
}
...
...
@@ -93,7 +93,7 @@ public final class Type1GlyphMapper extends CharToGlyphMapper {
try
{
return
scaler
.
getGlyphCode
((
char
)
ch
);
}
catch
(
FontScalerException
e
)
{
scaler
=
Font
Manag
er
.
getNullScaler
();
scaler
=
Font
Scal
er
.
getNullScaler
();
return
charToGlyph
(
ch
);
}
}
...
...
@@ -160,10 +160,10 @@ public final class Type1GlyphMapper extends CharToGlyphMapper {
glyphs
[
i
]
=
charToGlyph
(
code
);
if
(
code
<
Font
Manager
.
MIN_LAYOUT_CHARCODE
)
{
if
(
code
<
Font
Utilities
.
MIN_LAYOUT_CHARCODE
)
{
continue
;
}
else
if
(
Font
Manager
.
isComplexCharCode
(
code
))
{
else
if
(
Font
Utilities
.
isComplexCharCode
(
code
))
{
return
true
;
}
else
if
(
code
>=
0x10000
)
{
...
...
src/share/classes/sun/java2d/SunGraphics2D.java
浏览文件 @
e43dcf4d
...
...
@@ -66,6 +66,7 @@ import java.awt.Transparency;
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 @@ public final class SunGraphics2D
}
}
info
.
font2D
=
Font
Manager
.
getFont2D
(
font
);
info
.
font2D
=
Font
Utilities
.
getFont2D
(
font
);
int
fmhint
=
fractionalMetricsHint
;
if
(
fmhint
==
SunHints
.
INTVAL_FRACTIONALMETRICS_DEFAULT
)
{
...
...
@@ -741,7 +742,8 @@ public final class SunGraphics2D
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
;
...
...
src/share/classes/sun/java2d/SunGraphicsEnvironment.java
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
src/share/classes/sun/print/PSPrinterJob.java
浏览文件 @
e43dcf4d
...
...
@@ -87,6 +87,8 @@ import sun.awt.FontConfiguration;
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 @@ public class PSPrinterJob extends RasterPrinterJob {
}
int
styleMask
=
font
.
getStyle
()
|
sun
.
font
.
FontManager
.
getFont2D
(
font
).
getStyle
();
FontUtilities
.
getFont2D
(
font
).
getStyle
();
String
style
=
FontConfiguration
.
getStyleString
(
styleMask
);
...
...
src/share/classes/sun/print/PathGraphics.java
浏览文件 @
e43dcf4d
...
...
@@ -32,6 +32,8 @@ import sun.font.CompositeFont;
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 @@ public abstract class PathGraphics extends ProxyGraphics2D {
}
Font
font
=
g
.
getFont
();
Font2D
font2D
=
Font
Manager
.
getFont2D
(
font
);
Font2D
font2D
=
Font
Utilities
.
getFont2D
(
font
);
if
(
font2D
.
handle
.
font2D
!=
font2D
)
{
/* suspicious, may be a bad font. lets bail */
return
false
;
...
...
@@ -933,7 +935,7 @@ public abstract class PathGraphics extends ProxyGraphics2D {
* The logic here is erring on the side of caution, in particular
* in including supplementary characters.
*/
if
(
Font
Manager
.
isComplexText
(
chars
,
0
,
chars
.
length
))
{
if
(
Font
Utilities
.
isComplexText
(
chars
,
0
,
chars
.
length
))
{
return
printGlyphVector
(
g
,
x
,
y
);
}
...
...
src/share/classes/sun/swing/SwingUtilities2.java
浏览文件 @
e43dcf4d
...
...
@@ -54,7 +54,7 @@ import sun.security.util.SecurityConstants;
import
java.io.*
;
import
java.util.*
;
import
sun.font.FontDesignMetrics
;
import
sun.font.Font
Manager
;
import
sun.font.Font
Utilities
;
import
sun.java2d.SunGraphicsEnvironment
;
import
java.util.concurrent.Callable
;
...
...
@@ -193,7 +193,7 @@ public class SwingUtilities2 {
* <tt>false</tt> if TextLayout is not required
*/
public
static
final
boolean
isComplexLayout
(
char
[]
text
,
int
start
,
int
limit
)
{
return
Font
Manager
.
isComplexText
(
text
,
start
,
limit
);
return
Font
Utilities
.
isComplexText
(
text
,
start
,
limit
);
}
//
...
...
src/share/native/sun/font/sunFont.c
浏览文件 @
e43dcf4d
...
...
@@ -71,41 +71,14 @@ JNIEXPORT jlong JNICALL Java_sun_font_NullFontScaler_getGlyphImage
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_
Sun
FontManager_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 @@ JNIEXPORT FontManagerNativeIDs getSunFontIDs() {
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
...
...
src/share/native/sun/font/sunfontids.h
浏览文件 @
e43dcf4d
...
...
@@ -34,11 +34,6 @@ extern "C" {
typedef
struct
FontManagerNativeIDs
{
/* java/awt/Font methods & fields */
jmethodID
getFont2DMID
;
jfieldID
font2DHandle
;
jfieldID
createdFont
;
/* sun/font/Font2D methods */
jmethodID
getMapperMID
;
jmethodID
getTableBytesMID
;
...
...
src/solaris/classes/sun/awt/X11/XToolkit.java
浏览文件 @
e43dcf4d
...
...
@@ -51,6 +51,7 @@ 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
;
...
...
@@ -95,6 +96,8 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
*/
private
XSettings
xs
;
private
FontConfigManager
fcManager
=
new
FontConfigManager
();
static
int
arrowCursor
;
static
TreeMap
winMap
=
new
TreeMap
();
static
HashMap
specialPeerMap
=
new
HashMap
();
...
...
@@ -1527,7 +1530,7 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
*/
if
(
desktopProperties
.
get
(
SunToolkit
.
DESKTOPFONTHINTS
)
==
null
)
{
if
(
XWM
.
isKDE2
())
{
Object
hint
=
Font
Manager
.
getFontConfigAAHint
();
Object
hint
=
fc
Manager
.
getFontConfigAAHint
();
if
(
hint
!=
null
)
{
/* set the fontconfig/KDE property so that
* getDesktopHints() below will see it
...
...
src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
src/solaris/classes/sun/awt/motif/MFontConfiguration.java
浏览文件 @
e43dcf4d
...
...
@@ -37,7 +37,12 @@ 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
;
...
...
@@ -46,20 +51,20 @@ public class MFontConfiguration extends FontConfiguration {
private
static
FontConfiguration
fontConfig
=
null
;
private
static
Logger
logger
;
public
MFontConfiguration
(
Sun
GraphicsEnvironment
environment
)
{
super
(
environment
);
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
public
MFontConfiguration
(
Sun
FontManager
fm
)
{
super
(
fm
);
if
(
FontUtilities
.
debugFonts
()
)
{
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
}
initTables
();
}
public
MFontConfiguration
(
Sun
GraphicsEnvironment
environment
,
public
MFontConfiguration
(
Sun
FontManager
fm
,
boolean
preferLocaleFonts
,
boolean
preferPropFonts
)
{
super
(
environment
,
preferLocaleFonts
,
preferPropFonts
);
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
super
(
fm
,
preferLocaleFonts
,
preferPropFonts
);
if
(
FontUtilities
.
debugFonts
()
)
{
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
}
initTables
();
...
...
@@ -90,7 +95,7 @@ public class MFontConfiguration extends FontConfiguration {
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 @@ public class MFontConfiguration extends FontConfiguration {
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 @@ public class MFontConfiguration extends FontConfiguration {
protected
String
mapFileName
(
String
fileName
)
{
if
(
fileName
!=
null
&&
fileName
.
startsWith
(
fontsDirPrefix
))
{
return
Sun
GraphicsEnvironment
.
jreFontDirName
return
Sun
FontManager
.
jreFontDirName
+
fileName
.
substring
(
fontsDirPrefix
.
length
());
}
return
fileName
;
...
...
@@ -310,7 +315,7 @@ public class MFontConfiguration extends FontConfiguration {
!
needToSearchForFile
(
fileName
))
{
return
fileName
;
}
return
((
X11
GraphicsEnvironment
)
environment
).
getFileNameFromXLFD
(
componentFontName
);
return
((
X11
FontManager
)
fontManager
).
getFileNameFromXLFD
(
componentFontName
);
}
/**
...
...
src/solaris/classes/sun/awt/motif/MToolkit.java
浏览文件 @
e43dcf4d
...
...
@@ -61,6 +61,7 @@ import java.awt.dnd.InvalidDnDOperationException;
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
;
...
...
@@ -124,7 +125,7 @@ public class MToolkit extends UNIXToolkit implements Runnable {
* and when we know that MToolkit is the one that will be used,
* since XToolkit doesn't need the X11 font path set
*/
X11
GraphicsEnvironment
.
setNativeFontPath
();
X11
FontManager
.
getInstance
()
.
setNativeFontPath
();
motifdnd
=
((
Boolean
)
java
.
security
.
AccessController
.
doPrivileged
(
new
GetBooleanAction
(
"awt.dnd.motifdnd"
))).
booleanValue
();
...
...
src/solaris/classes/sun/font/FcFontConfiguration.java
浏览文件 @
e43dcf4d
...
...
@@ -41,11 +41,12 @@ 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.Font
Config
Manager.FontConfigInfo
;
import
sun.font.Font
Config
Manager.FcCompFont
;
import
sun.font.Font
Config
Manager.FontConfigFont
;
import
sun.java2d.SunGraphicsEnvironment
;
public
class
FcFontConfiguration
extends
FontConfiguration
{
...
...
@@ -68,16 +69,16 @@ public class FcFontConfiguration extends FontConfiguration {
private
FcCompFont
[]
fcCompFonts
=
null
;
public
FcFontConfiguration
(
Sun
GraphicsEnvironment
environment
)
{
super
(
environment
);
public
FcFontConfiguration
(
Sun
FontManager
fm
)
{
super
(
fm
);
init
();
}
/* This isn't called but is needed to satisfy super-class contract. */
public
FcFontConfiguration
(
Sun
GraphicsEnvironment
environment
,
public
FcFontConfiguration
(
Sun
FontManager
fm
,
boolean
preferLocaleFonts
,
boolean
preferPropFonts
)
{
super
(
environment
,
preferLocaleFonts
,
preferPropFonts
);
super
(
fm
,
preferLocaleFonts
,
preferPropFonts
);
init
();
}
...
...
@@ -89,24 +90,26 @@ public class FcFontConfiguration extends FontConfiguration {
setFontConfiguration
();
readFcInfo
();
X11FontManager
fm
=
X11FontManager
.
getInstance
();
FontConfigManager
fcm
=
fm
.
getFontConfigManager
();
if
(
fcCompFonts
==
null
)
{
fcCompFonts
=
FontManager
.
loadFontConfig
();
fcCompFonts
=
fcm
.
loadFontConfig
();
if
(
fcCompFonts
!=
null
)
{
try
{
writeFcInfo
();
}
catch
(
Exception
e
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
"Exception writing fcInfo "
+
e
);
}
}
}
else
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
}
else
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
"Failed to get info from libfontconfig"
);
}
}
else
{
FontManager
.
populateFontConfig
(
fcCompFonts
);
fcm
.
populateFontConfig
(
fcCompFonts
);
}
if
(
fcCompFonts
==
null
)
{
...
...
@@ -184,7 +187,9 @@ public class FcFontConfiguration extends FontConfiguration {
@Override
public
String
[]
getPlatformFontNames
()
{
HashSet
<
String
>
nameSet
=
new
HashSet
<
String
>();
FcCompFont
[]
fcCompFonts
=
FontManager
.
loadFontConfig
();
X11FontManager
fm
=
X11FontManager
.
getInstance
();
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 +228,9 @@ public class FcFontConfiguration extends FontConfiguration {
@Override
public
CompositeFontDescriptor
[]
get2DCompositeFontInfo
()
{
FcCompFont
[]
fcCompFonts
=
FontManager
.
loadFontConfig
();
X11FontManager
fm
=
X11FontManager
.
getInstance
();
FontConfigManager
fcm
=
fm
.
getFontConfigManager
();
FcCompFont
[]
fcCompFonts
=
fcm
.
loadFontConfig
();
CompositeFontDescriptor
[]
result
=
new
CompositeFontDescriptor
[
NUM_FONTS
*
NUM_STYLES
];
...
...
@@ -321,7 +328,7 @@ public class FcFontConfiguration extends FontConfiguration {
osVersion
=
getVersionString
(
f
);
}
}
catch
(
Exception
e
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
"Exception identifying Linux distro."
);
}
...
...
@@ -356,7 +363,9 @@ public class FcFontConfiguration extends FontConfiguration {
private
void
writeFcInfo
()
{
Properties
props
=
new
Properties
();
props
.
setProperty
(
"version"
,
fileVersion
);
FontConfigInfo
fcInfo
=
FontManager
.
getFontConfigInfo
();
X11FontManager
fm
=
X11FontManager
.
getInstance
();
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,13 +400,13 @@ public class FcFontConfiguration extends FontConfiguration {
"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
());
}
}
catch
(
Exception
e
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
"IOException writing to "
+
getFcInfoFile
());
}
...
...
@@ -415,12 +424,14 @@ public class FcFontConfiguration extends FontConfiguration {
return
;
}
Properties
props
=
new
Properties
();
X11FontManager
fm
=
X11FontManager
.
getInstance
();
FontConfigManager
fcm
=
fm
.
getFontConfigManager
();
try
{
FileInputStream
fis
=
new
FileInputStream
(
fcFile
);
props
.
load
(
fis
);
fis
.
close
();
}
catch
(
IOException
e
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
"IOException reading from "
+
fcFile
.
toString
());
}
...
...
@@ -439,11 +450,11 @@ public class FcFontConfiguration extends FontConfiguration {
try
{
fcVersion
=
Integer
.
parseInt
(
fcVersionStr
);
if
(
fcVersion
!=
0
&&
fcVersion
!=
FontManager
.
getFontConfigVersion
())
{
fcVersion
!=
fcm
.
getFontConfigVersion
())
{
return
;
}
}
catch
(
Exception
e
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
"Exception parsing version "
+
...
...
@@ -509,7 +520,7 @@ public class FcFontConfiguration extends FontConfiguration {
}
fcCompFonts
=
fci
;
}
catch
(
Throwable
t
)
{
if
(
SunGraphicsEnvironment
.
debugFonts
)
{
if
(
FontUtilities
.
debugFonts
()
)
{
Logger
logger
=
Logger
.
getLogger
(
"sun.awt.FontConfiguration"
);
logger
.
warning
(
t
.
toString
());
}
...
...
src/solaris/classes/sun/font/NativeFont.java
浏览文件 @
e43dcf4d
...
...
@@ -242,7 +242,8 @@ public class NativeFont extends PhysicalFont {
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 @@ public class NativeFont extends PhysicalFont {
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 @@ public class NativeFont extends PhysicalFont {
PhysicalFont
getDelegateFont
()
{
if
(
delegateFont
==
null
)
{
delegateFont
=
FontManager
.
getDefaultPhysicalFont
();
SunFontManager
fm
=
SunFontManager
.
getInstance
();
delegateFont
=
fm
.
getDefaultPhysicalFont
();
}
return
delegateFont
;
}
...
...
src/solaris/classes/sun/font/NativeStrike.java
浏览文件 @
e43dcf4d
...
...
@@ -112,11 +112,12 @@ import java.awt.geom.NoninvertibleTransformException;
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 @@ import java.awt.geom.NoninvertibleTransformException;
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 @@ import java.awt.geom.NoninvertibleTransformException;
}
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.
...
...
src/solaris/native/sun/awt/fontpath.c
浏览文件 @
e43dcf4d
...
...
@@ -150,15 +150,26 @@ jboolean isDisplayLocal(JNIEnv *env) {
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 @@ static char *getPlatformFontPathChars(JNIEnv *env, jboolean noType1) {
return
path
;
}
JNIEXPORT
jstring
JNICALL
Java_sun_
font_
FontManager_getFontPath
(
JNIEnv
*
env
,
j
class
obj
,
jboolean
noType1
)
{
JNIEXPORT
jstring
JNICALL
Java_sun_
awt_X11
FontManager_getFontPath
(
JNIEnv
*
env
,
j
object
thiz
,
jboolean
noType1
)
{
jstring
ret
;
static
char
*
ptr
=
NULL
;
/* retain result across calls */
...
...
@@ -564,7 +575,7 @@ static int shouldSetXFontPath(JNIEnv *env) {
}
#endif
/* !HEADLESS */
JNIEXPORT
void
JNICALL
Java_sun_font_FontManager_setNativeFontPath
JNIEXPORT
void
JNICALL
Java_sun_font_
X11
FontManager_setNativeFontPath
(
JNIEnv
*
env
,
jclass
obj
,
jstring
theString
)
{
#ifdef HEADLESS
return
;
...
...
@@ -592,21 +603,6 @@ JNIEXPORT void JNICALL Java_sun_font_FontManager_setNativeFontPath
#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 @@ static char **getFontConfigLocations() {
#define TEXT_AA_LCD_VBGR 7
JNIEXPORT
jint
JNICALL
Java_sun_font_FontManager_getFontConfigAASettings
Java_sun_font_Font
Config
Manager_getFontConfigAASettings
(
JNIEnv
*
env
,
jclass
obj
,
jstring
localeStr
,
jstring
fcNameStr
)
{
FcNameParseFuncType
FcNameParse
;
...
...
@@ -975,7 +971,7 @@ Java_sun_font_FontManager_getFontConfigAASettings
}
JNIEXPORT
jint
JNICALL
Java_sun_font_FontManager_getFontConfigVersion
Java_sun_font_Font
Config
Manager_getFontConfigVersion
(
JNIEnv
*
env
,
jclass
obj
)
{
void
*
libfontconfig
;
...
...
@@ -1000,7 +996,7 @@ Java_sun_font_FontManager_getFontConfigVersion
JNIEXPORT
void
JNICALL
Java_sun_font_FontManager_getFontConfig
Java_sun_font_Font
Config
Manager_getFontConfig
(
JNIEnv
*
env
,
jclass
obj
,
jstring
localeStr
,
jobject
fcInfoObj
,
jobjectArray
fcCompFontArray
,
jboolean
includeFallbacks
)
{
...
...
@@ -1034,11 +1030,11 @@ Java_sun_font_FontManager_getFontConfig
char
*
debugMinGlyphsStr
=
getenv
(
"J2D_DEBUG_MIN_GLYPHS"
);
jclass
fcInfoClass
=
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontManager$FontConfigInfo"
);
(
*
env
)
->
FindClass
(
env
,
"sun/font/Font
Config
Manager$FontConfigInfo"
);
jclass
fcCompFontClass
=
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontManager$FcCompFont"
);
(
*
env
)
->
FindClass
(
env
,
"sun/font/Font
Config
Manager$FcCompFont"
);
jclass
fcFontClass
=
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontManager$FontConfigFont"
);
(
*
env
)
->
FindClass
(
env
,
"sun/font/Font
Config
Manager$FontConfigFont"
);
if
(
fcInfoObj
==
NULL
||
fcCompFontArray
==
NULL
||
fcInfoClass
==
NULL
||
fcCompFontClass
==
NULL
||
fcFontClass
==
NULL
)
{
...
...
@@ -1054,11 +1050,11 @@ Java_sun_font_FontManager_getFontConfig
"fcName"
,
"Ljava/lang/String;"
);
fcFirstFontID
=
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"firstFont"
,
"Lsun/font/FontManager$FontConfigFont;"
);
"Lsun/font/Font
Config
Manager$FontConfigFont;"
);
fcAllFontsID
=
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"allFonts"
,
"[Lsun/font/FontManager$FontConfigFont;"
);
"[Lsun/font/Font
Config
Manager$FontConfigFont;"
);
fcFontCons
=
(
*
env
)
->
GetMethodID
(
env
,
fcFontClass
,
"<init>"
,
"()V"
);
...
...
src/windows/classes/sun/awt/Win32GraphicsEnvironment.java
浏览文件 @
e43dcf4d
...
...
@@ -43,6 +43,8 @@ import sun.awt.windows.WFontConfiguration;
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 @@ public class Win32GraphicsEnvironment
// setup flags before initializing native layer
WindowsFlags
.
initFlags
();
initDisplayWrapper
();
eudcFontFileName
=
getEUDCFontFile
();
// Install correct surface manager factory.
SurfaceManagerFactory
.
setInstance
(
new
WindowsSurfaceManagerFactory
());
...
...
@@ -211,14 +212,6 @@ public class Win32GraphicsEnvironment
* ----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 @@ public class Win32GraphicsEnvironment
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 @@ public class Win32GraphicsEnvironment
// 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 class Win32GraphicsEnvironment
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 @@ public class Win32GraphicsEnvironment
isDWMCompositionEnabled
=
enabled
;
}
@Override
public
boolean
isDisplayLocal
()
{
return
true
;
}
/**
* Used to find out if the OS is Windows Vista or later.
*
...
...
src/windows/classes/sun/awt/windows/WFontConfiguration.java
浏览文件 @
e43dcf4d
...
...
@@ -29,6 +29,8 @@ import java.util.HashMap;
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 @@ public class WFontConfiguration extends FontConfiguration {
// whether compatibility fallbacks for TimesRoman and Co. are used
private
boolean
useCompatibilityFallbacks
;
public
WFontConfiguration
(
Sun
GraphicsEnvironment
environment
)
{
super
(
environment
);
public
WFontConfiguration
(
Sun
FontManager
fm
)
{
super
(
fm
);
useCompatibilityFallbacks
=
"windows-1252"
.
equals
(
encoding
);
initTables
(
encoding
);
}
public
WFontConfiguration
(
Sun
GraphicsEnvironment
environment
,
public
WFontConfiguration
(
Sun
FontManager
fm
,
boolean
preferLocaleFonts
,
boolean
preferPropFonts
)
{
super
(
environment
,
preferLocaleFonts
,
preferPropFonts
);
super
(
fm
,
preferLocaleFonts
,
preferPropFonts
);
useCompatibilityFallbacks
=
"windows-1252"
.
equals
(
encoding
);
}
...
...
src/windows/classes/sun/awt/windows/WPathGraphics.java
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
src/windows/classes/sun/awt/windows/WPrinterJob.java
浏览文件 @
e43dcf4d
...
...
@@ -98,6 +98,8 @@ import javax.print.attribute.standard.PageRanges;
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 @@ public class WPrinterJob extends RasterPrinterJob implements DisposerTarget {
initIDs
();
Win32
GraphicsEnvironment
.
registerJREFontsForPrinting
();
Win32
FontManager
.
registerJREFontsForPrinting
();
}
/* Constructors */
...
...
src/windows/classes/sun/awt/windows/WToolkit.java
浏览文件 @
e43dcf4d
...
...
@@ -60,6 +60,9 @@ import java.util.Properties;
import
java.util.logging.*
;
import
sun.font.FontManager
;
import
sun.font.FontManagerFactory
;
import
sun.font.SunFontManager
;
import
sun.misc.PerformanceLogger
;
public
class
WToolkit
extends
SunToolkit
implements
Runnable
{
...
...
@@ -572,8 +575,11 @@ public class WToolkit extends SunToolkit implements Runnable {
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
);
...
...
src/windows/native/sun/font/fontpath.c
浏览文件 @
e43dcf4d
...
...
@@ -28,12 +28,12 @@
#include <jni.h>
#include <jni_util.h>
#include <sun_
font_
FontManager.h>
#include <sun_
awt_Win32
FontManager.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 @@ JNIEXPORT jstring JNICALL Java_sun_font_FontManager_getFontPath(JNIEnv *env, jcl
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 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
* 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
)
{
...
...
src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp
浏览文件 @
e43dcf4d
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录