summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/common/gles2_cmd_format.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/common/gles2_cmd_format.h')
-rw-r--r--gpu/command_buffer/common/gles2_cmd_format.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/gpu/command_buffer/common/gles2_cmd_format.h b/gpu/command_buffer/common/gles2_cmd_format.h
index a541cbb..656b4b1 100644
--- a/gpu/command_buffer/common/gles2_cmd_format.h
+++ b/gpu/command_buffer/common/gles2_cmd_format.h
@@ -461,6 +461,57 @@ struct InsertSyncPointCHROMIUM {
CommandHeader header;
};
+struct CreateAndConsumeTextureCHROMIUMImmediate {
+ typedef CreateAndConsumeTextureCHROMIUMImmediate ValueType;
+ static const CommandId kCmdId = kCreateAndConsumeTextureCHROMIUMImmediate;
+ static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(1);
+
+ static uint32_t ComputeDataSize() {
+ return static_cast<uint32_t>(sizeof(GLbyte) * 64); // NOLINT
+ }
+
+ static uint32_t ComputeSize() {
+ return static_cast<uint32_t>(sizeof(ValueType) +
+ ComputeDataSize()); // NOLINT
+ }
+
+ void SetHeader(uint32_t size_in_bytes) {
+ header.SetCmdByTotalSize<ValueType>(size_in_bytes);
+ }
+
+ void Init(GLenum _target, uint32_t _client_id, const GLbyte* _mailbox) {
+ SetHeader(ComputeSize());
+ target = _target;
+ client_id = _client_id;
+ memcpy(ImmediateDataAddress(this), _mailbox, ComputeDataSize());
+ }
+
+ void* Set(void* cmd,
+ GLenum _target,
+ uint32_t _client_id,
+ const GLbyte* _mailbox) {
+ static_cast<ValueType*>(cmd)->Init(_target, _client_id, _mailbox);
+ const uint32_t size = ComputeSize();
+ return NextImmediateCmdAddressTotalSize<ValueType>(cmd, size);
+ }
+
+ gpu::CommandHeader header;
+ uint32_t target;
+ uint32_t client_id;
+};
+
+COMPILE_ASSERT(sizeof(CreateAndConsumeTextureCHROMIUMImmediate) == 12,
+ Sizeof_CreateAndConsumeTextureCHROMIUMImmediate_is_not_12);
+COMPILE_ASSERT(offsetof(CreateAndConsumeTextureCHROMIUMImmediate, header) == 0,
+ OffsetOf_CreateAndConsumeTextureCHROMIUMImmediate_header_not_0);
+COMPILE_ASSERT(offsetof(CreateAndConsumeTextureCHROMIUMImmediate, target) == 4,
+ OffsetOf_CreateAndConsumeTextureCHROMIUMImmediate_target_not_4);
+COMPILE_ASSERT(
+ offsetof(CreateAndConsumeTextureCHROMIUMImmediate, client_id) == 8,
+ OffsetOf_CreateAndConsumeTextureCHROMIUMImmediate_client_id_not_8);
+
+
#pragma pack(pop)
} // namespace cmd