Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1232)

Unified Diff: content/renderer/gpu/renderer_gl_context.h

Issue 9340012: Move gpu client files to content_common, in content/common/gpu/client (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unneeded enums Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « content/renderer/gpu/gpu_video_decode_accelerator_host.cc ('k') | content/renderer/gpu/renderer_gl_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698