diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-11 21:36:24 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-11 21:36:24 +0000 |
commit | f84374c390b97d1f816812d31f160d53d75db27c (patch) | |
tree | 9549bdaa5839a214ab53fc1a1088e9f19c81d1b1 /gpu | |
parent | e64d2ac012980252b0e562a630e5ce799a7dd16d (diff) | |
download | chromium_src-f84374c390b97d1f816812d31f160d53d75db27c.zip chromium_src-f84374c390b97d1f816812d31f160d53d75db27c.tar.gz chromium_src-f84374c390b97d1f816812d31f160d53d75db27c.tar.bz2 |
Fix GLES2 Conformance test support
TEST=ran GLES2 Conformance tests
BUG=none
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/9166034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117295 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/gles2_conform_support/egl/display.cc | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/gpu/gles2_conform_support/egl/display.cc b/gpu/gles2_conform_support/egl/display.cc index 82c60135..47fcd51 100644 --- a/gpu/gles2_conform_support/egl/display.cc +++ b/gpu/gles2_conform_support/egl/display.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// 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. @@ -30,29 +30,8 @@ Display::~Display() { } bool Display::Initialize() { - scoped_ptr<gpu::CommandBufferService> command_buffer( - new gpu::CommandBufferService); - if (!command_buffer->Initialize()) - return false; - - int32 transfer_buffer_id = - command_buffer->CreateTransferBuffer(kTransferBufferSize, -1); - gpu::Buffer transfer_buffer = - command_buffer->GetTransferBuffer(transfer_buffer_id); - if (transfer_buffer.ptr == NULL) - return false; - - scoped_ptr<gpu::gles2::GLES2CmdHelper> cmd_helper( - new gpu::gles2::GLES2CmdHelper(command_buffer.get())); - if (!cmd_helper->Initialize(kCommandBufferSize)) - return false; - gles2::Initialize(); - is_initialized_ = true; - command_buffer_.reset(command_buffer.release()); - transfer_buffer_id_ = transfer_buffer_id; - gles2_cmd_helper_.reset(cmd_helper.release()); return true; } @@ -103,13 +82,18 @@ EGLSurface Display::CreateWindowSurface(EGLConfig config, return EGL_NO_SURFACE; } + scoped_ptr<gpu::CommandBufferService> command_buffer( + new gpu::CommandBufferService); + if (!command_buffer->Initialize()) + return false; + gpu::gles2::ContextGroup::Ref group(new gpu::gles2::ContextGroup(true)); decoder_.reset(gpu::gles2::GLES2Decoder::Create(group.get())); if (!decoder_.get()) return EGL_NO_SURFACE; - gpu_scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(), + gpu_scheduler_.reset(new gpu::GpuScheduler(command_buffer.get(), decoder_.get(), NULL)); @@ -135,13 +119,28 @@ EGLSurface Display::CreateWindowSurface(EGLConfig config, return EGL_NO_SURFACE; } - command_buffer_->SetPutOffsetChangeCallback( + command_buffer->SetPutOffsetChangeCallback( base::Bind(&gpu::GpuScheduler::PutChanged, base::Unretained(gpu_scheduler_.get()))); - command_buffer_->SetGetBufferChangeCallback( + command_buffer->SetGetBufferChangeCallback( base::Bind(&gpu::GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); + scoped_ptr<gpu::gles2::GLES2CmdHelper> cmd_helper( + new gpu::gles2::GLES2CmdHelper(command_buffer.get())); + if (!cmd_helper->Initialize(kCommandBufferSize)) + return false; + + int32 transfer_buffer_id = + command_buffer->CreateTransferBuffer(kTransferBufferSize, -1); + gpu::Buffer transfer_buffer = + command_buffer->GetTransferBuffer(transfer_buffer_id); + if (transfer_buffer.ptr == NULL) + return false; + + command_buffer_.reset(command_buffer.release()); + transfer_buffer_id_ = transfer_buffer_id; + gles2_cmd_helper_.reset(cmd_helper.release()); surface_.reset(new Surface(win)); return surface_.get(); |