Re: Build Errors on Windows 8.1 / VS2012 Pro / JDK 1.8.0-b132 [was: Build Errors on Windows 8.1 / VS2010 Pro / JDK 1.8.0-b132]
On 3/8/2014 1:04 AM, Kevin Rushforth wrote: Hi Kay, It looks like you are using VS2012 not 2010. We build JavaFX with VS 2010, and have some issues with 2012. However, we will need to resolve them at some point. Maybe someone else on the list has had luck building with VS 2012? I was able to build FX with VS 2012 some time ago. The changes were mostly cosmetic (caused by different Visual Studio and Platform SDK directory layouts), except static C++ runtime linkage. And, of course, FX should be aligned with JDK, which is shipped with VS 2010 runtime (will it be changed in JDK9?), otherwise FX will have to ship with its own runtime libraries. Thanks, Artem -- Kevin Kay McCormick wrote: Here is what I see as the relevant portions of the build log. This is beyond my ability to fix easily at this point. I would attach the entire compile log but I compiled with --debug and its 4mb. Let me know if I should provide more information, file a bug, or direct my problem to another forum. Kay 12:35:16.275 [INFO] [org.gradle.process.internal.DefaultExecHandle] Successfully started process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/amd64/link.exe'' 12:35:16.329 [QUIET] [system.out] libcpmt.lib(xthrow.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in directwrite.obj 12:35:16.332 [QUIET] [system.out] libcpmt.lib(syserror.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in directwrite.obj 12:35:16.336 [QUIET] [system.out]Creating library C:\Users\kay\Documents\current\openjfx\rt\modules\graphics\build\libs\font\win\javafx_font.lib and object C:\Users\kay\Documents\current\openjfx\rt\modules\graphics\build\libs\font\win\javafx_font.exp 12:35:16.362 [QUIET] [system.out] C:\Users\kay\Documents\current\openjfx\rt\modules\graphics\build\libs\font\win\javafx_font.dll : fatal error LNK1319: 2 mismatches detected 12:35:16.368 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED 12:35:16.368 [INFO] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/amd64/link.exe'' finished with exit value 1319 (state: FAILED) 12:35:16.368 [DEBUG] [org.gradle.logging.internal.DefaultLoggingConfigurer] Finished configuring with level: DEBUG, configurers: [org.gradle.logging.internal.OutputEventRenderer@1593948d, org.gradle.logging.internal.logback.LogbackLoggingConfigurer@1b604f19, org.gradle.logging.internal.JavaUtilLoggingConfigurer@7823a2f9] 12:35:16.369 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':graphics:linkWinFont' 12:35:16.369 [LIFECYCLE] [org.gradle.TaskExecutionLogger] :graphics:linkWinFont FAILED 12:35:16.369 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :graphics:linkWinFont (Thread[main,5,main]) completed. Took 0.104 secs. 12:35:16.369 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 3 mins 14.44 secs, idle: 0.017 secs 12:35:16.390 [LIFECYCLE] [org.gradle.BuildResultLogger] 12:35:16.390 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED 12:35:16.390 [LIFECYCLE] [org.gradle.BuildResultLogger] 12:35:16.390 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 3 mins 29.213 secs
hg: openjfx/8u-dev/rt: 11 new changesets
Changeset: 81208afdb29a Author:hudson Date: 2014-03-05 08:00 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/81208afdb29a Added tag 8u20-b04 for changeset 4742b5a6eb9b ! .hgtags Changeset: 39856b5ce3f7 Author:kcr Date: 2014-03-07 13:16 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/39856b5ce3f7 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8u/master/jfx/rt Changeset: 77d9f9491a0e Author:kcr Date: 2014-03-07 16:10 -0800 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/77d9f9491a0e Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8u/master/jfx/rt - apps/experiments/3DViewer/.idea/.name - apps/experiments/3DViewer/.idea/compiler.xml - apps/experiments/3DViewer/.idea/copyright/profiles_settings.xml - apps/experiments/3DViewer/.idea/encodings.xml - apps/experiments/3DViewer/.idea/misc.xml - apps/experiments/3DViewer/.idea/modules.xml - apps/experiments/3DViewer/.idea/runConfigurations/3DViewer.xml - apps/experiments/3DViewer/.idea/scopes/scope_settings.xml - apps/experiments/3DViewer/.idea/vcs.xml - apps/experiments/3DViewer/3DViewer.iml - apps/experiments/3DViewer/build.gradle - apps/experiments/3DViewer/build.xml - apps/experiments/3DViewer/manifest.mf - apps/experiments/3DViewer/nbproject/build-impl.xml - apps/experiments/3DViewer/nbproject/genfiles.properties - apps/experiments/3DViewer/nbproject/project.properties - apps/experiments/3DViewer/nbproject/project.xml - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/exporters/fxml/FXMLExporter.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/exporters/javasource/JavaSourceExporter.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/height2normal/Height2NormalApp.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/height2normal/Height2NormalConverter.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/Importer.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/Importer3D.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/ImporterFinder.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/Optimizer.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/SmoothingGroups.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/Validator.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/dae/DaeImporter.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxAseParser.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxAseTokenizer.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxData.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxLoader.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Frame.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Joint.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Loader.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MAttribute.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MConnection.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MEnv.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MNode.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MNodeType.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MObject.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MPath.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MayaAnimationCurveInterpolator.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MayaGroup.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MayaImporter.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Xform.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/parser/MParser.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MArrayType.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MAttributeAliasType.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MBoolType.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MCharacterMappingType.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MComponentListType.java - apps/experiments/3DViewer/src/main/java/com/javafx/experiments/im
Re: Poor font rendering..
Thank you Rob, DirectWrite is the engine JavaFX uses to produces glyph masks (white on black), therefore JavaFX text should resemble that of DirectWrite (it is not exactly the same, as JavaFX does its own color blending and gamma correction). We decided to use DirectWrite for JavaFX because it is the most modern native technology on Windows that we can use. In particular, we were interested on sub pixel positioned text. GDI, for example, all glyph positioning are expressed as integer, and glyphs are (usually) aggressively hinted. Interesting FIreFox had all the same trouble when they switched from GDI to DirectWrite. Please read https://blog.mozilla.org/nattokirai/2011/08/11/directwrite-text-rendering-in-firefox-6/ JavaFX always uses DirectWrite natural mode rendering. We too can provided switches for GDI Classic rendering mode, cleartype level, enhanced contrast, gamma, etc. It is all defined here http://msdn.microsoft.com/en-us/library/windows/desktop/dd371285(v=vs.85).aspx Maybe that would help ? Notes: SWT uses GDI to render text (I know, I implemented it). JavaFX with -Djavafx.text=t2k uses GDI to render LCD text, SWT and JavaFX with -Djavafx.text=t2k are not same, but similar, likely again because JavaFX does its own color blending and gamma correction. Felipe On Mar 10, 2014, at 10:06 AM, Robert Fisher wrote: > Hi Felipe, > > I've added the results from the DirectWrite 'Hello World' sample to the image: > > http://i.imgur.com/CGyckge.png > > Is this supposed to be the benchmark for how black text should look? In my > opinion the text in Chrome / Firefox / Eclipse is a lot clearer and sharper > when viewed at 100%. > > Cheers, > Rob > >
AW: Poor font rendering..
Hi Felipe, I've added the results from the DirectWrite 'Hello World' sample to the image: http://i.imgur.com/CGyckge.png Is this supposed to be the benchmark for how black text should look? In my opinion the text in Chrome / Firefox / Eclipse is a lot clearer and sharper when viewed at 100%. Cheers, Rob
Re: Building and using a debug build of openjfx as the default JavaFX for development
Thanks John. See also: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE There are several tricky issues around building, running and debugging OpenJFX from within an IDE. The most important thing is to run the code in the IDE rather than jfxrt.jar and the shared libraries that come with Java 8. All of this is described in the link. Steve On 2014-03-09 5:41 PM, John Smith wrote: The easiest thing to do to debug JavaFX is to use a prebuilt JDK 8+ and attach the sources from the JDK to your IDE. Then you can set break-points in the JavaFX source and debug it (i.e. you don't need to checkout and build openjfx at all). This works fine if all you want to do is step through the JavaFX source in the context of debugging your application (I think from your question this is actually what you want). For instructions on how to do this with Intellij Idea, see http://stackoverflow.com/questions/13407017/javafx-source-code-not-showing-in-intellij-idea. I think something like e(fx)clipse will do this step for you automatically (not sure about NetBeans). There is really little difference between the openjfx code and the source shipped with JDK 8. When you download JDK 8 (from https://jdk8.java.net/download.html) you are receiving a pre-built tagged snapshot of software built almost entirely from the openjdk/openjfx codebase. Of course, if you are actually developing and modifying the openjfx source, then the above won't work because your modified openjfx source would get out of sync with the binary JDK8 code. In this case, you would need to check-out the openjfx source, make any modifications you want, build it and then when you run your application, ensure that you run it against your custom openjfx build and have the modified source attached to your application's IDE project (similar to the instructions in the stackoverflow question I linked). JavaFX has both native and Java components. Debugging through the native components as well as the Java components is a more complex task. Perhaps there is more information on debugging openjfx on the openjfx wiki: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX But the wiki is currently offline, so I can't check it at the moment. John -Original Message- From: openjfx-dev [mailto:openjfx-dev-boun...@openjdk.java.net] On Behalf Of Kay McCormick Sent: Friday, March 07, 2014 10:15 PM To: openjfx-dev@openjdk.java.net Subject: Building and using a debug build of openjfx as the default JavaFX for development Hi everyone, I've successfully built openjfx. My overall goal is to be able to step through the openjfx code. I have the Oracle JDK installed - do I need to use OpenJDK instead? How would I go about making sure the build produced has debug information and using it for javafx application development. I'm trying to make my way through this process but I don't have all the pieces put together yet, and I'd appreciate any tips that can be offered. Thanks! Kay
Re: Poor font rendering..
Thank you Rob, It would be interesting to test against a DirectWrite app. I’m not sure if you have VS, but if you do it should be simple to modify the Simple Text tab in the DirectWrite Hello World Sample to use the same font and text: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368048(v=vs.85).aspx I have attached your screenshot to https://javafx-jira.kenai.com/browse/RT-36146 for now so it doesn’t get lost. Regards Felipe On Mar 7, 2014, at 1:41 AM, Robert Fisher wrote: > Hi Felipe, Hi Phil, > > Thanks for the tips. Phil, your program yielded the following output: > > Text-specific antialiasing enable key : LCD HRGB antialiasing text mode > Text-specific LCD contrast key : 120 > > I tried all of the 5 settings that Felix mentioned. Here are my results for > the default font (Segoe UI 9pt, black): > > http://i.imgur.com/45FewcL.png > > The difference in quality between the JavaFX images and the rest is too great > to be chalked up to personal preferences. Whether it's the fault of JavaFX, > or the native rendering mechanism being used, or my own configuration is > another question. > > Cheers, > Rob > >