removed "fake" glx tokens from GHOST_WindowX11.cpp
minor optimization of font rendering

Made some large local arrays static and used array instead of pointers to help compiler with aliasing issues.
Made glBegin/glEnd only called once.
I plan to replace the glBegin/glEnd paradigm with a set of inline functions for filling in VBO, so this isn't just shuffling around deprecated functionality.
Merge w/ Trunk r46806-r46823

Hoping this fixes a build error.
Added a BLENDER category to the glreport tool.

This is for internal helper symbols related to OpenGL.  Things in this category should be rather abstract and directly related to OpenGL.  e.g., "draw_line" as opposed to "draw_positional_indicator_g"
Adding the start to an async option for bge.logic.LibLoad(). The basic threading works, but there are still some issues that need to be addressed:
  * Memory leaks when canceling a thread. I'll try to fix these with more cleanup callbacks like the one used in async_convert().
  * The user has no way of knowing when an asset has been loaded. I'm thinking some sort of Future object would work here.
  * Only works for scenes. It will be simple to support Mesh and Action as well, but I want to do it in a such a way as to minimize code duplication.
gpuImmediate: A simplified replacement for OpenGL immediate mode.

This is an initial commit of the API.  I have not converted any code to use this yet.  There may be problems with use of the "restrict" keyword because I was not able to test it.
Renamed some unclear functions.  gpuImmediateBufferSizes -> gpuImmediateElementSizes, gpuImmediateSize -> gpuImmediateMaxVertexCount
fix, errant search/replace had changed GPU_immediate.h to GPU_IMMEDIATE.h, which works on Windows but will fail elsewhere.
fixed undefined symbol in GPU_immediate that wasn't caught because I was not building in debug mode.
PixelStore Policy

The way Blender uses PixelStore the best policy seems to be to assume that the values are set to their defaults (Do not call PixelStore if you do not have to) and restore the default value for anything that was changed after completing the store operation.
gpuImmediate - fixed several bugs after testing with font rendering, added gpu_deprecated.h which defines macros that chastise you if you use outdated symbols.
Removed deprecated functions from blf_glyph.c

Note, it still uses GL_QUADS, which I have not decided if we should emulate quads or force the use of triangles.
Forgot to add blender/gpu/intern/gpu_deprecated to CMakeLists.txt.
Optimization (after Profiling), and refactoring of gpuImmediate.

Added gpuImmediateLock/gpuImmediateUnlock so that gpuBegin/gpuEnd have less to do so it is faster to send multiple batches.

Profiled the code using the text renderer as a pathological case.
Modified blenfont to use gpuImmediateLock/gpuImmediateUnlock
Improved the pathological behavior of the text editor.

Now batches up multiple characters to draw at once.  My changes could use some refactoring, but I'd like to put it on the back shelf.  All I needed to do for now is keep it from being unusable.
missing header file
Merged r46824-r46992
Cannot use restrict with a function pointer.
fixed some asserts that fire in debug mode

been building in release all day for profiling and forgot to check