BGE: Some as of yet unmerged work I did in the Swiss branch. These changes include:
  * Cleaning up the conversion code to avoid a per-face material conversion. Materials are now stored in buckets and only converted if a new material is found. This replaces some of Campbell's earlier work on the subject. His work wasn't as thorough, but it was much safer for a release.
  * Shaders are only compiled for LibLoaded materials once. Before they could be compiled twice, which could really slow things down.
  * Refactoring the rasterizer code to use a strategy design pattern to handle different geometry rendering methods such as immediate mode, vertex arrays and vertex buffer objects. VBOs are added, but they will be disabled in a following commit since they are still slower than vertex arrays with display lists. However, VBOs are still useful for mobile, so it's good to keep them around.
  * Better multi-uv support. The BGE should now be able to handle more than two UV layers, which should help it better match the viewport.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53145 954f8c5b-7b00-dc11-b283-0030488c597c
BGE: Removing the VBO raster_storage option from the UI.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53146 954f8c5b-7b00-dc11-b283-0030488c597c
fix [#33606] Adding the Decimate modifier will crash Blender

own regression since 2.65 release.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53147 954f8c5b-7b00-dc11-b283-0030488c597c
yet another fix-for-fix, missing NULL check in id_us_ensure_real()


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53148 954f8c5b-7b00-dc11-b283-0030488c597c
SVN maintenance.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53149 954f8c5b-7b00-dc11-b283-0030488c597c
fix for typo in r53145


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53150 954f8c5b-7b00-dc11-b283-0030488c597c
code cleanup: warnings


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53152 954f8c5b-7b00-dc11-b283-0030488c597c
improve info view property output for properties.
- Include RNA properties when checking for matches.
- Don't include the context's property store (these are normally set by the UI code and not accessible by a script author)

Note: added CTX_data_dir_get_ex() which has options for returning different members from the context.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53154 954f8c5b-7b00-dc11-b283-0030488c597c
Fixing some messed up comments from r53146 and changing a C++ style comment in C code to a C style comment (from r53152).

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53155 954f8c5b-7b00-dc11-b283-0030488c597c
generalize formatting code so different formatters can be registered and each has their own source file,
Since we will likely have OSL formatting added soon.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53156 954f8c5b-7b00-dc11-b283-0030488c597c
code cleanup: remove unneeded include's and rename some static functions in text_format_py.c


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53157 954f8c5b-7b00-dc11-b283-0030488c597c
include cleanup


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53158 954f8c5b-7b00-dc11-b283-0030488c597c
code cleanup: use interp_v3_v3v3()


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53159 954f8c5b-7b00-dc11-b283-0030488c597c
fix error in recent addition - reporting property changes, setting None would crash.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53160 954f8c5b-7b00-dc11-b283-0030488c597c
dissallow access to the context while addons import and register.
Since the window manager is needed for keymaps this is kept as an exception.

some addons will need updating, but in every case I've seen addons should not be accessing the context while registering.
(bad stuff! - declaring the scene as a global variable - which crashes when the users loads a new file, manipulating the active object or scene... tsk tsk)


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53161 954f8c5b-7b00-dc11-b283-0030488c597c
Multirs baker: support for threaded baking

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53162 954f8c5b-7b00-dc11-b283-0030488c597c
bmesh optimization: use BM_face_create() rather then BM_face_create_ngon() in BM_mesh_copy(), gives ~30% overall speedup in my tests.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53163 954f8c5b-7b00-dc11-b283-0030488c597c
use BM_face_create() over BM_face_create_ngon() in bevel and extrude individual faces to get some speedup.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53164 954f8c5b-7b00-dc11-b283-0030488c597c
Minor fix

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53165 954f8c5b-7b00-dc11-b283-0030488c597c
DPI: icons were still drawing with color fringing when scaled up/down, opengl
texture needs to be premul alpha for correct results.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53166 954f8c5b-7b00-dc11-b283-0030488c597c