GlassScene: setSecurityContext()

2013-10-17 Thread Tobias Bley
Hi,

why do you introduced the security concept in GlassScene and GlassStage? 
setSecurityContext()

What is the goal?

The problem is the used class sun.misc.SharedSecrets is not available in the 
android class library. Altough I have added it to the robovm compat lib I’m 
getting a security error and are not able to start the app on iOS.

Tobi



hg: openjfx/8/graphics/rt: RT-33455: Exception in layout pass locks up Toolkit pulsing.

2013-10-17 Thread hang . vo
Changeset: 4b61c659d696
Author:art
Date:  2013-10-17 17:06 +0400
URL:   http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/4b61c659d696

RT-33455: Exception in layout pass locks up Toolkit pulsing.
Reviewed-by: alexz, kcr

! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java



Re: JAVAFX on ANDROID

2013-10-17 Thread Matthias Hänel
Hi,

I found the reason for the touch crashes on Android. It's a JNI threading error 
in the
current implementation. We have to enqueue the touch events into the javafx 
dispatch thread.

There is a workaround for this attached in the java source file at 
dispatchTouchEvent 
and dispatchKeyEvent. What is the best way to propose changes in the future?


regards
Matthias






Am 15.10.2013 um 13:50 schrieb Matthias Hänel hae...@ultramixer.com:

 Hey Tomas,
 
 
 I've seen a check-in for RT-32802. This seems to be your fix. There are a lot 
 of interface changes.
 Could you explain the changes a bit, so I can merge it by hand into my jfx678 
 code? Today, I merged
 from Stefans b111 JFX78 but it will take a while to get your changes through 
 this way ;)
 
 
 regards
 Matthias
 
 
 
 Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com:
 
 Hi Matthias,
 cool, I'm surprised you we're able to run it on emulator. I run on device 
 not on emulator for a long time. There wasn't  opengl extension 
 GL_EXT_texture_format_BGRA in emulator. But that could have changed 
 overtime.
 Regarding events: yes there seems to be a problem which I haven't 
 discovered. I've pushed multitouch support and broke touch events on dalvik. 
 I will fix that soon.
 In order to replace t2k there is freetype library for fonts and glyphs 
 access and harfbuzz for layouting available among system libraries.  
 Although google discourages to use them since they aren't part of public 
 api. It can bring all sorts of compatibility problems (harfbuzz 
 implementation has changed in recent android releases for example). Yes try 
 pango if you have time to spare and share results please.
 
 good luck
 -Tomas
 
 On 10/14/2013 01:45 PM, Matthias Hänel wrote:
 Hi Tomas,
 
 
 never mind, I found the problem over here in the simulator ;) I had to 
 activate the GPU support.
 
 So, now I had to BGRA image format for Android and now I get JFX up and 
 running without fonts.
 
 There are two things missing:
 1. fonts- here we probably need to get pango working for Android 
 right?
 2. touch events - I saw that you have got a special Android proxy for the 
 input stuff 
 Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative
 This seems to crash for some reason. any idea? It's not that complicated 
 but it is producing a stack trace.
 
 After fixing the touch events Brickbreaker with Niklas' no-font-patch 
 should work. I'd pleased to test this.
 
 
 kind regards
 Matthias
 
 
 
 Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com:
 
 Hi Tomas,
 
 
 since Tobi told me he had a similiar problem in the first place with the 
 iOS port and he managed to run JFX8 without font.
 We deactivated fonts. There is some code to deactivate and after that it 
 looks like it is starting the JFX-Application.
 
 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin
 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from 
 glass.
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or 
 programming error occurred. Framebuffer object status is invalid. (FBO - 
 823)
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object 
 with TexID 1)
 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.659: WARN/System.err(1546): 
 java.lang.reflect.InvocationTargetException
 10-14 06:06:49.669: WARN/System.err(1546): at 
 java.lang.reflect.Method.invokeNative(Native Method)
 10-14 06:06:49.669: WARN/System.err(1546): at 
 java.lang.reflect.Method.invoke(Method.java:525)
 10-14 06:06:49.709: DEBUG/dalvikvm(1546): GC_FOR_ALLOC freed 330K, 10% 
 free 4129K/4564K, paused 32ms, total 32ms
 10-14 06:06:49.709: WARN/System.err(1546): at 
 com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:253)
 10-14 06:06:49.709: WARN/System.err(1546): at 
 com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227)
 10-14 06:06:49.709: WARN/System.err(1546): at 
 com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:485)
 10-14 06:06:49.709: 

Re: JAVAFX on ANDROID

2013-10-17 Thread Matthias Hänel
the mailerdemon striped my java file ;)

