| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "gpu/command_buffer/service/common_decoder.h" | 5 #include "gpu/command_buffer/service/common_decoder.h" |
| 6 #include "gpu/command_buffer/service/cmd_buffer_engine.h" | 6 #include "gpu/command_buffer/service/cmd_buffer_engine.h" |
| 7 | 7 |
| 8 namespace gpu { | 8 namespace gpu { |
| 9 | 9 |
| 10 CommonDecoder::Bucket::Bucket() : size_(0) {} | 10 CommonDecoder::Bucket::Bucket() : size_(0) {} |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 return error::kNoError; | 179 return error::kNoError; |
| 180 } | 180 } |
| 181 | 181 |
| 182 error::Error CommonDecoder::HandleSetToken( | 182 error::Error CommonDecoder::HandleSetToken( |
| 183 uint32 immediate_data_size, | 183 uint32 immediate_data_size, |
| 184 const cmd::SetToken& args) { | 184 const cmd::SetToken& args) { |
| 185 engine_->set_token(args.token); | 185 engine_->set_token(args.token); |
| 186 return error::kNoError; | 186 return error::kNoError; |
| 187 } | 187 } |
| 188 | 188 |
| 189 error::Error CommonDecoder::HandleJump( | |
| 190 uint32 immediate_data_size, | |
| 191 const cmd::Jump& args) { | |
| 192 if (!engine_->SetGetOffset(args.offset)) { | |
| 193 return error::kInvalidArguments; | |
| 194 } | |
| 195 return error::kNoError; | |
| 196 } | |
| 197 | |
| 198 error::Error CommonDecoder::HandleJumpRelative( | |
| 199 uint32 immediate_data_size, | |
| 200 const cmd::JumpRelative& args) { | |
| 201 if (!engine_->SetGetOffset(engine_->GetGetOffset() + args.offset)) { | |
| 202 return error::kInvalidArguments; | |
| 203 } | |
| 204 return error::kNoError; | |
| 205 } | |
| 206 | |
| 207 error::Error CommonDecoder::HandleCall( | |
| 208 uint32 immediate_data_size, | |
| 209 const cmd::Call& args) { | |
| 210 if (!PushAddress(args.offset)) { | |
| 211 return error::kInvalidArguments; | |
| 212 } | |
| 213 return error::kNoError; | |
| 214 } | |
| 215 | |
| 216 error::Error CommonDecoder::HandleCallRelative( | |
| 217 uint32 immediate_data_size, | |
| 218 const cmd::CallRelative& args) { | |
| 219 if (!PushAddress(engine_->GetGetOffset() + args.offset)) { | |
| 220 return error::kInvalidArguments; | |
| 221 } | |
| 222 return error::kNoError; | |
| 223 } | |
| 224 | |
| 225 error::Error CommonDecoder::HandleReturn( | |
| 226 uint32 immediate_data_size, | |
| 227 const cmd::Return& args) { | |
| 228 if (call_stack_.empty()) { | |
| 229 return error::kInvalidArguments; | |
| 230 } | |
| 231 CommandAddress return_address = call_stack_.top(); | |
| 232 call_stack_.pop(); | |
| 233 if (!engine_->SetGetOffset(return_address.offset)) { | |
| 234 return error::kInvalidArguments; | |
| 235 } | |
| 236 return error::kNoError; | |
| 237 } | |
| 238 | |
| 239 error::Error CommonDecoder::HandleSetBucketSize( | 189 error::Error CommonDecoder::HandleSetBucketSize( |
| 240 uint32 immediate_data_size, | 190 uint32 immediate_data_size, |
| 241 const cmd::SetBucketSize& args) { | 191 const cmd::SetBucketSize& args) { |
| 242 uint32 bucket_id = args.bucket_id; | 192 uint32 bucket_id = args.bucket_id; |
| 243 uint32 size = args.size; | 193 uint32 size = args.size; |
| 244 | 194 |
| 245 Bucket* bucket = CreateBucket(bucket_id); | 195 Bucket* bucket = CreateBucket(bucket_id); |
| 246 bucket->SetSize(size); | 196 bucket->SetSize(size); |
| 247 return error::kNoError; | 197 return error::kNoError; |
| 248 } | 198 } |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 } | 293 } |
| 344 const void* src = bucket->GetData(offset, size); | 294 const void* src = bucket->GetData(offset, size); |
| 345 if (!src) { | 295 if (!src) { |
| 346 return error::kInvalidArguments; | 296 return error::kInvalidArguments; |
| 347 } | 297 } |
| 348 memcpy(data, src, size); | 298 memcpy(data, src, size); |
| 349 return error::kNoError; | 299 return error::kNoError; |
| 350 } | 300 } |
| 351 | 301 |
| 352 } // namespace gpu | 302 } // namespace gpu |
| OLD | NEW |