RE: Poor quality font rendering
OK, thanks to everyone who has contributed input to this thread - it's been most enlightening. So, in summary, it seems that the dark art of font rendering is complex and made more so by having to support numerous different operating systems, font engines, GPUs and monitors etc. I am sure JavaFX does a pretty good job already under most circumstances but I (personally) hope things improve further in the future and that the gap between JavaFX font rendering quality and that of native font rendering is narrowed. To this end, there seem to be two main improvements already under development namely: 1. Sub-pixel positioning ( https://javafx-jira.kenai.com/browse/RT-14187 ) 2. Kerning ( https://javafx-jira.kenai.com/browse/RT-7472 ) To assist me in my decision making and planning, would it be possible for someone to answer: 1. When will both (1) and (2) make it into a JDK8 development build? 2. Are there any other plans/techniques to improve font rendering on the horizon for JFX8 or later? As I said, my focus is Windows 7 and Windows 8 at the moment so even if you can only answer within these contexts it would be much appreciated! Thanks, -jct -Original Message- From: openjfx-dev-boun...@openjdk.java.net [mailto:openjfx-dev-boun...@openjdk.java.net] On Behalf Of Phil Race Sent: Friday, 23 August 2013 06:57 To: John Hendrikx Cc: openjfx-dev@openjdk.java.net Subject: Re: Poor quality font rendering On 8/22/2013 1:23 PM, John Hendrikx wrote: Oh.. I forgot to say this, but... Screenshots taken with LCD smoothing on are always gonna end up looking different on different monitors... if for example your monitor has slightly different spacing or a different order of the subpixels (or you rotated it), then the screenshot will look wierd. I prefer to keep LCD smoothing off as I make screenshots / videos regularly and I donot know on what system they'll be viewed on. So if one of shots has particularly bad colored fringes, it is likely you have a monitor that has a different configuration than mine. Yes. I have a BGR monitor here :-) 90 degrees rotation also invalidates the LCD but it doesn't look as bad as getting RGB-BGR wrong Devices like the i-whatsit and Android ones don't use LCD and I think that is one reason. OLED displays don't work well with it either. Windows is deficient in that it doesn't provide anyway to set LCD on a per-screen basis and it should. But most about every desktop/laptop is normal rotation LCD in RGB format. -phil.
Re: Poor quality font rendering
I'm interested in the answers to John T's questions for Linux as well, as there have been reports that font rendering there could use some improvement (though I don't have a Linux machine to test it and the reports don't back themselves up with screen shots or quantifiable data). http://stackoverflow.com/questions/18382969/can-the-rendering-of-the-javafx-2-8-font-be-improved (sorry to add another John to the thread to confuse it ;-) Regards, John Smith
hg: openjfx/8/graphics/rt: [DOC] RT-30986 - updated FXML documentation
Changeset: d128577d8f71 Author:Martin Sladecek martin.slade...@oracle.com Date: 2013-08-23 09:50 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/d128577d8f71 [DOC] RT-30986 - updated FXML documentation ! modules/fxml/src/main/docs/javafx/fxml/doc-files/introduction_to_fxml.html
hg: openjfx/8/graphics/rt: Fix for RT-32394: Rendering Artifacts with Groups and Transformations
Changeset: 5c5326c0aa6a Author:Lubomir Nerad lubomir.ne...@oracle.com Date: 2013-08-23 10:02 +0200 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/5c5326c0aa6a Fix for RT-32394: Rendering Artifacts with Groups and Transformations ! modules/graphics/src/main/java/javafx/scene/Node.java ! modules/graphics/src/test/java/javafx/scene/Parent_recomputeBounds_Test.java
hg: openjfx/2u/dev/rt: Fix for RT-32394: Rendering Artifacts with Groups and Transformations
Changeset: a8fcc0065eea Author:Lubomir Nerad lubomir.ne...@oracle.com Date: 2013-08-23 10:00 +0200 URL: http://hg.openjdk.java.net/openjfx/2u/dev/rt/rev/a8fcc0065eea Fix for RT-32394: Rendering Artifacts with Groups and Transformations ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/javafx/scene/Parent_recomputeBounds_Test.java
hg: openjfx/8/graphics/rt: RT-32286: Region, Circle, Ellipse, and ImageView should support occlusion culling for opaque paints
Changeset: e9f71053dd5e Author:rbair Date: 2013-08-23 09:42 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e9f71053dd5e RT-32286: Region, Circle, Ellipse, and ImageView should support occlusion culling for opaque paints Reviewed By: Jim Graham, Felipe ! .idea/vcs.xml + apps/toys/Hello/src/main/java/hello/HelloRectangle.java ! modules/graphics/src/main/java/com/sun/javafx/geom/transform/BaseTransform.java ! modules/graphics/src/main/java/com/sun/javafx/geom/transform/GeneralTransform3D.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/CacheFilter.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGCircle.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGEllipse.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGGroup.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGImageView.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGNode.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGRectangle.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGRegion.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGShape.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java ! modules/graphics/src/main/java/com/sun/prism/Image.java ! modules/graphics/src/main/java/com/sun/prism/paint/ImagePattern.java ! modules/graphics/src/main/java/javafx/scene/layout/Background.java ! modules/graphics/src/main/java/javafx/scene/layout/BackgroundImage.java ! modules/graphics/src/main/java/javafx/scene/layout/Region.java ! modules/graphics/src/main/java/javafx/scene/paint/ImagePattern.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/ContentBoundsTest.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/CullingTest.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/DirtyRegionClipTest.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/DirtyRegionTestBase.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/GridDirtyRegionTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGCircleTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGEllipseTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGImageViewTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGNodeTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGRectangleTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGShapeTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGTestBase.java - modules/graphics/src/test/java/com/sun/javafx/sg/prism/NodeTestUtils.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/OcclusionCullingTest.java + modules/graphics/src/test/java/com/sun/javafx/sg/prism/RenderRootTest.java - modules/graphics/src/test/java/com/sun/javafx/sg/prism/TestNGNode.java + modules/graphics/src/test/resources/com/sun/javafx/sg/prism/test-opaque.jpg + modules/graphics/src/test/resources/com/sun/javafx/sg/prism/test-opaque.png + modules/graphics/src/test/resources/com/sun/javafx/sg/prism/test-transparent.png
hg: openjfx/8/controls/rt: RT-32474: DatePicker: Japanese Chrono, can't set date before Meiji 6.
Changeset: 3903b419d30e Author:leifs Date: 2013-08-23 08:43 -0700 URL: http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/3903b419d30e RT-32474: DatePicker: Japanese Chrono, can't set date before Meiji 6. ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerContent.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerHijrahContent.java ! modules/controls/src/main/java/javafx/scene/control/DatePicker.java
RE: JDK 1.8 Build is passed and JavaFX build is failed (WAS: RE: No rule to make freetype.dll [WAS: Re: OpenJFX 1.8 build issues])
+ openjfx-dev@openjdk.java.net _ From: K, Dhevendran (MSDU) Sent: Friday, August 23, 2013 9:52 PM To: 'Erik Joelsson'; David Holmes; Anthony Petrov; build-dev Cc: Thomas, Binoy Samuel (MSDU); Jolapara, Vikram Dhirajlal (MSDU) Subject: JDK 1.8 Build is passed and JavaFX build is failed (WAS: RE: No rule to make freetype.dll [WAS: Re: OpenJFX 1.8 build issues]) Hi Anthony Erik After compiling fresh FREETYPE2 library , that problem is vanished !! Thanks a lot for your help Now, I am compiling JFX code. In order to work around the JDK 1.8 minimum build number required for JFX build, I commented the fail() in build.gradle task verifyJava() { doLast { if (javaVersion != jfxBuildJdkVersion) { fail(java version mismatch: ${javaVersion} must be ${jfxBuildJdkVersion}) } def buildNum = Integer.parseInt(javaBuildNumber) def minBuildNum = Integer.parseInt(jfxBuildJdkBuildnumMin) if (buildNum minBuildNum) { // fail(java build number ($buildNum) minimum build number ($minBuildNum)) -- This is commented } } } Now, I am facing the new issue as attached File: gradle.txt apps:experiments:3DViewer:assemble :apps:experiments:Modena:compileJava [ant:javac] C:\dheva\JavaFX_1_8\JavaFX_SRC\myfx8\rt\apps\experiments\Modena\src\main\java\modena\SamplePage.java:91: error: package javafx.scene.web does not exist [ant:javac] import javafx.scene.web.HTMLEditor; [ant:javac]^ [ant:javac] C:\dheva\JavaFX_1_8\JavaFX_SRC\myfx8\rt\apps\experiments\Modena\src\main\java\modena\SamplePage.java:468: error: cannot find symbol [ant:javac] new HTMLEditor() {{ [ant:javac] ^ [ant:javac] symbol: class HTMLEditor [ant:javac] location: class SamplePage [ant:javac] C:\dheva\JavaFX_1_8\JavaFX_SRC\myfx8\rt\apps\experiments\Modena\src\main\java\modena\SamplePage.java:474: error: cannot find symbol [ant:javac] withState(new HTMLEditor() {{ [ant:javac] ^ [ant:javac] symbol: class HTMLEditor [ant:javac] location: class SamplePage [ant:javac] Note: Some input files use or override a deprecated API. [ant:javac] Note: Recompile with -Xlint:deprecation for details. [ant:javac] Note: Some input files use unchecked or unsafe operations. [ant:javac] Note: Recompile with -Xlint:unchecked for details. [ant:javac] 3 errors :apps:experiments:Modena:compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':apps:experiments:Modena:compileJava'. Compile failed; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 35 mins 13.756 secs Thanks Regards Dhevendran K -Original Message- From: Erik Joelsson [mailto:erik.joels...@oracle.com] Sent: Friday, August 23, 2013 1:47 PM To: David Holmes Cc: Anthony Petrov; K, Dhevendran (MSDU); build-dev; Thomas, Binoy Samuel (MSDU); Jolapara, Vikram Dhirajlal (MSDU) Subject: Re: No rule to make freetype.dll [WAS: Re: OpenJFX 1.8 build issues] Hello Dhevendran, It would help if you could check what David is asking for. In the file: /cygdrive/c/r/build/windows-x86_64-normal-server-release/spec.gmk Check what the value of FREETYPE2_LIB_PATH is. /Erik On 2013-08-23 04:34, David Holmes wrote: What does spec.gmk have for: FREETYPE2_LIB_PATH ? David - PS. I wasn't on cc but did get attachments. On 23/08/2013 5:05 AM, Anthony Petrov wrote: [ BCC'ing openjfx-dev@ and CC'ing build-dev@ ] [ Dhevendran, please subscribe to build-dev@ before posting replies ] [ Erik, please see below ] Dhevendran: I'm moving this discussion to a more appropriate mailing list to resolve all JDK building problems. Now, I've never seen such an error before, and I can't find any open bugs about it. You may want to run `make clean make LOG=debug` to get a more comprehensive log. Please make sure you keep Erik in CC because the mailing list software strips all attachments, so only those listed in CC receive the files. Erik: I've CC'ed you and attached Dhevendran's logs so that you could receive them. Do you have any idea what might be causing this error? -- best regards, Anthony On 08/22/2013 06:56 PM, K, Dhevendran (MSDU) wrote: Hi Anthony Your suggestion solved that particular issue ( Size of the path is the issue ). Thanks a lot for you valuable help Now, I am facing new problem as shown in the following excerpt . I have attached the logs = /usr/bin/mkdir -p /cygdrive/c/r/build/windows-x86_64-normal-server-release/jdk/lib/cmm /usr/bin/cp -fP '/cygdrive/c/r/jdk/src/share/lib/cmm/lcms/sRGB.pf'
hg: openjfx/8/graphics/rt: RT-30923: Implement packing region cache
Changeset: cf2d7f03fbfb Author:Felipe Heidrich felipe.heidr...@oracle.com Date: 2013-08-23 08:28 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/cf2d7f03fbfb RT-30923: Implement packing region cache ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGRegion.java ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/RegionImageCache.java ! modules/graphics/src/main/java/com/sun/prism/impl/packrect/Level.java ! modules/graphics/src/main/java/com/sun/prism/impl/packrect/RectanglePacker.java
hg: openjfx/8/graphics/rt: RT-32511: Improve occlusion culling to include effects
Changeset: b100ceba6f44 Author:rbair Date: 2013-08-23 11:20 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/b100ceba6f44 RT-32511: Improve occlusion culling to include effects Reviewed By: snorthov ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGNode.java ! modules/graphics/src/main/java/com/sun/scenario/effect/BoxBlur.java ! modules/graphics/src/main/java/com/sun/scenario/effect/BoxShadow.java ! modules/graphics/src/main/java/com/sun/scenario/effect/GeneralShadow.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGNodeTest.java
hg: openjfx/8/graphics/rt: RT-32514: iOS apps no longer running after fix for RT-32409
Changeset: e85be932a66e Author:rbair Date: 2013-08-23 11:58 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/e85be932a66e RT-32514: iOS apps no longer running after fix for RT-32409 ! modules/graphics/src/main/java/com/sun/prism/es2/GLContext.java
API review for RT-21354: add parameterless default constructor
JIRA : https://javafx-jira.kenai.com/browse/RT-21354 Somehow this one got missed out. There is only a private parameterless default constructor which needs to be made public in RadioMenuItem. thanks, Paru.
hg: openjfx/8/controls/rt: RT-32419: Main issue was pre-calculation of hash code in style cache keys. Fixed leak introduced in RT-28966, changed CssStyleHelper to pass StyleMap everywhere instead of l
Changeset: 0956a0526889 Author:David Grievedavid.gri...@oracle.com Date: 2013-08-23 17:24 -0400 URL: http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/0956a0526889 RT-32419: Main issue was pre-calculation of hash code in style cache keys. Fixed leak introduced in RT-28966, changed CssStyleHelper to pass StyleMap everywhere instead of looking it up as needed, and made some other minor optimizations (like getting rid of Math.min/max/abs, instance of) ! modules/graphics/src/main/java/com/sun/javafx/css/BitSet.java ! modules/graphics/src/main/java/com/sun/javafx/css/ParsedValueImpl.java ! modules/graphics/src/main/java/com/sun/javafx/css/Size.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleCache.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleCacheEntry.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleConverterImpl.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleManager.java ! modules/graphics/src/main/java/com/sun/javafx/css/StyleMap.java ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java
Re: API review for RT-21354: add parameterless default constructor
+1 On Aug 23, 2013, at 1:43 PM, Paru Somashekar parvathi.somashe...@oracle.com wrote: JIRA : https://javafx-jira.kenai.com/browse/RT-21354 Somehow this one got missed out. There is only a private parameterless default constructor which needs to be made public in RadioMenuItem. thanks, Paru.
hg: openjfx/8/graphics/rt: Fix RT-32104: Severe drawing issues when changing displays with HiDPI
Changeset: f151ab8eb69b Author:flar james.gra...@oracle.com Date: 2013-08-23 16:17 -0700 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/f151ab8eb69b Fix RT-32104: Severe drawing issues when changing displays with HiDPI ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/PresentingPainter.java ! modules/graphics/src/main/java/com/sun/prism/Graphics.java ! modules/graphics/src/main/java/com/sun/prism/Presentable.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DGraphics.java ! modules/graphics/src/main/java/com/sun/prism/d3d/D3DSwapChain.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2Graphics.java ! modules/graphics/src/main/java/com/sun/prism/es2/ES2SwapChain.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DPresentable.java ! modules/graphics/src/main/java/com/sun/prism/j2d/PrismPrintGraphics.java ! modules/graphics/src/main/java/com/sun/prism/null3d/DummyGraphics.java ! modules/graphics/src/main/java/com/sun/prism/null3d/DummySwapChain.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWGraphics.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWPresentable.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/TestGraphics.java