| Index: core/cross/command_buffer/texture_cb.cc
|
| ===================================================================
|
| --- core/cross/command_buffer/texture_cb.cc (revision 26638)
|
| +++ core/cross/command_buffer/texture_cb.cc (working copy)
|
| @@ -120,7 +120,7 @@
|
| }
|
| }
|
|
|
| -// Sends the SET_TEXTURE_DATA command after formatting the args properly.
|
| +// Sends the SetTextureData command after formatting the args properly.
|
| void SetTextureData(RendererCB *renderer,
|
| ResourceID texture_id,
|
| unsigned int x,
|
| @@ -136,27 +136,16 @@
|
| unsigned char* mip_data) {
|
| FencedAllocatorWrapper *allocator = renderer->allocator();
|
| CommandBufferHelper *helper = renderer->helper();
|
| -
|
| - CommandBufferEntry args[10];
|
| - args[0].value_uint32 = texture_id;
|
| - args[1].value_uint32 =
|
| - set_texture_data_cmd::X::MakeValue(x) |
|
| - set_texture_data_cmd::Y::MakeValue(y);
|
| - args[2].value_uint32 =
|
| - set_texture_data_cmd::Width::MakeValue(mip_width) |
|
| - set_texture_data_cmd::Height::MakeValue(mip_height);
|
| - args[3].value_uint32 =
|
| - set_texture_data_cmd::Z::MakeValue(z) |
|
| - set_texture_data_cmd::Depth::MakeValue(depth);
|
| - args[4].value_uint32 =
|
| - set_texture_data_cmd::Level::MakeValue(level) |
|
| - set_texture_data_cmd::Face::MakeValue(face);
|
| - args[5].value_uint32 = pitch;
|
| - args[6].value_uint32 = 0; // slice_pitch
|
| - args[7].value_uint32 = mip_size;
|
| - args[8].value_uint32 = renderer->transfer_shm_id();
|
| - args[9].value_uint32 = allocator->GetOffset(mip_data);
|
| - helper->AddCommand(command_buffer::SET_TEXTURE_DATA, 10, args);
|
| + helper->SetTextureData(
|
| + texture_id,
|
| + x, y, z,
|
| + mip_width, mip_height, depth,
|
| + level, face,
|
| + pitch,
|
| + 0, // slice_pitch
|
| + mip_size,
|
| + renderer->transfer_shm_id(),
|
| + allocator->GetOffset(mip_data));
|
| allocator->FreePendingToken(mip_data, helper->InsertToken());
|
| }
|
| // Updates a command buffer texture resource from a bitmap, rescaling if
|
| @@ -213,26 +202,21 @@
|
|
|
| size_t pitch = image::ComputeBufferSize(mip_width, 1, bitmap.format());
|
|
|
| - CommandBufferEntry args[10];
|
| - args[0].value_uint32 = texture_id;
|
| - args[1].value_uint32 =
|
| - get_texture_data_cmd::X::MakeValue(0) |
|
| - get_texture_data_cmd::Y::MakeValue(0);
|
| - args[2].value_uint32 =
|
| - get_texture_data_cmd::Width::MakeValue(mip_width) |
|
| - get_texture_data_cmd::Height::MakeValue(mip_height);
|
| - args[3].value_uint32 =
|
| - get_texture_data_cmd::Z::MakeValue(0) |
|
| - get_texture_data_cmd::Depth::MakeValue(1);
|
| - args[4].value_uint32 =
|
| - get_texture_data_cmd::Level::MakeValue(level) |
|
| - get_texture_data_cmd::Face::MakeValue(face);
|
| - args[5].value_uint32 = pitch;
|
| - args[6].value_uint32 = 0; // slice_pitch
|
| - args[7].value_uint32 = mip_size;
|
| - args[8].value_uint32 = renderer->transfer_shm_id();
|
| - args[9].value_uint32 = allocator->GetOffset(buffer);
|
| - helper->AddCommand(command_buffer::GET_TEXTURE_DATA, 10, args);
|
| + helper->GetTextureData(
|
| + texture_id,
|
| + 0,
|
| + 0,
|
| + 0,
|
| + mip_width,
|
| + mip_height,
|
| + 1,
|
| + level,
|
| + face,
|
| + pitch,
|
| + 0,
|
| + mip_size,
|
| + renderer->transfer_shm_id(),
|
| + allocator->GetOffset(buffer));
|
| helper->Finish();
|
| memcpy(bitmap.GetMipData(level), buffer, mip_size);
|
| allocator->Free(buffer);
|
| @@ -272,9 +256,7 @@
|
|
|
| Texture2DCB::~Texture2DCB() {
|
| if (resource_id_ != command_buffer::kInvalidResource) {
|
| - CommandBufferEntry args[1];
|
| - args[0].value_uint32 = resource_id_;
|
| - renderer_->helper()->AddCommand(command_buffer::DESTROY_TEXTURE, 1, args);
|
| + renderer_->helper()->DestroyTexture(resource_id_);
|
| }
|
| }
|
|
|
| @@ -301,16 +283,10 @@
|
| }
|
|
|
| ResourceID texture_id = renderer->texture_ids().AllocateID();
|
| - CommandBufferEntry args[3];
|
| - args[0].value_uint32 = texture_id;
|
| - args[1].value_uint32 =
|
| - create_texture_2d_cmd::Width::MakeValue(width) |
|
| - create_texture_2d_cmd::Height::MakeValue(height);
|
| - args[2].value_uint32 =
|
| - create_texture_2d_cmd::Levels::MakeValue(levels) |
|
| - create_texture_2d_cmd::Format::MakeValue(cb_format) |
|
| - create_texture_2d_cmd::Flags::MakeValue(enable_render_surfaces);
|
| - renderer->helper()->AddCommand(command_buffer::CREATE_TEXTURE_2D, 3, args);
|
| + renderer->helper()->CreateTexture2d(
|
| + texture_id,
|
| + width, height,
|
| + levels, cb_format, enable_render_surfaces);
|
|
|
| Texture2DCB *texture = new Texture2DCB(service_locator, texture_id,
|
| format, levels, width, height,
|
| @@ -496,9 +472,7 @@
|
|
|
| TextureCUBECB::~TextureCUBECB() {
|
| if (resource_id_ != command_buffer::kInvalidResource) {
|
| - CommandBufferEntry args[1];
|
| - args[0].value_uint32 = resource_id_;
|
| - renderer_->helper()->AddCommand(command_buffer::DESTROY_TEXTURE, 1, args);
|
| + renderer_->helper()->DestroyTexture(resource_id_);
|
| }
|
| }
|
|
|
| @@ -524,14 +498,10 @@
|
| }
|
|
|
| ResourceID texture_id = renderer->texture_ids().AllocateID();
|
| - CommandBufferEntry args[3];
|
| - args[0].value_uint32 = texture_id;
|
| - args[1].value_uint32 = create_texture_cube_cmd::Side::MakeValue(edge_length);
|
| - args[2].value_uint32 =
|
| - create_texture_cube_cmd::Levels::MakeValue(levels) |
|
| - create_texture_cube_cmd::Format::MakeValue(cb_format) |
|
| - create_texture_cube_cmd::Flags::MakeValue(enable_render_surfaces);
|
| - renderer->helper()->AddCommand(command_buffer::CREATE_TEXTURE_CUBE, 3, args);
|
| + renderer->helper()->CreateTextureCube(
|
| + texture_id,
|
| + edge_length,
|
| + levels, cb_format, enable_render_surfaces);
|
|
|
| TextureCUBECB* texture =
|
| new TextureCUBECB(service_locator, texture_id, format, levels,
|
|
|