RenderingPanel - thothbot/parallax GitHub Wiki
This is the basic widget which manages WebGLRenderer and Canvas3d.
The constructor is very simple
RenderingPanel renderingPanel = new RenderingPanel();
Then you should set the widget to the parent widget, root-element or page div-element.
Next example shows how to set the widget to the parent widget. In this example Parent widget should implement RequiresResize
interface
RenderingPanel renderingPanel = new RenderingPanel();
examplePanel.setWidget(renderingPanel);
In the next example widget is used in the page root-element. RootLayoutPanel
implements RequiresResize
RenderingPanel renderingPanel = new RenderingPanel();
RootLayoutPanel.get().add(renderingPanel);
If you want to use widget in the page div-element you should do the following:
final RenderingPanel renderingPanel = new RenderingPanel();
// Puts widget there <div id="animation"></div> in the .html page
RootPanel.get("animation").add(renderingPanel);
// Handle page resize
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent event)
{
renderingPanel.onResize();
}
});
// But it is better to use scheduler
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent event)
{
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
@Override
public void execute()
{
renderingPanel.onResize();
}
});
}
});
RenderingPanel signals few events
Signals two times:
- When scene is attached to the
RenderingPanel
by callingrenderingPanel.setAnimatedScene()
- Before rendering the first frame
public class MyClass implements SceneLoadingHandler
{
public MyClass()
{
RenderingPanel renderingPanel = new RenderingPanel();
renderingPanel.addSceneLoadingHandler(this);
}
@Override
public void onSceneLoading(SceneLoadingEvent event)
{
if(event.isLoaded())
{
/* code when scene is loaded */
}
else
{
/* code when scene is attached to the RenderingPanel */
}
}
}
Signals when the animation is set to the RenderingPanel and before rendering the first frame.
public class MyClass implements AnimationReadyHandler
{
public MyClass()
{
RenderingPanel renderingPanel = new RenderingPanel();
renderingPanel.addAnimationReadyHandler(this);
}
@Override
public void onAnimationReady(AnimationReadyEvent event)
{
/* code */
}
}
Signals when browser has problems with WebGL.
public class MyClass implements Context3dErrorHandler
{
public MyClass()
{
RenderingPanel renderingPanel = new RenderingPanel();
renderingPanel.addCanvas3dErrorHandler(this);
}
@Override
public void onContextError(Context3dErrorEvent event)
{
/* code */
}
}