Index: core/cross/command_buffer/sampler_cb.cc |
=================================================================== |
--- core/cross/command_buffer/sampler_cb.cc (revision 26638) |
+++ core/cross/command_buffer/sampler_cb.cc (working copy) |
@@ -86,15 +86,11 @@ |
renderer_(renderer) { |
DCHECK(renderer_); |
resource_id_ = renderer_->sampler_ids().AllocateID(); |
- CommandBufferEntry args[1]; |
- args[0].value_uint32 = resource_id_; |
- renderer_->helper()->AddCommand(command_buffer::CREATE_SAMPLER, 1, args); |
+ renderer_->helper()->CreateSampler(resource_id_); |
} |
SamplerCB::~SamplerCB() { |
- CommandBufferEntry args[1]; |
- args[0].value_uint32 = resource_id_; |
- renderer_->helper()->AddCommand(command_buffer::DESTROY_SAMPLER, 1, args); |
+ renderer_->helper()->DestroySampler(resource_id_); |
renderer_->sampler_ids().FreeID(resource_id_); |
} |
@@ -102,6 +98,7 @@ |
CommandBufferHelper *helper = renderer_->helper(); |
sampler::AddressingMode address_mode_u_cb = AddressModeToCB(address_mode_u()); |
sampler::AddressingMode address_mode_v_cb = AddressModeToCB(address_mode_v()); |
+ sampler::AddressingMode address_mode_w_cb = AddressModeToCB(address_mode_w()); |
sampler::FilteringMode mag_filter_cb = FilterTypeToCB(mag_filter()); |
sampler::FilteringMode min_filter_cb = FilterTypeToCB(min_filter()); |
sampler::FilteringMode mip_filter_cb = FilterTypeToCB(mip_filter()); |
@@ -113,24 +110,19 @@ |
if (min_filter() != Sampler::ANISOTROPIC) { |
max_anisotropy_cb = 1; |
} |
- CommandBufferEntry args[5]; |
- args[0].value_uint32 = resource_id_; |
- args[1].value_uint32 = |
- set_sampler_states::AddressingU::MakeValue(address_mode_u_cb) | |
- set_sampler_states::AddressingV::MakeValue(address_mode_v_cb) | |
- set_sampler_states::AddressingW::MakeValue(sampler::WRAP) | |
- set_sampler_states::MagFilter::MakeValue(mag_filter_cb) | |
- set_sampler_states::MinFilter::MakeValue(min_filter_cb) | |
- set_sampler_states::MipFilter::MakeValue(mip_filter_cb) | |
- set_sampler_states::MaxAnisotropy::MakeValue(max_anisotropy_cb); |
- helper->AddCommand(command_buffer::SET_SAMPLER_STATES, 2, args); |
+ helper->SetSamplerStates( |
+ resource_id_, |
+ address_mode_u_cb, |
+ address_mode_v_cb, |
+ address_mode_w_cb, |
+ mag_filter_cb, |
+ min_filter_cb, |
+ mip_filter_cb, |
+ max_anisotropy_cb); |
Float4 color = border_color(); |
- args[1].value_float = color[0]; |
- args[2].value_float = color[1]; |
- args[3].value_float = color[2]; |
- args[4].value_float = color[3]; |
- helper->AddCommand(command_buffer::SET_SAMPLER_BORDER_COLOR, 5, args); |
+ helper->SetSamplerBorderColor(resource_id_, |
+ color[0], color[1], color[2], color[3]); |
Texture *texture_object = texture(); |
if (!texture_object) { |
@@ -143,9 +135,9 @@ |
} |
if (texture_object) { |
- args[1].value_uint32 = |
- reinterpret_cast<ResourceID>(texture_object->GetTextureHandle()); |
- helper->AddCommand(command_buffer::SET_SAMPLER_TEXTURE, 2, args); |
+ helper->SetSamplerTexture( |
+ resource_id_, |
+ reinterpret_cast<uint32>(texture_object->GetTextureHandle())); |
} |
} |