Index: gpu/command_buffer/service/command_buffer_service.cc |
=================================================================== |
--- gpu/command_buffer/service/command_buffer_service.cc (revision 34314) |
+++ gpu/command_buffer/service/command_buffer_service.cc (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2009 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. |
@@ -8,7 +8,7 @@ |
using ::base::SharedMemory; |
-namespace command_buffer { |
+namespace gpu { |
CommandBufferService::CommandBufferService() |
: size_(0), |
@@ -24,18 +24,21 @@ |
CommandBufferService::~CommandBufferService() { |
} |
-bool CommandBufferService::Initialize(::base::SharedMemory* ring_buffer) { |
- DCHECK(ring_buffer); |
- |
+base::SharedMemory* CommandBufferService::Initialize(int32 size) { |
// Fail if already initialized. |
if (ring_buffer_.get()) |
return false; |
- size_t size_in_bytes = ring_buffer->max_size(); |
- size_ = size_in_bytes / sizeof(int32); |
- ring_buffer_.reset(ring_buffer); |
+ size_ = size; |
- return true; |
+ ring_buffer_.reset(new SharedMemory); |
+ if (ring_buffer_->Create(std::wstring(), false, false, size_)) { |
+ if (ring_buffer_->Map(size_)) |
+ return ring_buffer_.get(); |
+ } |
+ |
+ ring_buffer_.reset(); |
+ return NULL; |
} |
SharedMemory* CommandBufferService::GetRingBuffer() { |
@@ -158,4 +161,4 @@ |
error_status_ = true; |
} |
-} // namespace command_buffer |
+} // namespace gpu |