Chrome embedded framework Binding? Who has interest?

Well I currently want to do some UI stuff JAVAFx is not really capable of, so I searched for alternatives and found this one:

An older Awesomium-C api used by some libgdx project
Google Code Archive - Long-term storage for Google Code Project Hosting. or alternativvly Google Code Archive - Long-term storage for Google Code Project Hosting.
And the counterside done with JNA
https://github.com/eerock/libgdx/tree/master/extensions/awesomium/gdx-awesomium
wich probably needs to be adjusted to work with JME3 and with current awesomeium

So my idea would be to start and try to get the C files to build for linux/windows and mac, then proceed to create a simple drop in library for use within JME3.

What I am searching for is others who have interest in activly trying to help develop this. Especially for windows and Mac I have no dev capable system, so once I got the C build to work with gradle, I would need some assistance there to test it on those platforms.

Planned steps:
Get the original stuff to work
→ Linux
→ Windows
→ Mac
Update to current Awesomium
Update JNaWrappers

Create a nice library that contains all dependencies and works.

If I read it correctly, you want to make a fork of Chrome to work in Java, so that you can code the gui with HTML5?

I’d rather keep the two as separate programs, and make they talk with loopback sockets instead… but maybe Awesomium isn’t open source :frowning:

Is this the project page? http://www.awesomium.com/

I’m also using javascript html5 css3 for my ui but I render it through the JavaFx’s WebView that comes with a webkit implementation.

Yes that is the page, I currently do some things via the javafx pane as well, but it has some unfortunate implications.

Apart from that yes, I want to use HTML5 for the ui.
Also this will help other uses within jme, for example if they only want to display a register page, an embedded wiki, openid, ect.

Awesomium internally uses the normal chrome process model, so the pages are actually own processes, but I dont have to manage them.
It is closed source, but for that they deal with many of the problematic stuff web uis bring in, like interop, ect.

"Awesomium is free for any team making less than $100K revenue and free to use in any educational or non-commercial apps.

For all others, it’s just $2900 per application. No royalties, no monthly fees, no hidden costs. You only need to buy a license once you begin distribution."

Can you be more specific on what you want to do?

Reliable drag and drop, & axe awt/swing once JigSaw comes out.
Also the ability to roughly do a html layout and toss it to a designer with some layouting specification sounds quite nice.

WebDesigners are far cheaper and more experienced with ui problems than java developers.

(I know I cannot do good looking UI’s, only functional ones, so I want to offload that part)

tbh… being a web dev, I’d be thrilled to have an HTML5 CSS3 based UI for JME.
However the whole JNA shebang sounds wrong. Because it means everything is done on the CPU (am I right?).
Many things related to animation could be done entirely on the GPU. That’s what all the UI systems around lack, except for Lemur.

IMO you’d better spend time making some HTML/CSS3 adapter for JME, maybe based on Lemur, or not.

2 Likes

Also please note that a crash on Awesomium WILL crash your game, and good luck with fixing that.

Only the main Awesomium stuff, the rest is process isolated, like any chrome browser.
Also I already had enough training thanks to bullet and lwjgl, c is not witchery, just a bit annoying.

Reason for a full web instead of an adapter would be frameworks!, I could directly use stuff like graph librarys, map apis, openid, ect.

Also doing a css engine is not something done in an evening.

Rendering on cpu is exactly good, becuase it leaves the gpu for the 3d stuff free, and you usually have neough cores to not care. (actually quite many games, which i never noticed before reading into this, so I guess its fine performance wise)

What i still don’t get is: What are the downsides in using the fx browser rather than awesomium?
It’s true that you have to start the entire fx platform for just one component but it’s quite light…

drag and drop does not work reliable in the current jfx integration.
I already spend several hours trying to find the cause, but I cannot. It seems that sometimes the dragstarted event stuff is not properly executed for whatever reason.

But after getting my hands dirty the last few hours (and getting first working build results) , I noticed that Awesomium does NOT support 64 bit on windows, this is kind of a hard dealbreaker for me.

Ok, next one in the race is
https://bitbucket.org/chromiumembedded/java-cef

I see, from your previous post i thought that the reliable drag&drop problem you mentioned was related to other libraries.
Anyway from what i saw most web uis don’t use the native d&d but they simulate it with javascript click and release events.
That’s what i use here (in truth i wasn’t even aware that there was a drag event).

Well I have multiple inner windows, and want to use this for Inventory management, so I need dragproxys and similar logical stuff :frowning:

Anyway I managed to get the first one to actually build:

Heheh… complicated UIs are complicated. :slight_smile:

Hm yeah so far it seems that this one cannot do transparent backgrounds reliable … sigh
(Apart from a close to insane build process)