The fixed code snippet from FXActivity.java is:

} else {
//single touch
actions[0] = actionCode;
ids[0] = event.getPointerId(0);
touchXs[0] = (int)event.getX();
touchYs[0] = (int)event.getY();
}
//System.out.println(Android original event =  + event);
Platform.runLater(new Runnable()
{
@Override
public void run()
{
onMultiTouchEventNative(pcount, actions, ids, touchXs, 
touchYs);
}
});
return true;
}

@Override
public boolean dispatchKeyEvent(final KeyEvent event) {
Platform.runLater(new Runnable() {
@Override
public void run() {
onKeyEventNative(event.getAction(), event.getKeyCode(), 
event.getCharacters());
}
});
return true;
}
 

regards 
Matthias



Am 17.10.2013 um 17:01 schrieb Matthias Hänel hae...@ultramixer.com:

 Hi,
 
 I found the reason for the touch crashes on Android. It's a JNI threading 
 error in the
 current implementation. We have to enqueue the touch events into the javafx 
 dispatch thread.
 
 There is a workaround for this attached in the java source file at 
 dispatchTouchEvent 
 and dispatchKeyEvent. What is the best way to propose changes in the future?
 
 
 regards
 Matthias
 
 
 
 
 
 
 Am 15.10.2013 um 13:50 schrieb Matthias Hänel hae...@ultramixer.com:
 
 Hey Tomas,
 
 
 I've seen a check-in for RT-32802. This seems to be your fix. There are a 
 lot of interface changes.
 Could you explain the changes a bit, so I can merge it by hand into my 
 jfx678 code? Today, I merged
 from Stefans b111 JFX78 but it will take a while to get your changes through 
 this way ;)
 
 
 regards
 Matthias
 
 
 
 Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com:
 
 Hi Matthias,
 cool, I'm surprised you we're able to run it on emulator. I run on device 
 not on emulator for a long time. There wasn't  opengl extension 
 GL_EXT_texture_format_BGRA in emulator. But that could have changed 
 overtime.
 Regarding events: yes there seems to be a problem which I haven't 
 discovered. I've pushed multitouch support and broke touch events on 
 dalvik. I will fix that soon.
 In order to replace t2k there is freetype library for fonts and glyphs 
 access and harfbuzz for layouting available among system libraries.  
 Although google discourages to use them since they aren't part of public 
 api. It can bring all sorts of compatibility problems (harfbuzz 
 implementation has changed in recent android releases for example). Yes try 
 pango if you have time to spare and share results please.
 
 good luck
 -Tomas
 
 On 10/14/2013 01:45 PM, Matthias Hänel wrote:
 Hi Tomas,
 
 
 never mind, I found the problem over here in the simulator ;) I had to 
 activate the GPU support.
 
 So, now I had to BGRA image format for Android and now I get JFX up and 
 running without fonts.
 
 There are two things missing:
 1. fonts- here we probably need to get pango working for Android 
 right?
 2. touch events - I saw that you have got a special Android proxy for the 
 input stuff 
 Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative
 This seems to crash for some reason. any idea? It's not that complicated 
 but it is producing a stack trace.
 
 After fixing the touch events Brickbreaker with Niklas' no-font-patch 
 should work. I'd pleased to test this.
 
 
 kind regards
 Matthias
 
 
 
 Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com:
 
 Hi Tomas,
 
 
 since Tobi told me he had a similiar problem in the first place with the 
 iOS port and he managed to run JFX8 without font.
 We deactivated fonts. There is some code to deactivate and after that it 
 looks like it is starting the JFX-Application.
 
 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin
 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() 
 from glass.
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or 
 programming error occurred. Framebuffer object status is invalid. (FBO - 
 823)
 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object 
 with TexID 1)
 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API
 10-14 

Re: GlassScene: setSecurityContext()

2013-10-17 Thread Stephen F Northover
Comment out for now and get working code.  On iOS at least, all apps 
come from the store.


Steve

On 2013-10-17 11:33 AM, Danno Ferrin wrote:

Like I said in earlier ports, the language features of the back port aren't
as difficult as the API support.  I am guessing the security context has
something to do with the u45 security patches, so I wouldn't expect a lot
of detail until the next CPU release.

Is this something we can simply comment out?  This wouldn't be the first
time compatibility was achieved by removal of an API (see date picker).


On Thu, Oct 17, 2013 at 2:41 AM, Matthias Hänel hae...@ultramixer.comwrote:


Hey Tobi,


yes, I faced the same on the Android port. After uncommenting the new
security stuff in GlassStage and GlassScene
it's working again. This is just a preliminary solution.

@Oracle is there a legal way that we can use parts of the jdk8 rt.jar?


regards
Matthias


Am 17.10.2013 um 10:17 schrieb Tobias Bley t...@ultramixer.com:


Hi,

why do you introduced the security concept in GlassScene and GlassStage?

