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 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 }; | 454 }; |
455 | 455 |
456 struct InsertSyncPointCHROMIUM { | 456 struct InsertSyncPointCHROMIUM { |
457 typedef InsertSyncPointCHROMIUM ValueType; | 457 typedef InsertSyncPointCHROMIUM ValueType; |
458 static const CommandId kCmdId = kInsertSyncPointCHROMIUM; | 458 static const CommandId kCmdId = kInsertSyncPointCHROMIUM; |
459 static const cmd::ArgFlags kArgFlags = cmd::kFixed; | 459 static const cmd::ArgFlags kArgFlags = cmd::kFixed; |
460 static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3); | 460 static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3); |
461 CommandHeader header; | 461 CommandHeader header; |
462 }; | 462 }; |
463 | 463 |
| 464 struct CreateAndConsumeTextureCHROMIUMImmediate { |
| 465 typedef CreateAndConsumeTextureCHROMIUMImmediate ValueType; |
| 466 static const CommandId kCmdId = kCreateAndConsumeTextureCHROMIUMImmediate; |
| 467 static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN; |
| 468 static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(1); |
| 469 |
| 470 static uint32_t ComputeDataSize() { |
| 471 return static_cast<uint32_t>(sizeof(GLbyte) * 64); // NOLINT |
| 472 } |
| 473 |
| 474 static uint32_t ComputeSize() { |
| 475 return static_cast<uint32_t>(sizeof(ValueType) + |
| 476 ComputeDataSize()); // NOLINT |
| 477 } |
| 478 |
| 479 void SetHeader(uint32_t size_in_bytes) { |
| 480 header.SetCmdByTotalSize<ValueType>(size_in_bytes); |
| 481 } |
| 482 |
| 483 void Init(GLenum _target, uint32_t _client_id, const GLbyte* _mailbox) { |
| 484 SetHeader(ComputeSize()); |
| 485 target = _target; |
| 486 client_id = _client_id; |
| 487 memcpy(ImmediateDataAddress(this), _mailbox, ComputeDataSize()); |
| 488 } |
| 489 |
| 490 void* Set(void* cmd, |
| 491 GLenum _target, |
| 492 uint32_t _client_id, |
| 493 const GLbyte* _mailbox) { |
| 494 static_cast<ValueType*>(cmd)->Init(_target, _client_id, _mailbox); |
| 495 const uint32_t size = ComputeSize(); |
| 496 return NextImmediateCmdAddressTotalSize<ValueType>(cmd, size); |
| 497 } |
| 498 |
| 499 gpu::CommandHeader header; |
| 500 uint32_t target; |
| 501 uint32_t client_id; |
| 502 }; |
| 503 |
| 504 COMPILE_ASSERT(sizeof(CreateAndConsumeTextureCHROMIUMImmediate) == 12, |
| 505 Sizeof_CreateAndConsumeTextureCHROMIUMImmediate_is_not_12); |
| 506 COMPILE_ASSERT(offsetof(CreateAndConsumeTextureCHROMIUMImmediate, header) == 0, |
| 507 OffsetOf_CreateAndConsumeTextureCHROMIUMImmediate_header_not_0); |
| 508 COMPILE_ASSERT(offsetof(CreateAndConsumeTextureCHROMIUMImmediate, target) == 4, |
| 509 OffsetOf_CreateAndConsumeTextureCHROMIUMImmediate_target_not_4); |
| 510 COMPILE_ASSERT( |
| 511 offsetof(CreateAndConsumeTextureCHROMIUMImmediate, client_id) == 8, |
| 512 OffsetOf_CreateAndConsumeTextureCHROMIUMImmediate_client_id_not_8); |
| 513 |
| 514 |
464 #pragma pack(pop) | 515 #pragma pack(pop) |
465 | 516 |
466 } // namespace cmd | 517 } // namespace cmd |
467 } // namespace gles2 | 518 } // namespace gles2 |
468 } // namespace gpu | 519 } // namespace gpu |
469 | 520 |
470 #endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ | 521 #endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_H_ |
OLD | NEW |