diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-29 22:02:36 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-29 22:02:36 +0000 |
commit | c77ea36637f9494c048f6c8035f3cf8a389da93d (patch) | |
tree | f1feccf837765ba30c4f46e11b8f7b0b996a5cbd /gpu/command_buffer/service/command_buffer_service.cc | |
parent | 23fc99cca22572abe60eced18b90b5693c2f64f7 (diff) | |
download | chromium_src-c77ea36637f9494c048f6c8035f3cf8a389da93d.zip chromium_src-c77ea36637f9494c048f6c8035f3cf8a389da93d.tar.gz chromium_src-c77ea36637f9494c048f6c8035f3cf8a389da93d.tar.bz2 |
Redesigned CommandBuffer and NPDevice3D interfaces.
All status is now in the Device3D context.
It can be retreived with fewer IPC messages.
It can be now be accessed off the main plugin thread, which is necessary to run OpenGL in another thread.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/555020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37545 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/command_buffer_service.cc')
-rw-r--r-- | gpu/command_buffer/service/command_buffer_service.cc | 56 |
1 files changed, 19 insertions, 37 deletions
diff --git a/gpu/command_buffer/service/command_buffer_service.cc b/gpu/command_buffer/service/command_buffer_service.cc index f0a96e1..053a22b 100644 --- a/gpu/command_buffer/service/command_buffer_service.cc +++ b/gpu/command_buffer/service/command_buffer_service.cc @@ -17,8 +17,7 @@ CommandBufferService::CommandBufferService() get_offset_(0), put_offset_(0), token_(0), - parse_error_(0), - error_status_(false) { + error_(parse_error::kParseNoError) { // Element zero is always NULL. registered_objects_.push_back(linked_ptr<SharedMemory>()); } @@ -54,13 +53,22 @@ Buffer CommandBufferService::GetRingBuffer() { return buffer; } -int32 CommandBufferService::GetSize() { - return size_; +CommandBufferService::State CommandBufferService::GetState() { + State state; + state.size = size_; + state.get_offset = get_offset_; + state.put_offset = put_offset_; + state.token = token_; + state.error = error_; + + return state; } -int32 CommandBufferService::SyncOffsets(int32 put_offset) { - if (put_offset < 0 || put_offset >= size_) - return -1; +CommandBufferService::State CommandBufferService::Flush(int32 put_offset) { + if (put_offset < 0 || put_offset >= size_) { + error_ = gpu::parse_error::kParseOutOfBounds; + return GetState(); + } put_offset_ = put_offset; @@ -68,11 +76,7 @@ int32 CommandBufferService::SyncOffsets(int32 put_offset) { put_offset_change_callback_->Run(); } - return get_offset_; -} - -int32 CommandBufferService::GetGetOffset() { - return get_offset_; + return GetState(); } void CommandBufferService::SetGetOffset(int32 get_offset) { @@ -80,10 +84,6 @@ void CommandBufferService::SetGetOffset(int32 get_offset) { get_offset_ = get_offset; } -int32 CommandBufferService::GetPutOffset() { - return put_offset_; -} - int32 CommandBufferService::CreateTransferBuffer(size_t size) { linked_ptr<SharedMemory> buffer(new SharedMemory); if (!buffer->Create(std::wstring(), false, false, size)) @@ -150,34 +150,16 @@ Buffer CommandBufferService::GetTransferBuffer(int32 handle) { return buffer; } -int32 CommandBufferService::GetToken() { - return token_; -} - void CommandBufferService::SetToken(int32 token) { token_ = token; } -int32 CommandBufferService::ResetParseError() { - int32 last_error = parse_error_; - parse_error_ = 0; - return last_error; -} - -void CommandBufferService::SetParseError(int32 parse_error) { - if (parse_error_ == 0) { - parse_error_ = parse_error; +void CommandBufferService::SetParseError(parse_error::ParseError error) { + if (error_ == parse_error::kParseNoError) { + error_ = error; } } -bool CommandBufferService::GetErrorStatus() { - return error_status_; -} - -void CommandBufferService::RaiseErrorStatus() { - error_status_ = true; -} - void CommandBufferService::SetPutOffsetChangeCallback( Callback0::Type* callback) { put_offset_change_callback_.reset(callback); |