Download: Plaster UI Demo (~12MB, requires DX10+)

At last I have finished integrating the Chromium Embedded Framework with my hobby engine. Well - I have at least integrated it well enough to put together this demo. The rendering itself is just a simple normal mapped cube as the intent is really just to put together a basic UI using HTML, Javascript and CSS in order to drive the demo.

On the bottom left are two slide out menus that let you change the diffuse and normal textures being used. These menus use YUI3 to drive the animation, pulling the javascript from the web and so you do need an active internet connection for the demo to work. After a little bit of trouble (and stupidity on my part) I got this animating as smoothly as it does in the actual Chrome browser (at least on my laptop), but I am very interested to hear about any performance troubles people notice with this.

In the upper right is a simple FPS counter that polls the app every once in a while to update itself. There are also a couple of links back to my website that will pop up some very plain new windows. In the future I could add some very basic navigation controls to these windows or possibly just redirect them to the system default browser.

In the upper left is a simple menu that lets you change the technique being used to render the cube. It should be relatively straight forward for someone to add a new technique to the HLSL file and then add a new entry to that list if they so desired - they just need to make sure the id of the list element matches the name of the technique.

For this demo I added some small extensions to the Javascript engine - just the functions for getting the framerate, changing textures and changing the rendering technique. This is really the most incomplete part of my integration right now as I am still experimenting with how I want it all to work.

As I said in my previous post, I did have to make a few modifications to CEF/Chromium in order to get it to work the way I needed it - so the next thing I will look at doing is cleaning up some shortcuts I took in that process and putting together some patches.

As always, if you encounter any issues with the demo, please let me know.