dolphin/Source/Core/VideoBackends/OGL
Ryan Houdek f2d998c938 Work around broken Android garbage.
This fixes running Dolphin on the Nexus 9.

Android's EGL stack has internal arrays that they use for tracking OpenGL function usage. Probably has something to do with their OpenGL profiling
garbage that used to be in ADT.

Android has three of these arrays, each statically allocated.
One array is for all GLES 1.x functions
One array is for all GLES 2.0/3.0/3.1 and a couple of extensions they deem worthy of being in this array.
The last array is for all function pointers grabbed via eglGetProcAddress that isn't in the other two arrays.

The last array is the issue that we are having problems with. This array is 256 members in length.
So if you are pulling more than 256 function pointers that Google doesn't track in their internal array, the function will return NULL and yell at you
in logcat.

The Nvidia Shield Tablet gets around this by replacing part of the EGL stack with their own implementation that doesn't have this garbage.
The Nexus 9 on the other hand doesn't get away with this. So we pull >100 more function pointers than the array can handle, and some of those we need
to use.

The workaround for this is to grab OpenGL 1.1 functions last because we won't actually be using those functions, so we get away with not grabbing the
function pointers.
2014-12-20 15:15:57 -06:00
..
GLExtensions Work around broken Android garbage. 2014-12-20 15:15:57 -06:00
GLInterface VideoOGL: Move X11 wxWidgets utilities to DolphinWX 2014-11-24 21:15:52 -05:00
BoundingBox.cpp OGL: implement bounding box support with ssbo 2014-11-17 21:20:32 +01:00
BoundingBox.h OGL: implement bounding box support with ssbo 2014-11-17 21:20:32 +01:00
CMakeLists.txt VideoOGL: Move X11 wxWidgets utilities to DolphinWX 2014-11-24 21:15:52 -05:00
FramebufferManager.cpp OGL: Ensure a VAO is bound for all attributeless. 2014-12-11 09:42:49 -08:00
FramebufferManager.h FramebufferManager: Bind only the first framebuffer layer when the EFB only has one layer. 2014-12-05 00:36:10 +01:00
GLInterfaceBase.h Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
GLUtil.cpp OGL: Attempt a larger buffer to workaround 7946. 2014-12-16 22:20:45 -08:00
GLUtil.h OGL: Move attributeless VAO creation to Init. 2014-12-11 01:00:37 -08:00
main.cpp OGL: Don't generate a geometry shader if the backend doesn't support it. 2014-12-18 00:36:49 +01:00
main.h Move GLInterface around to remove VideoBackends dependency on DolphinWX 2014-08-02 09:34:39 -07:00
NativeVertexFormat.cpp OGL: Add static to a function in NativeVertexFormat 2014-08-15 14:16:04 -04:00
OGL.vcxproj OGL: implement bounding box support with ssbo 2014-11-17 21:20:32 +01:00
OGL.vcxproj.filters OGL: implement bounding box support with ssbo 2014-11-17 21:20:32 +01:00
PerfQuery.cpp Move GLInterface around to remove VideoBackends dependency on DolphinWX 2014-08-02 09:34:39 -07:00
PerfQuery.h Add missing includes where headers depend on other headers having been included first. 2014-10-21 21:22:16 -04:00
PostProcessing.cpp OGL: Use a fixed VAO for attributeless rendering. 2014-12-06 19:27:49 -08:00
PostProcessing.h PostProcessing: Invalidate shader when anaglyph stereoscopy is toggled. 2014-11-23 14:27:40 +01:00
ProgramShaderCache.cpp OGL: Don't generate a geometry shader if the backend doesn't support it. 2014-12-18 00:36:49 +01:00
ProgramShaderCache.h GeometryShaderGen: Pass the primitive type and always run the generator regardless of stereoscopy. 2014-12-14 21:23:20 +01:00
RasterFont.cpp Merge pull request #1142 from lioncash/linucks 2014-09-23 13:43:18 +10:00
RasterFont.h Add missing includes where headers depend on other headers having been included first. 2014-10-21 21:22:16 -04:00
Render.cpp OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks. 2014-12-19 23:56:02 +01:00
Render.h VideoCommon: Merge LineGeometryShader into GeometryShaderGen. 2014-12-15 22:47:42 +01:00
SamplerCache.cpp Remove another auto .. -> declaration. 2014-10-14 01:10:35 -04:00
SamplerCache.h Fix more header sorting issues in VideoBackends/ (now check-includes clean). 2014-02-20 01:01:11 +01:00
StreamBuffer.cpp Rename Log2 and add IsPow2 to MathUtils for future use 2014-09-08 20:15:45 -07:00
StreamBuffer.h OGL: Fix brace and body placements 2014-08-15 14:12:29 -04:00
TextureCache.cpp OGL: Bind the attributeless VAO before EFB copies. 2014-12-10 23:19:18 -08:00
TextureCache.h TextureCache: Recompile EFB2Tex shaders when stereo 3D is toggled. 2014-11-23 14:27:40 +01:00
TextureConverter.cpp OGL: Ensure a VAO is bound for all attributeless. 2014-12-11 09:42:49 -08:00
TextureConverter.h Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
VertexManager.cpp VertexManager: Disable culling for lines and points. 2014-12-18 00:36:47 +01:00
VertexManager.h Add missing includes where headers depend on other headers having been included first. 2014-10-21 21:22:16 -04:00
VideoBackend.h Core: Remove UpdateFPSDisplay 2014-08-19 10:05:58 -04:00