summaryrefslogtreecommitdiffstats
path: root/ui/gl/gl_context_wgl.cc
Commit message (Collapse)AuthorAgeFilesLines
* Take GL version and extensions correctly into account when binding functionsoetuaho@nvidia.com2014-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Platform libraries may return non-null function pointers from dlsym or getProcAddress for unsupported GL functions. Previously the function binding logic tried to address this with a separate extension function binding step, but since some of the bindings were still done without consulting the extension string, this failed to account for some conflicts between core and extension functions such as glDiscardFramebufferEXT vs. glInvalidateFramebuffer. Fix this by binding all functions that have multiple versions only after the context has been made current, and consulting the extension and version strings. The logic for binding each function is now only in one place in the generated code and easy to follow. The patch still does not guarantee that the function pointers would be set to null if the function is unsupported. It only attempts to guarantee that an incorrect version of a function is not bound in case another version is supported. The patch is conservative like this to avoid requiring the exact specification of binding conditions in case a function only has one name, and to make it less likely to expose bugs elsewhere. GetGLCoreProcAddress and GetGLProcAddress are combined into one function, which always first looks for the function pointer with dlsym and then with GetProcAddress. The new conditions for binding make sure that this does not result in errors. The patched bindings do not query for incorrect OES or ARB extension strings without the GL_ prefix. Including the incorrect extension strings without the prefix is assumed to have been a mistake. This applies to OES_get_program_binary, OES_vertex_array_object, ARB_get_program_binary, ARB_vertex_array_object, and APPLE_vertex_array_object. BUG=322489 TEST=gpu_unittests, cc_unittests, WebGL conformance tests Review URL: https://codereview.chromium.org/98643013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245623 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure real GL Api is set before making GL calls.sievers@chromium.org2013-06-131-1/+3
| | | | | | | | | | | In particular IOSurfaceImageTransportSurface::OnMakeCurrent() calls into GL. BUG=248957 Review URL: https://chromiumcodereview.appspot.com/16838007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206103 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Keep track of the last real context and real surface made current.backer@chromium.org2013-06-061-4/+4
| | | | | | | | | | | | This allows us to set virtual contexts current, which allows us to restore from a GLStateRestorer in Scoped{Texture,Framebuffer}Binders with --enable-virtual-gl-contexts. BUG=241762,163217 Review URL: https://chromiumcodereview.appspot.com/15928002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204500 0039d316-1c4b-4281-b951-d872f2087c98
* Virtual GLgman@chromium.org2012-11-071-0/+1
| | | | | | | | | BUG=155557 Review URL: https://chromiumcodereview.appspot.com/11275120 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166442 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 164047 - Make GL calls go through subclassable class."gman@chromium.org2012-10-251-3/+3
| | | | | | | | | | | This reverts commit 25afcfe213ffd88f8e9370d4ff1ee23ecf9ae16c. BUG=155557 TBR=apatrick@chromium.org Review URL: https://codereview.chromium.org/11264041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164095 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 164047 - Make GL calls go through subclassable class.bartfab@chromium.org2012-10-251-3/+3
| | | | | | | | | | | | | Sheriff reverting as this CL added four static initializers. BUG=155557 Review URL: https://chromiumcodereview.appspot.com/11266023 TBR=gman@chromium.org Review URL: https://codereview.chromium.org/11270035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164051 0039d316-1c4b-4281-b951-d872f2087c98
* Make GL calls go through subclassable class.gman@chromium.org2012-10-251-3/+3
| | | | | | | | | | | This is a step to virtualizing GL BUG=155557 Review URL: https://chromiumcodereview.appspot.com/11266023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164047 0039d316-1c4b-4281-b951-d872f2087c98
* ui: Move gl/ directory out of gfx/, up to ui/.tfarina@chromium.org2012-05-121-0/+141
BUG=104040 R=ben@chromium.org TBR=tony@chromium.org Review URL: https://chromiumcodereview.appspot.com/10392068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136777 0039d316-1c4b-4281-b951-d872f2087c98