dojox.gfx3d alpha2 released

dojo

This release targets to the final review of GSoC, more test cases are developed to fix the potential bugs in alpha1 release. The following bugs are fixed:

  • The matrix operations in OpenGL-like coordination system are verified, small bugs fixed.
  • Fix the view bug in BSP
  • Fix typo in toStdFill.

Improvement includes:

  • Build dojox.gfx3d against the latest dojo TRUNK, r10315
  • Move lighting.js to the gfx3d namespace, using dojox.gfx3d.lighting now.
  • Implement a new draw governor, named as Drawer(the name keeps reminding me IKEA or HomeDepot, any better suggestion?)
  • Refactor the Scene to take the advantage of the new redraw policy

The Drawer

When an object is invalidated, moved to a new position or transformed by user script, the viewport would add this object to its todo list, and ask it to render itself in the next render function call. Since the viewport has no idea whether this change would cause the render order obsolete, the conservative drawer would assume so, and ask all the objects in the viewport to redraw themselves. On the other hand, in most chart application, the Z-order never change, so chart would redraw the modified objects. It makes a difference, according to the test case test_rotate.html, the conservative drawer takes ~30% CPU time, while the chart drawer takes ~22% CPU time. It is worthy notifying that the drawer candidates of Viewport and Scene are open for other optimization.

Here is the snapshot of alpha2.