| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_GL_GL_SURFACE_H_ | 5 #ifndef UI_GL_GL_SURFACE_H_ |
| 6 #define UI_GL_GL_SURFACE_H_ | 6 #define UI_GL_GL_SURFACE_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 // overlays account for all the damage. | 121 // overlays account for all the damage. |
| 122 virtual gfx::SwapResult CommitOverlayPlanes(); | 122 virtual gfx::SwapResult CommitOverlayPlanes(); |
| 123 | 123 |
| 124 // Show overlay planes but don't swap the front and back buffers. On some | 124 // Show overlay planes but don't swap the front and back buffers. On some |
| 125 // platforms, we want to send SwapBufferAck only after the overlays are | 125 // platforms, we want to send SwapBufferAck only after the overlays are |
| 126 // displayed on screen. The callback can be used to delay sending | 126 // displayed on screen. The callback can be used to delay sending |
| 127 // SwapBufferAck till that data is available. The callback should be run on | 127 // SwapBufferAck till that data is available. The callback should be run on |
| 128 // the calling thread (i.e. same thread CommitOverlayPlanesAsync is called). | 128 // the calling thread (i.e. same thread CommitOverlayPlanesAsync is called). |
| 129 virtual void CommitOverlayPlanesAsync(const SwapCompletionCallback& callback); | 129 virtual void CommitOverlayPlanesAsync(const SwapCompletionCallback& callback); |
| 130 | 130 |
| 131 // Initialize GL bindings. | |
| 132 // DEPRECATED(kylechar): Use gl::init::InitializeGLOneOff from gl_factory.h. | |
| 133 static bool InitializeOneOff(); | |
| 134 | |
| 135 // Called after a context is made current with this surface. Returns false | 131 // Called after a context is made current with this surface. Returns false |
| 136 // on error. | 132 // on error. |
| 137 virtual bool OnMakeCurrent(GLContext* context); | 133 virtual bool OnMakeCurrent(GLContext* context); |
| 138 | 134 |
| 139 // Used for explicit buffer management. | 135 // Used for explicit buffer management. |
| 140 virtual bool SetBackbufferAllocation(bool allocated); | 136 virtual bool SetBackbufferAllocation(bool allocated); |
| 141 virtual void SetFrontbufferAllocation(bool allocated); | 137 virtual void SetFrontbufferAllocation(bool allocated); |
| 142 | 138 |
| 143 // Get a handle used to share the surface with another process. Returns null | 139 // Get a handle used to share the surface with another process. Returns null |
| 144 // if this is not possible. | 140 // if this is not possible. |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 static scoped_refptr<GLSurface> CreateOffscreenGLSurface( | 215 static scoped_refptr<GLSurface> CreateOffscreenGLSurface( |
| 220 const gfx::Size& size); | 216 const gfx::Size& size); |
| 221 | 217 |
| 222 static GLSurface* GetCurrent(); | 218 static GLSurface* GetCurrent(); |
| 223 | 219 |
| 224 // Called when the swap interval for the associated context changes. | 220 // Called when the swap interval for the associated context changes. |
| 225 virtual void OnSetSwapInterval(int interval); | 221 virtual void OnSetSwapInterval(int interval); |
| 226 | 222 |
| 227 protected: | 223 protected: |
| 228 virtual ~GLSurface(); | 224 virtual ~GLSurface(); |
| 229 static bool InitializeOneOffImplementation(GLImplementation impl, | 225 |
| 230 bool fallback_to_osmesa, | |
| 231 bool gpu_service_logging, | |
| 232 bool disable_gl_drawing); | |
| 233 static bool InitializeOneOffInternal(); | |
| 234 static void SetCurrent(GLSurface* surface); | 226 static void SetCurrent(GLSurface* surface); |
| 235 | 227 |
| 236 static bool ExtensionsContain(const char* extensions, const char* name); | 228 static bool ExtensionsContain(const char* extensions, const char* name); |
| 237 | 229 |
| 238 private: | 230 private: |
| 239 friend class base::RefCounted<GLSurface>; | 231 friend class base::RefCounted<GLSurface>; |
| 240 friend class GLContext; | 232 friend class GLContext; |
| 241 friend class GLSurfaceTestSupport; | |
| 242 | 233 |
| 243 DISALLOW_COPY_AND_ASSIGN(GLSurface); | 234 DISALLOW_COPY_AND_ASSIGN(GLSurface); |
| 244 }; | 235 }; |
| 245 | 236 |
| 246 // Implementation of GLSurface that forwards all calls through to another | 237 // Implementation of GLSurface that forwards all calls through to another |
| 247 // GLSurface. | 238 // GLSurface. |
| 248 class GL_EXPORT GLSurfaceAdapter : public GLSurface { | 239 class GL_EXPORT GLSurfaceAdapter : public GLSurface { |
| 249 public: | 240 public: |
| 250 explicit GLSurfaceAdapter(GLSurface* surface); | 241 explicit GLSurfaceAdapter(GLSurface* surface); |
| 251 | 242 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 | 289 |
| 299 private: | 290 private: |
| 300 scoped_refptr<GLSurface> surface_; | 291 scoped_refptr<GLSurface> surface_; |
| 301 | 292 |
| 302 DISALLOW_COPY_AND_ASSIGN(GLSurfaceAdapter); | 293 DISALLOW_COPY_AND_ASSIGN(GLSurfaceAdapter); |
| 303 }; | 294 }; |
| 304 | 295 |
| 305 } // namespace gl | 296 } // namespace gl |
| 306 | 297 |
| 307 #endif // UI_GL_GL_SURFACE_H_ | 298 #endif // UI_GL_GL_SURFACE_H_ |
| OLD | NEW |