summaryrefslogtreecommitdiffstats
path: root/ui/gl/gl_surface_egl.h
Commit message (Collapse)AuthorAgeFilesLines
* gl: Move platform-specific EGL code into separate filesspang@chromium.org2014-03-271-0/+4
| | | | | | | | | | | | | | | | | | | | This splits ozone & android GLSurface creation into their own files, matching all of the other platforms. Also, all platforms that support EGL now implement GetPlatformDefaultEGLNativeDisplay() to determine the EGL display to use, eliminating an ifdef. This is cleaning things up in preparation for introducing a new ozone-specific GLSurfaceEGL subclass without adding more ifdefs. TEST=ui_unittests, content_shell --ozone-platform={file,dri} BUG=353788 R=piman@chromium.org, rjkroege@chromium.org Review URL: https://codereview.chromium.org/196403008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259923 0039d316-1c4b-4281-b951-d872f2087c98
* gl: Clean up gfx::AcceleratedWidget usage in gl_surface_eglspang@chromium.org2014-03-251-3/+2
| | | | | | | | | | | | | NativeViewGLSurfaceEGL requires a EGLNativeWindowType argument, so make this explicit. With ozone, we want gfx::AcceleratedWidget to be different from EGLNativeWindowType, and this prepares for that possibility. TEST=ui_unittests, content_shell --ozone-platform={file,dri} BUG=353788 Review URL: https://codereview.chromium.org/202683003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259090 0039d316-1c4b-4281-b951-d872f2087c98
* Blacklist partial swaps on linuxpiman@chromium.org2014-03-221-1/+1
| | | | | | | | BUG=339493 Review URL: https://codereview.chromium.org/207443007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258740 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for EGL_ANGLE_window_fixed_size for specifying surface size.jbauman@chromium.org2014-02-281-0/+1
| | | | | | | | | | This allows Chrome to specify the expected size of the backbuffer, so that it renders correctly even when the context is started on a minimized window. BUG=320021 Review URL: https://codereview.chromium.org/180723013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254211 0039d316-1c4b-4281-b951-d872f2087c98
* [Ozone] Rename GetVSyncProvider to CreateVSyncProviderdnicoara@chromium.org2014-01-081-1/+1
| | | | | | | | | | | | Ozone is actually creating the VSyncProvider. The caller will also take ownership of the VSyncProvider. Updating the method definition to better reflect the intent. BUG= Review URL: https://codereview.chromium.org/102563005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243688 0039d316-1c4b-4281-b951-d872f2087c98
* Moving the VSyncProvider interface to ui/gfx from ui/gldnicoara@chromium.org2013-11-141-1/+1
| | | | | | | | | | | | | Custom implementations of the VSyncProvider (such as the Ozone provider) need to inherit from VSyncProvider. However, these implementations leave outside of ui/gl and would break deps. Moving the interface to ui/gfx would allow such implementations to inherit the VSyncProvider interface. BUG= Review URL: https://codereview.chromium.org/68893002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235172 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for Khr_surfaceless_context.kalyan.kondapally@intel.com2013-11-021-0/+26
| | | | | | | | | | | | | | | | http://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_surfaceless_context.txt This patch adds support in GLSurfaceEGL to be able to use surfaceless context when supported by the drivers. This avoids the creation of a dummy offscreen surface. This would also enable support for offscreen rendering on platforms (i.e Ozone-Wayland) which donot support pbuffer surfaces. BUG= Review URL: https://codereview.chromium.org/49533003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232615 0039d316-1c4b-4281-b951-d872f2087c98
* Use DwmGetCompositionTimingInfo to get vsync info on Vista+jbauman@chromium.org2013-10-011-0/+1
| | | | | | | | | | DwmGetCompositionTimingInfo works to find out vsync info on Vista+. Luckily using a NULL HWND (required on Win 8.1+) avoids the issue where the window starts flickering. BUG=291390 Review URL: https://codereview.chromium.org/25102004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226152 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of time headers in ui/.avi@chromium.org2013-06-281-1/+1
| | | | | | | | | | BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://codereview.chromium.org/18149004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209153 0039d316-1c4b-4281-b951-d872f2087c98
* Delete usage and support for EGL_ANGLE_software_display extension.apatrick@chromium.org2013-06-171-5/+2
| | | | | | | | | | We aren't using it anymore. It used to be used to switch to SwitchShader but the new version of SwiftShader exposes a EGL / GLES2 interface without ANGLE in between. TBR=kbr@chromium.org, senorblanco@chromium.org Review URL: https://codereview.chromium.org/17110007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206759 0039d316-1c4b-4281-b951-d872f2087c98
* Add a factory and defines for native Linux surfaces.rjkroege@chromium.org2013-05-241-0/+3
| | | | | | | | | | | | | This CL is a first step towards supporting a build of the Aura content shell on the native Linux framebuffer device. It sets up the necessary defines such that an injected surface provider dependency can vend a native surface. BUG=178543 Review URL: https://chromiumcodereview.appspot.com/13886018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201996 0039d316-1c4b-4281-b951-d872f2087c98
* Reland "gpu: Fix Vivante's "hisilicon" GPUs"epenner@chromium.org2013-04-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes "Hisilicon" GPUs, which is an instance of a Vivante's GPU design. This involves enabling virtual contexts, since they don't support share-groups, and further adds a work-around for switching surfaces. Without the work- around the view surface "inherits" the size of the last bound surface (which for Chrome tends to be a 1x1 pbuffer) resulting in a black screen. The following steps "repair" the view surface every time it is made current: - Make it current. - Bind the default frame-buffer. - Make it not current. - Destroy/recreate it from the native handle. - Make it current again. NOTE: The "Recreate" function is added to surface because the Destroy/Initialize may be intercepted or modified by wrapper surface classes. Recreate is similar to resize, which after being forwarded by a wrapper can call Destroy/Initialize on the 'real' surface. BUG=179250 NOTRY=true No-try, as all the relevant bots are already green. Review URL: https://chromiumcodereview.appspot.com/13852023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195349 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "gpu: Fix Vivante's "hisilicon" GPUs"epenner@chromium.org2013-04-191-4/+0
| | | | | | | | | | | | | | | | Revert "gpu: Fix uninitialized variable." Reverting these two CLs so they can be landed behind #ifdef's (for merge safety). BUG=179250 NOTRY=true No try since this is just a revert. Review URL: https://chromiumcodereview.appspot.com/14241009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195275 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Fix Vivante's "hisilicon" GPUsepenner@chromium.org2013-04-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes "Hisilicon" GPUs, which is an instance of a Vivante's GPU design. This involves enabling virtual contexts, since they don't support share-groups, and further adds a work-around for switching surfaces. Without the work- around the view surface "inherits" the size of the last bound surface (which for Chrome tends to be a 1x1 pbuffer) resulting in a black screen. The following steps "repair" the view surface every time it is made current: - Make it current. - Bind the default frame-buffer. - Make it not current. - Destroy/recreate it from the native handle. - Make it current again. NOTE: The "Recreate" function is added to surface because the Destroy/Initialize may be intercepted or modified by wrapper surface classes. Recreate is similar to resize, which after being forwarded by a wrapper can call Destroy/Initialize on the 'real' surface. BUG=179250, 229643 NOTRY=true No try, since it's Android only and already tested. Review URL: https://chromiumcodereview.appspot.com/13140006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194737 0039d316-1c4b-4281-b951-d872f2087c98
* Use EGL headers to pick up EGL definitions.sheu@chromium.org2013-01-191-12/+1
| | | | | | | | | | | | | | | * Remove forward-definitions of EGL types from ui/gl/gl_bindings.h, and use the actual EGL headers instead. * Clean up users of gl_bindings.h to not use system headers. BUG=chromium:169433 TEST=local build, run on snow; trybots Change-Id: Ibdf8f92574ff1a31389531fa462f05319b20a66f Review URL: https://chromiumcodereview.appspot.com/11961032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177834 0039d316-1c4b-4281-b951-d872f2087c98
* CrOS: Plumb through vsync info to compositor on EGL stacksbacker@chromium.org2013-01-141-0/+7
| | | | | | | | | | | Uses EGL_CHROMIUM_sync_control (a subset of GLX_OML_sync_control) to calculate refresh rate and when refreshes occur. This CL factors out common code from the GLX_OML_sync_control implementation. BUG=none TEST=by hand on stumpy, daisy, and desktop Review URL: https://codereview.chromium.org/11865021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176668 0039d316-1c4b-4281-b951-d872f2087c98
* First step towards component build for Android.yfriedman@chromium.org2012-11-011-1/+1
| | | | | | | | | | Add symbol exports needed to build content shell. BUG=158821 Review URL: https://codereview.chromium.org/11368031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165420 0039d316-1c4b-4281-b951-d872f2087c98
* Override Resize() in NativeViewGLSurfaceEGL.sievers@chromium.org2012-08-171-0/+1
| | | | | | | | | | | This is really just to allow the compositor to call reshape() on this type of surface when the view size changes initially (from 0x0 to the window width and height) without hitting NOTIMPLEMENTED() in GLSurface. Review URL: https://chromiumcodereview.appspot.com/10836300 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152042 0039d316-1c4b-4281-b951-d872f2087c98
* Use EXT_robustness where available on GLES2 platforms to detect and respond ↵kbr@chromium.org2012-07-271-0/+7
| | | | | | | | | | | | to resets of the graphics card. BUG=138162 TEST=ran https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/conformance-suites/1.0.1/extra/slow-shader-example.html on Windows with ANGLE and verified that new code path was taken Review URL: https://chromiumcodereview.appspot.com/10822029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148721 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* RefCounted types should not have public destructors, Linux fixesrsleevi@chromium.org2012-05-181-3/+6
| | | | | | | | | | BUG=123295 TEST=none Review URL: https://chromiumcodereview.appspot.com/10392152 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137893 0039d316-1c4b-4281-b951-d872f2087c98
* Tie native surface EGL config to the window depth.sabercrombie@chromium.org2012-05-151-1/+3
| | | | | | | | | | | Without this we can attempt to use an incompatible config/context. BUG=chromium-os:27980 TEST=Works on Tegra and Mesa softpipe (formerly not working). Review URL: https://chromiumcodereview.appspot.com/10391081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137257 0039d316-1c4b-4281-b951-d872f2087c98
* ui: Move gl/ directory out of gfx/, up to ui/.tfarina@chromium.org2012-05-121-0/+106
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