| Index: gpu/gles2_conform_support/egl/display.cc
|
| diff --git a/gpu/gles2_conform_support/egl/display.cc b/gpu/gles2_conform_support/egl/display.cc
|
| index 82c60135ecb075338e7545935f3e0786f1a1554d..6aefdf2c78146b2194432b568ae9af3d3fb046fa 100644
|
| --- a/gpu/gles2_conform_support/egl/display.cc
|
| +++ b/gpu/gles2_conform_support/egl/display.cc
|
| @@ -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();
|
|
|