| 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 // This file defines the GLES2 command buffer commands. | 5 // This file defines the GLES2 command buffer commands. |
| 6 | 6 |
| 7 #ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ | 7 #ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ |
| 8 #define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ | 8 #define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ |
| 9 | 9 |
| 10 | 10 |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 // TODO(gman): Attempt to make these auto-generated. | 314 // TODO(gman): Attempt to make these auto-generated. |
| 315 | 315 |
| 316 struct GenMailboxCHROMIUM { | 316 struct GenMailboxCHROMIUM { |
| 317 typedef GenMailboxCHROMIUM ValueType; | 317 typedef GenMailboxCHROMIUM ValueType; |
| 318 static const CommandId kCmdId = kGenMailboxCHROMIUM; | 318 static const CommandId kCmdId = kGenMailboxCHROMIUM; |
| 319 static const cmd::ArgFlags kArgFlags = cmd::kFixed; | 319 static const cmd::ArgFlags kArgFlags = cmd::kFixed; |
| 320 static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3); | 320 static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3); |
| 321 CommandHeader header; | 321 CommandHeader header; |
| 322 }; | 322 }; |
| 323 | 323 |
| 324 struct CreateAndConsumeTextureCHROMIUMImmediate { | |
| 325 typedef CreateAndConsumeTextureCHROMIUMImmediate ValueType; | |
| 326 static const CommandId kCmdId = kCreateAndConsumeTextureCHROMIUMImmediate; | |
| 327 static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN; | |
| 328 static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(1); | |
| 329 | |
| 330 static uint32_t ComputeDataSize() { | |
| 331 return static_cast<uint32_t>(sizeof(GLbyte) * 64); // NOLINT | |
| 332 } | |
| 333 | |
| 334 static uint32_t ComputeSize() { | |
| 335 return static_cast<uint32_t>(sizeof(ValueType) + | |
| 336 ComputeDataSize()); // NOLINT | |
| 337 } | |
| 338 | |
| 339 void SetHeader(uint32_t size_in_bytes) { | |
| 340 header.SetCmdByTotalSize<ValueType>(size_in_bytes); | |
| 341 } | |
| 342 | |
| 343 void Init(GLenum _target, uint32_t _client_id, const GLbyte* _mailbox) { | |
| 344 SetHeader(ComputeSize()); | |
| 345 target = _target; | |
| 346 client_id = _client_id; | |
| 347 memcpy(ImmediateDataAddress(this), _mailbox, ComputeDataSize()); | |
| 348 } | |
| 349 | |
| 350 void* Set(void* cmd, | |
| 351 GLenum _target, | |
| 352 uint32_t _client_id, | |
| 353 const GLbyte* _mailbox) { | |
| 354 static_cast<ValueType*>(cmd)->Init(_target, _client_id, _mailbox); | |
| 355 const uint32_t size = ComputeSize(); | |
| 356 return NextImmediateCmdAddressTotalSize<ValueType>(cmd, size); | |
| 357 } | |
| 358 | |
| 359 gpu::CommandHeader header; | |
| 360 uint32_t target; | |
| 361 uint32_t client_id; | |
| 362 }; | |
| 363 | |
| 364 static_assert(sizeof(CreateAndConsumeTextureCHROMIUMImmediate) == 12, | |
| 365 "size of CreateAndConsumeTextureCHROMIUMImmediate should be 12"); | |
| 366 static_assert(offsetof(CreateAndConsumeTextureCHROMIUMImmediate, header) == 0, | |
| 367 "offset of CreateAndConsumeTextureCHROMIUMImmediate.header " | |
| 368 "should be 0"); | |
| 369 static_assert(offsetof(CreateAndConsumeTextureCHROMIUMImmediate, target) == 4, | |
| 370 "offset of CreateAndConsumeTextureCHROMIUMImmediate.target " | |
| 371 "should be 4"); | |
| 372 static_assert( | |
| 373 offsetof(CreateAndConsumeTextureCHROMIUMImmediate, client_id) == 8, | |
| 374 "offset of CreateAndConsumeTextureCHROMIUMImmediate.client_id should be 8"); | |
| 375 | |
| 376 | |
| 377 #pragma pack(pop) | 324 #pragma pack(pop) |
| 378 | 325 |
| 379 } // namespace cmd | 326 } // namespace cmd |
| 380 } // namespace gles2 | 327 } // namespace gles2 |
| 381 } // namespace gpu | 328 } // namespace gpu |
| 382 | 329 |
| 383 #endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ | 330 #endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ |
| OLD | NEW |