Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: gpu/command_buffer/common/gles2_cmd_format.h

Issue 434063: Merged in recent changes to command buffer code. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/common/gles2_cmd_format.h
===================================================================
--- gpu/command_buffer/common/gles2_cmd_format.h (revision 33021)
+++ gpu/command_buffer/common/gles2_cmd_format.h (working copy)
@@ -29,6 +29,251 @@
#include "gpu/command_buffer/common/gles2_cmd_format_autogen.h"
+// These are hand written commands.
+// TODO(gman): Attempt to make these auto-generated.
+
+struct GetAttribLocation {
+ typedef GetAttribLocation ValueType;
+ static const CommandId kCmdId = kGetAttribLocation;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+
+ static uint32 ComputeSize() {
+ return static_cast<uint32>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() {
+ header.SetCmd<ValueType>();
+ }
+
+ void Init(
+ GLuint _program, uint32 _name_shm_id, uint32 _name_shm_offset,
+ uint32 _location_shm_id, uint32 _location_shm_offset,
+ uint32 _data_size) {
+ SetHeader();
+ program = _program;
+ name_shm_id = _name_shm_id;
+ name_shm_offset = _name_shm_offset;
+ location_shm_id = _location_shm_id;
+ location_shm_offset = _location_shm_offset;
+ data_size = _data_size;
+ }
+
+ void* Set(
+ void* cmd, GLuint _program, uint32 _name_shm_id, uint32 _name_shm_offset,
+ uint32 _location_shm_id, uint32 _location_shm_offset,
+ uint32 _data_size) {
+ static_cast<ValueType*>(
+ cmd)->Init(
+ _program, _name_shm_id, _name_shm_offset, _location_shm_id,
+ _location_shm_offset, _data_size);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ command_buffer::CommandHeader header;
+ uint32 program;
+ uint32 name_shm_id;
+ uint32 name_shm_offset;
+ uint32 location_shm_id;
+ uint32 location_shm_offset;
+ uint32 data_size;
+};
+
+COMPILE_ASSERT(sizeof(GetAttribLocation) == 28,
+ Sizeof_GetAttribLocation_is_not_28);
+COMPILE_ASSERT(offsetof(GetAttribLocation, header) == 0,
+ OffsetOf_GetAttribLocation_header_not_0);
+COMPILE_ASSERT(offsetof(GetAttribLocation, program) == 4,
+ OffsetOf_GetAttribLocation_program_not_4);
+COMPILE_ASSERT(offsetof(GetAttribLocation, name_shm_id) == 8,
+ OffsetOf_GetAttribLocation_name_shm_id_not_8);
+COMPILE_ASSERT(offsetof(GetAttribLocation, name_shm_offset) == 12,
+ OffsetOf_GetAttribLocation_name_shm_offset_not_12);
+COMPILE_ASSERT(offsetof(GetAttribLocation, location_shm_id) == 16,
+ OffsetOf_GetAttribLocation_location_shm_id_not_16);
+COMPILE_ASSERT(offsetof(GetAttribLocation, location_shm_offset) == 20,
+ OffsetOf_GetAttribLocation_location_shm_offset_not_20);
+COMPILE_ASSERT(offsetof(GetAttribLocation, data_size) == 24,
+ OffsetOf_GetAttribLocation_data_size_not_24);
+
+struct GetAttribLocationImmediate {
+ typedef GetAttribLocationImmediate ValueType;
+ static const CommandId kCmdId = kGetAttribLocationImmediate;
+ static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
+
+ static uint32 ComputeDataSize(const char* s) {
+ return strlen(s);
+ }
+
+ static uint32 ComputeSize(const char* s) {
+ return static_cast<uint32>(sizeof(ValueType) + ComputeDataSize(s));
+ }
+
+ void SetHeader(const char* s) {
+ header.SetCmdByTotalSize<ValueType>(ComputeSize(s));
+ }
+
+ void Init(
+ GLuint _program, const char* _name,
+ uint32 _location_shm_id, uint32 _location_shm_offset) {
+ SetHeader(_name);
+ program = _program;
+ location_shm_id = _location_shm_id;
+ location_shm_offset = _location_shm_offset;
+ data_size = ComputeDataSize(_name);
+ memcpy(ImmediateDataAddress(this), _name, data_size);
+ }
+
+ void* Set(
+ void* cmd, GLuint _program, const char* _name,
+ uint32 _location_shm_id, uint32 _location_shm_offset) {
+ uint32 total_size = ComputeSize(_name);
+ static_cast<ValueType*>(
+ cmd)->Init(_program, _name, _location_shm_id, _location_shm_offset);
+ return NextImmediateCmdAddressTotalSize<ValueType>(cmd, total_size);
+ }
+
+ command_buffer::CommandHeader header;
+ uint32 program;
+ uint32 location_shm_id;
+ uint32 location_shm_offset;
+ uint32 data_size;
+};
+
+COMPILE_ASSERT(sizeof(GetAttribLocationImmediate) == 20,
+ Sizeof_GetAttribLocationImmediate_is_not_20);
+COMPILE_ASSERT(offsetof(GetAttribLocationImmediate, header) == 0,
+ OffsetOf_GetAttribLocationImmediate_header_not_0);
+COMPILE_ASSERT(offsetof(GetAttribLocationImmediate, program) == 4,
+ OffsetOf_GetAttribLocationImmediate_program_not_4);
+COMPILE_ASSERT(offsetof(GetAttribLocationImmediate, location_shm_id) == 8,
+ OffsetOf_GetAttribLocationImmediate_location_shm_id_not_8);
+COMPILE_ASSERT(offsetof(GetAttribLocationImmediate, location_shm_offset) == 12,
+ OffsetOf_GetAttribLocationImmediate_location_shm_offset_not_12);
+COMPILE_ASSERT(offsetof(GetAttribLocationImmediate, data_size) == 16,
+ OffsetOf_GetAttribLocationImmediate_data_size_not_16);
+
+struct GetUniformLocation {
+ typedef GetUniformLocation ValueType;
+ static const CommandId kCmdId = kGetUniformLocation;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+
+ static uint32 ComputeSize() {
+ return static_cast<uint32>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() {
+ header.SetCmd<ValueType>();
+ }
+
+ void Init(
+ GLuint _program, uint32 _name_shm_id, uint32 _name_shm_offset,
+ uint32 _location_shm_id, uint32 _location_shm_offset,
+ uint32 _data_size) {
+ SetHeader();
+ program = _program;
+ name_shm_id = _name_shm_id;
+ name_shm_offset = _name_shm_offset;
+ location_shm_id = _location_shm_id;
+ location_shm_offset = _location_shm_offset;
+ data_size = _data_size;
+ }
+
+ void* Set(
+ void* cmd, GLuint _program, uint32 _name_shm_id, uint32 _name_shm_offset,
+ uint32 _location_shm_id, uint32 _location_shm_offset,
+ uint32 _data_size) {
+ static_cast<ValueType*>(
+ cmd)->Init(
+ _program, _name_shm_id, _name_shm_offset, _location_shm_id,
+ _location_shm_offset, _data_size);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ command_buffer::CommandHeader header;
+ uint32 program;
+ uint32 name_shm_id;
+ uint32 name_shm_offset;
+ uint32 location_shm_id;
+ uint32 location_shm_offset;
+ uint32 data_size;
+};
+
+COMPILE_ASSERT(sizeof(GetUniformLocation) == 28,
+ Sizeof_GetUniformLocation_is_not_28);
+COMPILE_ASSERT(offsetof(GetUniformLocation, header) == 0,
+ OffsetOf_GetUniformLocation_header_not_0);
+COMPILE_ASSERT(offsetof(GetUniformLocation, program) == 4,
+ OffsetOf_GetUniformLocation_program_not_4);
+COMPILE_ASSERT(offsetof(GetUniformLocation, name_shm_id) == 8,
+ OffsetOf_GetUniformLocation_name_shm_id_not_8);
+COMPILE_ASSERT(offsetof(GetUniformLocation, name_shm_offset) == 12,
+ OffsetOf_GetUniformLocation_name_shm_offset_not_12);
+COMPILE_ASSERT(offsetof(GetUniformLocation, location_shm_id) == 16,
+ OffsetOf_GetUniformLocation_location_shm_id_not_16);
+COMPILE_ASSERT(offsetof(GetUniformLocation, location_shm_offset) == 20,
+ OffsetOf_GetUniformLocation_location_shm_offset_not_20);
+COMPILE_ASSERT(offsetof(GetUniformLocation, data_size) == 24,
+ OffsetOf_GetUniformLocation_data_size_not_24);
+
+struct GetUniformLocationImmediate {
+ typedef GetUniformLocationImmediate ValueType;
+ static const CommandId kCmdId = kGetUniformLocationImmediate;
+ static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
+
+ static uint32 ComputeDataSize(const char* s) {
+ return strlen(s);
+ }
+
+ static uint32 ComputeSize(const char* s) {
+ return static_cast<uint32>(sizeof(ValueType) + ComputeDataSize(s));
+ }
+
+ void SetHeader(const char* s) {
+ header.SetCmdByTotalSize<ValueType>(ComputeSize(s));
+ }
+
+ void Init(
+ GLuint _program, const char* _name,
+ uint32 _location_shm_id, uint32 _location_shm_offset) {
+ SetHeader(_name);
+ program = _program;
+ location_shm_id = _location_shm_id;
+ location_shm_offset = _location_shm_offset;
+ data_size = ComputeDataSize(_name);
+ memcpy(ImmediateDataAddress(this), _name, data_size);
+ }
+
+ void* Set(
+ void* cmd, GLuint _program, const char* _name,
+ uint32 _location_shm_id, uint32 _location_shm_offset) {
+ uint32 total_size = ComputeSize(_name);
+ static_cast<ValueType*>(
+ cmd)->Init(_program, _name, _location_shm_id, _location_shm_offset);
+ return NextImmediateCmdAddressTotalSize<ValueType>(cmd, total_size);
+ }
+
+ command_buffer::CommandHeader header;
+ uint32 program;
+ uint32 location_shm_id;
+ uint32 location_shm_offset;
+ uint32 data_size;
+};
+
+COMPILE_ASSERT(sizeof(GetUniformLocationImmediate) == 20,
+ Sizeof_GetUniformLocationImmediate_is_not_20);
+COMPILE_ASSERT(offsetof(GetUniformLocationImmediate, header) == 0,
+ OffsetOf_GetUniformLocationImmediate_header_not_0);
+COMPILE_ASSERT(offsetof(GetUniformLocationImmediate, program) == 4,
+ OffsetOf_GetUniformLocationImmediate_program_not_4);
+COMPILE_ASSERT(offsetof(GetUniformLocationImmediate, location_shm_id) == 8,
+ OffsetOf_GetUniformLocationImmediate_location_shm_id_not_8);
+COMPILE_ASSERT(
+ offsetof(GetUniformLocationImmediate, location_shm_offset) == 12,
+ OffsetOf_GetUniformLocationImmediate_location_shm_offset_not_12);
+COMPILE_ASSERT(offsetof(GetUniformLocationImmediate, data_size) == 16,
+ OffsetOf_GetUniformLocationImmediate_data_size_not_16);
+
+
} // namespace gles2
} // namespace command_buffer
« no previous file with comments | « gpu/command_buffer/client/gles2_implementation_autogen.h ('k') | gpu/command_buffer/common/gles2_cmd_format.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698