I noticed a user rurbino checked in some code under awesomium and also included the libraries. To do some better book keeping as well as keep things consistent. We should move this to a third party lib. Moreover, Awesomium 1.5 is now out under a free-to-use pay to license. I’ll probably be trying to fold this into panda in a clean manner in the following days.
Oh hello hello. You must the Red I’ve heard so much about from Zac. Yeah I’m thinking about making Awesomium available to the community at large which means getting it rolled into the makepanda system and making part of third-party packages.
Rather than having a dedicated folder. I’m thinking about putting this one under grutil where movieTexture currently is as really this is just a dynamic texture with a mouse and keyboard handler.
I should have checked WINTOOLS I suppose. I thought you were someone from outside of VR
PS I might be emailing now that I know you are in VR.
As it happens, I’m trying to get berkeliumworking with panda.
It’s similar to awesomium, except it’s open source, has a simpler interface and works with linux (awesomium for linux isn’t released yet, and if it ever is, it will be closed-license)
I’ve never done any work in panda before, and don’t know much c++ so its going a little slow, but I’ve got it compiling, and interrogate appears to work, though I havn’t found the python output yet, so maybe things aren’t quite working yet.
fynn, why don’t you create a thread in the “new features in development” forum. I’m very interested in this and I (and others) may be able to help you. I wanted to use awesomium when it came out until I learned about the LGPL license, then it even went commercial. Berkelium on the other hand is BSD. I hadn’t heard about it until now.
Now we still need communication the other way around, from the host program to the script, and it seems you can do that with this:
If someone can integrate it, then yes.
… I’m still gonna be trying to do this, my c++ knowledge is low though and chromium is a pain in the Hum to build… so yeah…
Oh, well, integrating berkelium was easy. Here’s box.egg textured with slashdot:
I’ll commit this to the Panda 2.0 branch shortly.
There’s just something I don’t like, it spawns another process (apparently all the chromium embedding libraries do the same). I don’t like this at all, it means if the user terminates the process your application gets crippled. I thought these libraries embedded webkit/webcore directly I’ll see if I can add some error handling to berkelium to at least be aware of this termination.
Wow! This is amazing! I eagerly await more information on this, and, about the new processes… berkelium embed’s Chromium, which is google’s modification to webkit/webcore… and they wanted all of the browser’s tab’s (different ‘renderers’) to be seperate from eachother incase one crashed, you have all the other tabs still. so that is the reason for the new-process thing I think…
Anywhom, amazing work, I eagerly await to see how you did it
Yeah, I understand how chromium works having worked with the source myself for a time, but it’s overkill if you just want an html renderer. Ideally you would just embed webkit/webcore and everything would run on a process (I thought awesomium and berkelium were this). Imagine that you use berkelium for your gui and an user sees berkelium.exe in the task manager and shuts it down. Right now what happens is that your gui elements turn black. Individual processes should be isolated and the only reason something should fail is due to hardware failure or exhaustion of a resource. Letting your users (or your users’ programs like antivirus) turn parts of your program off in realtime without any way to handle it is a potential problem.
Not to mention that since you are using a full build of chromium your binaries will be huge (30 MB extra) whereas proper webkit embedding would be much, much smaller. You are also using more ram than you should. You don’t need the sandboxing mechanism if you are just drawing some HTML that you yourself produce, the code is controlled, nobody is gonna exploit it.
I would like to see if we can turn berkelium.exe into a dll and have it run in the same process. Anyone up for that? I remember from building chromium that it could be built without sandboxing (single process) -the linux version at the start didn’t have sandboxing so it was mandatory- so it’s mostly a matter of rebuilding and adding the entry point.
I can see how this would be bad, it’d be confusing if your game’s gui dissapeared…
Now on the other side of things, what if someone wanted to make a 3d web browser (sort of what I had in mind), it may need some of that security… question is, is there any way to get the security of the different processes, while still being able to detect if it dies to “restart your gui” per say?
Same comment as above, though I can see where you’re coming from as far as the 30MB comment… that would be a problem, however, in theory they could ship only once with the panda runtime and then they only have to download it once, yeah, or are you saying for c++ panda3d projects?
amen to anyone who gets this working, either way if I can display web pages in panda3d with or without sandboxing, I will praise the person that get’s it all to work
That isn’t an alternative to Berkelium/awesomium (I bet the css/html support is pretty limited). But it is an alternative to CEGUI or PandaGUI. librocket was supposed to be a better GUI system than CEGUI but it was commercial so it’s pretty good news.
Of course, if you were planning to use berkelium/awesomium merely for a gui and you didn’t need to show websites then yes librocket blows them out of the water.