| Index: gpu/blink/webgraphicscontext3d_in_process_command_buffer_impl.cc
|
| diff --git a/gpu/blink/webgraphicscontext3d_in_process_command_buffer_impl.cc b/gpu/blink/webgraphicscontext3d_in_process_command_buffer_impl.cc
|
| deleted file mode 100644
|
| index cc7871cb1cd5951a8f7d23e67985a98d466f8a8b..0000000000000000000000000000000000000000
|
| --- a/gpu/blink/webgraphicscontext3d_in_process_command_buffer_impl.cc
|
| +++ /dev/null
|
| @@ -1,183 +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.
|
| -
|
| -#include "gpu/blink/webgraphicscontext3d_in_process_command_buffer_impl.h"
|
| -
|
| -#include <GLES2/gl2.h>
|
| -#ifndef GL_GLEXT_PROTOTYPES
|
| -#define GL_GLEXT_PROTOTYPES 1
|
| -#endif
|
| -#include <GLES2/gl2ext.h>
|
| -#include <GLES2/gl2extchromium.h>
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/atomicops.h"
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/callback.h"
|
| -#include "base/logging.h"
|
| -#include "gpu/command_buffer/client/gles2_implementation.h"
|
| -#include "gpu/command_buffer/common/gles2_cmd_utils.h"
|
| -#include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h"
|
| -#include "ui/gfx/geometry/size.h"
|
| -#include "ui/gl/gl_implementation.h"
|
| -
|
| -using blink::WGC3Denum;
|
| -using gpu::gles2::GLES2Implementation;
|
| -using gpu::GLInProcessContext;
|
| -
|
| -namespace gpu_blink {
|
| -
|
| -// static
|
| -scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::CreateViewContext(
|
| - const blink::WebGraphicsContext3D::Attributes& attributes,
|
| - bool lose_context_when_out_of_memory,
|
| - gfx::AcceleratedWidget window) {
|
| - DCHECK_NE(gfx::GetGLImplementation(), gfx::kGLImplementationNone);
|
| - bool is_offscreen = false;
|
| - return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl(
|
| - scoped_ptr< ::gpu::GLInProcessContext>(),
|
| - attributes,
|
| - lose_context_when_out_of_memory,
|
| - is_offscreen,
|
| - window));
|
| -}
|
| -
|
| -// static
|
| -scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::CreateOffscreenContext(
|
| - const blink::WebGraphicsContext3D::Attributes& attributes,
|
| - bool lose_context_when_out_of_memory) {
|
| - bool is_offscreen = true;
|
| - return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl(
|
| - scoped_ptr< ::gpu::GLInProcessContext>(),
|
| - attributes,
|
| - lose_context_when_out_of_memory,
|
| - is_offscreen,
|
| - gfx::kNullAcceleratedWidget));
|
| -}
|
| -
|
| -scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::WrapContext(
|
| - scoped_ptr< ::gpu::GLInProcessContext> context,
|
| - const blink::WebGraphicsContext3D::Attributes& attributes) {
|
| - bool lose_context_when_out_of_memory = false; // Not used.
|
| - bool is_offscreen = true; // Not used.
|
| - return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl(
|
| - context.Pass(),
|
| - attributes,
|
| - lose_context_when_out_of_memory,
|
| - is_offscreen,
|
| - gfx::kNullAcceleratedWidget /* window. Not used. */));
|
| -}
|
| -
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::
|
| - WebGraphicsContext3DInProcessCommandBufferImpl(
|
| - scoped_ptr< ::gpu::GLInProcessContext> context,
|
| - const blink::WebGraphicsContext3D::Attributes& attributes,
|
| - bool lose_context_when_out_of_memory,
|
| - bool is_offscreen,
|
| - gfx::AcceleratedWidget window)
|
| - : share_resources_(attributes.shareResources),
|
| - webgl_context_(attributes.webGL),
|
| - is_offscreen_(is_offscreen),
|
| - window_(window),
|
| - context_(context.Pass()) {
|
| - ConvertAttributes(attributes, &attribs_);
|
| - attribs_.lose_context_when_out_of_memory = lose_context_when_out_of_memory;
|
| -}
|
| -
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::
|
| - ~WebGraphicsContext3DInProcessCommandBufferImpl() {
|
| -}
|
| -
|
| -size_t WebGraphicsContext3DInProcessCommandBufferImpl::GetMappedMemoryLimit() {
|
| - return context_->GetMappedMemoryLimit();
|
| -}
|
| -
|
| -bool WebGraphicsContext3DInProcessCommandBufferImpl::MaybeInitializeGL() {
|
| - if (initialized_)
|
| - return true;
|
| -
|
| - if (initialize_failed_)
|
| - return false;
|
| -
|
| - if (!context_) {
|
| - // TODO(kbr): More work will be needed in this implementation to
|
| - // properly support GPU switching. Like in the out-of-process
|
| - // command buffer implementation, all previously created contexts
|
| - // will need to be lost either when the first context requesting the
|
| - // discrete GPU is created, or the last one is destroyed.
|
| - gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
|
| - context_.reset(GLInProcessContext::Create(
|
| - NULL, /* service */
|
| - NULL, /* surface */
|
| - is_offscreen_,
|
| - window_,
|
| - gfx::Size(1, 1),
|
| - NULL, /* share_context */
|
| - share_resources_,
|
| - attribs_,
|
| - gpu_preference,
|
| - ::gpu::GLInProcessContextSharedMemoryLimits(),
|
| - nullptr,
|
| - nullptr));
|
| - }
|
| -
|
| - if (context_) {
|
| - base::Closure context_lost_callback = base::Bind(
|
| - &WebGraphicsContext3DInProcessCommandBufferImpl::OnContextLost,
|
| - base::Unretained(this));
|
| - context_->SetContextLostCallback(context_lost_callback);
|
| - } else {
|
| - initialize_failed_ = true;
|
| - return false;
|
| - }
|
| -
|
| - real_gl_ = context_->GetImplementation();
|
| - setGLInterface(real_gl_);
|
| -
|
| - if (real_gl_ && webgl_context_)
|
| - real_gl_->EnableFeatureCHROMIUM("webgl_enable_glsl_webgl_validation");
|
| -
|
| - initialized_ = true;
|
| - return true;
|
| -}
|
| -
|
| -bool
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::InitializeOnCurrentThread() {
|
| - if (!MaybeInitializeGL())
|
| - return false;
|
| - return context_ && !isContextLost();
|
| -}
|
| -
|
| -void WebGraphicsContext3DInProcessCommandBufferImpl::SetLock(base::Lock* lock) {
|
| - context_->SetLock(lock);
|
| -}
|
| -
|
| -bool WebGraphicsContext3DInProcessCommandBufferImpl::isContextLost() {
|
| - return context_lost_reason_ != GL_NO_ERROR;
|
| -}
|
| -
|
| -WGC3Denum WebGraphicsContext3DInProcessCommandBufferImpl::
|
| - getGraphicsResetStatusARB() {
|
| - return context_lost_reason_;
|
| -}
|
| -
|
| -::gpu::ContextSupport*
|
| -WebGraphicsContext3DInProcessCommandBufferImpl::GetContextSupport() {
|
| - return real_gl_;
|
| -}
|
| -
|
| -void WebGraphicsContext3DInProcessCommandBufferImpl::OnContextLost() {
|
| - // TODO(kbr): improve the precision here.
|
| - context_lost_reason_ = GL_UNKNOWN_CONTEXT_RESET_ARB;
|
| - if (context_lost_callback_) {
|
| - context_lost_callback_->onContextLost();
|
| - }
|
| -}
|
| -
|
| -} // namespace gpu_blink
|
|
|