setSecurityContext()

What is the goal?

The problem is the used class sun.misc.SharedSecrets is not available in

the android class library. Altough I have added it to the robovm compat lib
I’m getting a security error and are not able to start the app on iOS.

Tobi







hg: openjfx/8/graphics/rt: 2 new changesets

2013-10-17 Thread hang . vo
Changeset: 8cf084842bed
Author:jgiles
Date:  2013-10-17 11:20 +1300
URL:   http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/8cf084842bed

RT-33603: CheckBoxTreeItem requires two clicks to select

! modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeCell.java

Changeset: 618875201b85
Author:jgiles
Date:  2013-10-17 11:28 +1300
URL:   http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/618875201b85

RT-33602: TableRow item property is being updated out of order

! 
modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableRowSkinBase.java



V-up texture coordinate support

2013-10-17 Thread Chien Yang

Hi all,

 Java images are defined such that (0, 0) references the top left 
most pixel of the image. In JavaFX, the texture coordinate system for 3D 
objects is defined with its U axis increasing from left to right and the 
V axis increasing from top to bottom. Hence a texture coordinate of (0, 
0) references pixel (0, 0), which is the top left corner of the texture, 
and a texture coordinate of (1, 1) references the bottom right corner of 
the texture. This system matches the layout of the image, which is 
stored such that the top-most row of pixels ends up in memory in row 0. 
It also matches with the default 3D coordinate system used in JavaFX 
where the X axis increases from left to right and the Y axis increases 
from top to bottom.


 We understand that this V-down coordinate system maybe confusing 
or hard to work with for some 3D content developers when using models 
that are defined with Y-up. We could add a V-up option (as a boolean 
property of Shape3D). If set, we would flip the texture coordinates when 
rendering, such that:  V' = 1 - V.


However it is very late in this release to consider any more 
changes, so our plan is to add this option in a post FX 8 release if it 
turns out to be needed. Please let us know right away if there is a 
compelling need for V-up support in the FX 8 release.


- Kevin and Chien


[REVIEW REQUEST] RT-33442: isSelected in TableViewSelectionModel is called too many times

2013-10-17 Thread Jonathan Giles
Hi all,

I know we're very late in the release, but I'm proposing the addition of
one new method to the TableSelectionModel abstract class, which will
have implementations provided by TableView and TreeTableView. The method
added into TableSelectionModel will be a no-op method by default (to
hopefully not break anyone), and I propose it should have the following
method signature:

public void selectRange(int minRow, int minColumn, int maxRow, int
maxColumn)

This method will be used internally, and by any interested end user, to
signal to the TableView/TreeTableView control to select all cells within
the range of (minRow, minColumn) - (maxRow, maxColumn), inclusive.

The reason why I want to introduce this is summed up well in RT-33442
and RT-33619. In short, given a big enough table, a shift+click can
essentially cause the TableView to hang whilst it selects all the cells
within the range. This is basically due to all the selection events
overloading the system. The benefit of introducing this method is that I
can make the selection essentially an atomic operation, which will
result in drastically less event noise.

To better understand what I mean, there is a patch attached to RT-33442
(rt33442_2.patch). This patch introduces this change, as well as a
number of other implementation changes. In doing so the selection
performance in this use case goes from crashing my test application
(presumably it would complete, but I give up after five minutes of
waiting) to taking under 1 second.

There is still more testing to be done, but after applying this patch
all controls unit tests continue to pass. Also, as noted in the jira
issue, this patch is incomplete as I have not ported the patch to also
cover TreeTableView.

So, after all that, should we add selectRange(minRow, minColumn, maxRow,
maxColumn) to JavaFX 8.0? If so, does anyone have an improved method
signature they can recommend? I will of course be writing unit tests to
cover this method and testing to ensure there are no regressions as best
I can.

Thanks,
-- Jonathan


hg: openjfx/8/graphics/rt: RT-29922 Ensemble8: remove builders (partial)

2013-10-17 Thread hang . vo
Changeset: ce4e498fd133
Author:dmasada
Date:  2013-10-17 20:52 -0700
URL:   http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/ce4e498fd133

RT-29922 Ensemble8: remove builders (partial)

! apps/samples/Ensemble8/src/generated/java/ensemble/generated/Samples.java
! 
apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java
! 
apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java
! 
apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java
! 
apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java
! 
apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java



hg: openjfx/8/graphics/rt: RT-33563 Ensemble8: DatePicker sample, add '-' in locales menu items

2013-10-17 Thread hang . vo
Changeset: 2907bf0eeec4
Author:dmasada
Date:  2013-10-17 22:02 -0700
URL:   http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/2907bf0eeec4

RT-33563 Ensemble8: DatePicker sample, add '-' in locales menu items

! 
apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java