Index: content/renderer/gpu/renderer_gl_context.h |
diff --git a/content/renderer/gpu/renderer_gl_context.h b/content/renderer/gpu/renderer_gl_context.h |
deleted file mode 100644 |
index e491e2cccdd6a44f45e8602b90cffb99f02d1beb..0000000000000000000000000000000000000000 |
--- a/content/renderer/gpu/renderer_gl_context.h |
+++ /dev/null |
@@ -1,211 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// This API is consistent with other OpenGL setup APIs like window's WGL |
-// and pepper's PGL. This API is used to manage OpenGL RendererGLContexts in the |
-// Chrome renderer process in a way that is consistent with other platforms. |
- |
-#ifndef CONTENT_RENDERER_GPU_RENDERER_GL_CONTEXT_H_ |
-#define CONTENT_RENDERER_GPU_RENDERER_GL_CONTEXT_H_ |
-#pragma once |
- |
-#include "base/callback.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/threading/non_thread_safe.h" |
-#include "build/build_config.h" |
-#include "ui/gfx/gl/gpu_preference.h" |
-#include "ui/gfx/native_widget_types.h" |
-#include "ui/gfx/size.h" |
- |
-class GpuChannelHost; |
-class CommandBufferProxy; |
-class GURL; |
- |
-namespace gpu { |
-class TransferBuffer; |
-namespace gles2 { |
-class GLES2CmdHelper; |
-class GLES2Implementation; |
-} |
-} |
- |
-class RendererGLContext : public base::SupportsWeakPtr<RendererGLContext>, |
- public base::NonThreadSafe { |
- public: |
- // These are the same error codes as used by EGL. |
- enum Error { |
- SUCCESS = 0x3000, |
- NOT_INITIALIZED = 0x3001, |
- BAD_ATTRIBUTE = 0x3004, |
- BAD_RendererGLContext = 0x3006, |
- CONTEXT_LOST = 0x300E |
- }; |
- |
- // RendererGLContext configuration attributes. Those in the 16-bit range are |
- // the same as used by EGL. Those outside the 16-bit range are unique to |
- // Chromium. Attributes are matched using a closest fit algorithm. |
- enum Attribute { |
- ALPHA_SIZE = 0x3021, |
- BLUE_SIZE = 0x3022, |
- GREEN_SIZE = 0x3023, |
- RED_SIZE = 0x3024, |
- DEPTH_SIZE = 0x3025, |
- STENCIL_SIZE = 0x3026, |
- SAMPLES = 0x3031, |
- SAMPLE_BUFFERS = 0x3032, |
- HEIGHT = 0x3056, |
- WIDTH = 0x3057, |
- NONE = 0x3038, // Attrib list = terminator |
- SHARE_RESOURCES = 0x10000, |
- BIND_GENERATES_RESOURCES = 0x10001 |
- }; |
- |
- // Reasons that a lost context might have been provoked. |
- enum ContextLostReason { |
- // This context definitely provoked the loss of context. |
- kGuilty, |
- |
- // This context definitely did not provoke the loss of context. |
- kInnocent, |
- |
- // It is unknown whether this context provoked the loss of context. |
- kUnknown |
- }; |
- |
- // Initialize the library. This must have completed before any other |
- // functions are invoked. |
- static bool Initialize(); |
- |
- // Terminate the library. This must be called after any other functions |
- // have completed. |
- static bool Terminate(); |
- |
- ~RendererGLContext(); |
- |
- // Create a RendererGLContext that renders directly to a view. The view and |
- // the associated window must not be destroyed until the returned |
- // RendererGLContext has been destroyed, otherwise the GPU process might |
- // attempt to render to an invalid window handle. |
- // |
- // NOTE: on Mac OS X, this entry point is only used to set up the |
- // accelerated compositor's output. On this platform, we actually pass |
- // a gfx::PluginWindowHandle in place of the gfx::NativeViewId, |
- // because the facility to allocate a fake PluginWindowHandle is |
- // already in place. We could add more entry points and messages to |
- // allocate both fake PluginWindowHandles and NativeViewIds and map |
- // from fake NativeViewIds to PluginWindowHandles, but this seems like |
- // unnecessary complexity at the moment. |
- // |
- // The render_view_id is currently also only used on Mac OS X. |
- // TODO(kbr): clean up the arguments to this function and make them |
- // more cross-platform. |
- static RendererGLContext* CreateViewContext( |
- GpuChannelHost* channel, |
- int32 surface_id, |
- RendererGLContext* share_group, |
- const char* allowed_extensions, |
- const int32* attrib_list, |
- const GURL& active_url, |
- gfx::GpuPreference gpu_preference); |
- |
- // Create a RendererGLContext that renders to an offscreen frame buffer. If |
- // parent is not NULL, that RendererGLContext can access a copy of the created |
- // RendererGLContext's frame buffer that is updated every time SwapBuffers is |
- // called. It is not as general as shared RendererGLContexts in other |
- // implementations of OpenGL. If parent is not NULL, it must be used on the |
- // same thread as the parent. A child RendererGLContext may not outlive its |
- // parent. attrib_list must be NULL or a NONE-terminated list of |
- // attribute/value pairs. |
- static RendererGLContext* CreateOffscreenContext( |
- GpuChannelHost* channel, |
- const gfx::Size& size, |
- RendererGLContext* share_group, |
- const char* allowed_extensions, |
- const int32* attrib_list, |
- const GURL& active_url, |
- gfx::GpuPreference gpu_preference); |
- |
- // Sets the parent context. If any parent textures have been created for |
- // another parent, it is important to delete them before changing the parent. |
- bool SetParent(RendererGLContext* parent); |
- |
- // For an offscreen frame buffer RendererGLContext, return the texture ID with |
- // respect to the parent RendererGLContext. Returns zero if RendererGLContext |
- // does not have a parent. |
- uint32 GetParentTextureId(); |
- |
- // Create a new texture in the parent's RendererGLContext. Returns zero if |
- // RendererGLContext does not have a parent. |
- uint32 CreateParentTexture(const gfx::Size& size); |
- |
- // Deletes a texture in the parent's RendererGLContext. |
- void DeleteParentTexture(uint32 texture); |
- |
- void SetContextLostCallback( |
- const base::Callback<void(ContextLostReason)>& callback); |
- |
- // Set the current RendererGLContext for the calling thread. |
- static bool MakeCurrent(RendererGLContext* context); |
- |
- // For a view RendererGLContext, display everything that has been rendered |
- // since the last call. For an offscreen RendererGLContext, resolve everything |
- // that has been rendered since the last call to a copy that can be accessed |
- // by the parent RendererGLContext. |
- bool SwapBuffers(); |
- |
- // Run the task once the channel has been flushed. Takes care of deleting the |
- // task whether the echo succeeds or not. |
- bool Echo(const base::Closure& task); |
- |
- // Sends an IPC message with the new state of surface visibility |
- bool SetSurfaceVisible(bool visibility); |
- |
- // TODO(gman): Remove this |
- void DisableShaderTranslation(); |
- |
- // Allows direct access to the GLES2 implementation so a RendererGLContext |
- // can be used without making it current. |
- gpu::gles2::GLES2Implementation* GetImplementation(); |
- |
- // Return the current error. |
- Error GetError(); |
- |
- // Return true if GPU process reported RendererGLContext lost or there was a |
- // problem communicating with the GPU process. |
- bool IsCommandBufferContextLost(); |
- |
- CommandBufferProxy* GetCommandBufferProxy(); |
- |
- private: |
- explicit RendererGLContext(GpuChannelHost* channel); |
- |
- bool Initialize(bool onscreen, |
- int32 surface_id, |
- const gfx::Size& size, |
- RendererGLContext* share_group, |
- const char* allowed_extensions, |
- const int32* attrib_list, |
- const GURL& active_url, |
- gfx::GpuPreference gpu_preference); |
- void Destroy(); |
- |
- void OnContextLost(); |
- |
- scoped_refptr<GpuChannelHost> channel_; |
- base::WeakPtr<RendererGLContext> parent_; |
- base::Callback<void(ContextLostReason)> context_lost_callback_; |
- uint32 parent_texture_id_; |
- CommandBufferProxy* command_buffer_; |
- gpu::gles2::GLES2CmdHelper* gles2_helper_; |
- gpu::TransferBuffer* transfer_buffer_; |
- gpu::gles2::GLES2Implementation* gles2_implementation_; |
- Error last_error_; |
- int frame_number_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RendererGLContext); |
-}; |
- |
-#endif // CONTENT_RENDERER_GPU_RENDERER_GL_CONTEXT_H_ |