return true;
}
-CommandBufferService::State CommandBufferService::GetState() {
+CommandBufferService::State CommandBufferService::GetLastState() {
State state;
state.num_entries = num_entries_;
state.get_offset = get_offset_;
return state;
}
-CommandBufferService::State CommandBufferService::GetLastState() {
- return GetState();
-}
-
int32 CommandBufferService::GetLastToken() {
- return GetState().token;
+ return GetLastState().token;
}
void CommandBufferService::UpdateState() {
if (shared_state_) {
- CommandBufferService::State state = GetState();
+ CommandBufferService::State state = GetLastState();
shared_state_->Write(state);
}
}
UpdateState();
}
-bool CommandBufferService::SetSharedStateBuffer(
- scoped_ptr<base::SharedMemory> shared_state_shm) {
- shared_state_shm_.reset(shared_state_shm.release());
- if (!shared_state_shm_->Map(sizeof(*shared_state_)))
- return false;
+void CommandBufferService::SetSharedStateBuffer(
+ scoped_ptr<BufferBacking> shared_state_buffer) {
+ shared_state_buffer_ = shared_state_buffer.Pass();
+ DCHECK(shared_state_buffer_->GetSize() >= sizeof(*shared_state_));
shared_state_ =
- static_cast<CommandBufferSharedState*>(shared_state_shm_->memory());
+ static_cast<CommandBufferSharedState*>(shared_state_buffer_->GetMemory());
UpdateState();
- return true;
}
void CommandBufferService::SetGetOffset(int32 get_offset) {
static int32 next_id = 1;
*id = next_id++;
- if (!RegisterTransferBuffer(*id, shared_memory.Pass(), size)) {
+ if (!RegisterTransferBuffer(
+ *id, MakeBackingFromSharedMemory(shared_memory.Pass(), size))) {
*id = -1;
return NULL;
}
bool CommandBufferService::RegisterTransferBuffer(
int32 id,
- scoped_ptr<base::SharedMemory> shared_memory,
- size_t size) {
- return transfer_buffer_manager_->RegisterTransferBuffer(
- id, shared_memory.Pass(), size);
+ scoped_ptr<BufferBacking> buffer) {
+ return transfer_buffer_manager_->RegisterTransferBuffer(id, buffer.Pass());
}
void CommandBufferService::SetToken(int32 token) {