| // Copyright 2021 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "media/capture/video/win/d3d_capture_test_utils.h" |
| |
| namespace media { |
| |
| MockD3D11DeviceContext::MockD3D11DeviceContext() = default; |
| MockD3D11DeviceContext::~MockD3D11DeviceContext() = default; |
| |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSSetConstantBuffers( |
| UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* constant_buffers_out) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSSetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView* const* shader_resource_views_out) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSSetShader(ID3D11PixelShader* pixel_shader, |
| ID3D11ClassInstance* const* class_instances, |
| UINT num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSSetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState* const* samplers_out) { |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSSetShader(ID3D11VertexShader* vertex_shader, |
| ID3D11ClassInstance* const* class_instances, |
| UINT num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DrawIndexed(UINT index_count, |
| UINT start_index_location, |
| INT base_vertex_location) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::Draw(UINT vertex_count, UINT start_vertex_location) {} |
| IFACEMETHODIMP MockD3D11DeviceContext::Map( |
| ID3D11Resource* resource, |
| UINT subresource, |
| D3D11_MAP MapType, |
| UINT MapFlags, |
| D3D11_MAPPED_SUBRESOURCE* mapped_resource) { |
| return OnMap(resource, subresource, MapType, MapFlags, mapped_resource); |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::Unmap(ID3D11Resource* resource, UINT subresource) { |
| OnUnmap(resource, subresource); |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSSetConstantBuffers( |
| UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IASetInputLayout(ID3D11InputLayout* input_layout) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IASetVertexBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* vertex_buffers, |
| const UINT* strides, |
| const UINT* offsets) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IASetIndexBuffer(ID3D11Buffer* index_buffer, |
| DXGI_FORMAT format, |
| UINT offset) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DrawIndexedInstanced(UINT index_count_per_instance, |
| UINT instance_count, |
| UINT start_index_location, |
| INT base_vertex_location, |
| UINT start_instance_location) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DrawInstanced(UINT vertex_count_per_instance, |
| UINT instance_count, |
| UINT start_vertex_location, |
| UINT start_instance_location) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSSetConstantBuffers( |
| UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSSetShader(ID3D11GeometryShader* shader, |
| ID3D11ClassInstance* const* class_instances, |
| UINT num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IASetPrimitiveTopology( |
| D3D11_PRIMITIVE_TOPOLOGY topology) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSSetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView* const* shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSSetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState* const* samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::Begin(ID3D11Asynchronous* async) {} |
| IFACEMETHODIMP_(void) MockD3D11DeviceContext::End(ID3D11Asynchronous* async) {} |
| IFACEMETHODIMP MockD3D11DeviceContext::GetData(ID3D11Asynchronous* async, |
| void* data, |
| UINT data_size, |
| UINT get_data_flags) { |
| return E_NOTIMPL; |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::SetPredication(ID3D11Predicate* pPredicate, |
| BOOL PredicateValue) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSSetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView* const* shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSSetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState* const* samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMSetRenderTargets( |
| UINT num_views, |
| ID3D11RenderTargetView* const* render_target_views, |
| ID3D11DepthStencilView* depth_stencil_view) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews( |
| UINT num_rtvs, |
| ID3D11RenderTargetView* const* render_target_views, |
| ID3D11DepthStencilView* depth_stencil_view, |
| UINT uav_start_slot, |
| UINT num_uavs, |
| ID3D11UnorderedAccessView* const* unordered_access_views, |
| const UINT* uav_initial_counts) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMSetBlendState(ID3D11BlendState* blend_state, |
| const FLOAT blend_factor[4], |
| UINT sample_mask) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMSetDepthStencilState( |
| ID3D11DepthStencilState* depth_stencil_state, |
| UINT stencil_ref) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::SOSetTargets(UINT num_buffers, |
| ID3D11Buffer* const* so_targets, |
| const UINT* offsets) {} |
| IFACEMETHODIMP_(void) MockD3D11DeviceContext::DrawAuto() {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DrawIndexedInstancedIndirect( |
| ID3D11Buffer* buffer_for_args, |
| UINT aligned_byte_offset_for_args) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DrawInstancedIndirect( |
| ID3D11Buffer* buffer_for_args, |
| UINT aligned_byte_offset_for_args) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::Dispatch(UINT thread_group_count_x, |
| UINT thread_group_count_y, |
| UINT thread_group_count_z) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DispatchIndirect(ID3D11Buffer* buffer_for_args, |
| UINT aligned_byte_offset_for_args) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::RSSetState(ID3D11RasterizerState* rasterizer_state) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::RSSetViewports(UINT num_viewports, |
| const D3D11_VIEWPORT* viewports) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::RSSetScissorRects(UINT num_rects, |
| const D3D11_RECT* rects) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CopySubresourceRegion(ID3D11Resource* dest_resource, |
| UINT dest_subresource, |
| UINT dest_x, |
| UINT dest_y, |
| UINT dest_z, |
| ID3D11Resource* source_resource, |
| UINT source_subresource, |
| const D3D11_BOX* source_box) { |
| OnCopySubresourceRegion(dest_resource, dest_subresource, dest_x, dest_y, |
| dest_z, source_resource, source_subresource, |
| source_box); |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CopyResource(ID3D11Resource* dest_resource, |
| ID3D11Resource* source_resource) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::UpdateSubresource(ID3D11Resource* dest_resource, |
| UINT dest_subresource, |
| const D3D11_BOX* dest_box, |
| const void* source_data, |
| UINT source_row_pitch, |
| UINT source_depth_pitch) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CopyStructureCount( |
| ID3D11Buffer* dest_buffer, |
| UINT dest_aligned_byte_offset, |
| ID3D11UnorderedAccessView* source_view) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::ClearRenderTargetView( |
| ID3D11RenderTargetView* render_target_view, |
| const FLOAT color_rgba[4]) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::ClearUnorderedAccessViewUint( |
| ID3D11UnorderedAccessView* unordered_access_view, |
| const UINT values[4]) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::ClearUnorderedAccessViewFloat( |
| ID3D11UnorderedAccessView* unordered_access_view, |
| const FLOAT values[4]) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::ClearDepthStencilView( |
| ID3D11DepthStencilView* depth_stencil_view, |
| UINT clear_flags, |
| FLOAT depth, |
| UINT8 stencil) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GenerateMips( |
| ID3D11ShaderResourceView* shader_resource_view) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::SetResourceMinLOD(ID3D11Resource* resource, |
| FLOAT min_lod) {} |
| IFACEMETHODIMP_(FLOAT) |
| MockD3D11DeviceContext::GetResourceMinLOD(ID3D11Resource* resource) { |
| return 0; |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::ResolveSubresource(ID3D11Resource* dest_resource, |
| UINT dest_subresource, |
| ID3D11Resource* source_resource, |
| UINT source_subresource, |
| DXGI_FORMAT format) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::ExecuteCommandList(ID3D11CommandList* command_list, |
| BOOL restore_context_state) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSSetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView* const* shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSSetShader(ID3D11HullShader* hull_shader, |
| ID3D11ClassInstance* const* class_instances, |
| UINT num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSSetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState* const* samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSSetConstantBuffers( |
| UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSSetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView* const* shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSSetShader(ID3D11DomainShader* domain_shader, |
| ID3D11ClassInstance* const* class_instances, |
| UINT num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSSetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState* const* samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSSetConstantBuffers( |
| UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSSetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView* const* shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSSetUnorderedAccessViews( |
| UINT start_slot, |
| UINT num_uavs, |
| ID3D11UnorderedAccessView* const* unordered_access_views, |
| const UINT* uav_initial_counts) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSSetShader(ID3D11ComputeShader* computer_shader, |
| ID3D11ClassInstance* const* class_instances, |
| UINT num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSSetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState* const* samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSSetConstantBuffers( |
| UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer* const* constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSGetConstantBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSGetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView** shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSGetShader(ID3D11PixelShader** pixel_shader, |
| ID3D11ClassInstance** class_instances, |
| UINT* num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSGetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState** samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSGetShader(ID3D11VertexShader** vertex_shader, |
| ID3D11ClassInstance** class_instances, |
| UINT* num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::PSGetConstantBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IAGetInputLayout(ID3D11InputLayout** input_layout) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IAGetVertexBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** vertex_buffers, |
| UINT* strides, |
| UINT* offsets) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IAGetIndexBuffer(ID3D11Buffer** index_buffer, |
| DXGI_FORMAT* format, |
| UINT* offset) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSGetConstantBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSGetShader(ID3D11GeometryShader** geometry_shader, |
| ID3D11ClassInstance** class_instances, |
| UINT* num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::IAGetPrimitiveTopology( |
| D3D11_PRIMITIVE_TOPOLOGY* topology) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSGetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView** shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::VSGetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState** samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GetPredication(ID3D11Predicate** predicate, |
| BOOL* predicate_value) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSGetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView** shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GSGetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState** samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMGetRenderTargets( |
| UINT num_views, |
| ID3D11RenderTargetView** render_target_views, |
| ID3D11DepthStencilView** depth_stencil_view) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMGetRenderTargetsAndUnorderedAccessViews( |
| UINT num_rtvs, |
| ID3D11RenderTargetView** render_target_views, |
| ID3D11DepthStencilView** depth_stencil_view, |
| UINT uav_start_slot, |
| UINT num_uavs, |
| ID3D11UnorderedAccessView** unordered_access_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMGetBlendState(ID3D11BlendState** blend_state, |
| FLOAT blend_factor[4], |
| UINT* sample_mask) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::OMGetDepthStencilState( |
| ID3D11DepthStencilState** depth_stencil_state, |
| UINT* stencil_ref) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::SOGetTargets(UINT num_buffers, |
| ID3D11Buffer** so_targets) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::RSGetState(ID3D11RasterizerState** rasterizer_state) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::RSGetViewports(UINT* num_viewports, |
| D3D11_VIEWPORT* viewports) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::RSGetScissorRects(UINT* num_rects, D3D11_RECT* rects) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSGetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView** shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSGetShader(ID3D11HullShader** hull_shader, |
| ID3D11ClassInstance** class_instances, |
| UINT* num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSGetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState** samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::HSGetConstantBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSGetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView** shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSGetShader(ID3D11DomainShader** domain_shader, |
| ID3D11ClassInstance** class_instances, |
| UINT* num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSGetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState** samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::DSGetConstantBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** constant_buffers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSGetShaderResources( |
| UINT start_slot, |
| UINT num_views, |
| ID3D11ShaderResourceView** shader_resource_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSGetUnorderedAccessViews( |
| UINT start_slot, |
| UINT num_uavs, |
| ID3D11UnorderedAccessView** unordered_access_views) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSGetShader(ID3D11ComputeShader** pcomputer_shader, |
| ID3D11ClassInstance** class_instances, |
| UINT* num_class_instances) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSGetSamplers(UINT start_slot, |
| UINT num_samplers, |
| ID3D11SamplerState** samplers) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::CSGetConstantBuffers(UINT start_slot, |
| UINT num_buffers, |
| ID3D11Buffer** constant_buffers) {} |
| IFACEMETHODIMP_(void) MockD3D11DeviceContext::ClearState() {} |
| IFACEMETHODIMP_(void) MockD3D11DeviceContext::Flush() {} |
| IFACEMETHODIMP_(D3D11_DEVICE_CONTEXT_TYPE) MockD3D11DeviceContext::GetType() { |
| return D3D11_DEVICE_CONTEXT_IMMEDIATE; |
| } |
| IFACEMETHODIMP_(UINT) MockD3D11DeviceContext::GetContextFlags() { |
| return 0; |
| } |
| IFACEMETHODIMP MockD3D11DeviceContext::FinishCommandList( |
| BOOL restore_deferred_context_state, |
| ID3D11CommandList** command_list) { |
| return E_NOTIMPL; |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11DeviceContext::GetDevice(ID3D11Device** device) {} |
| IFACEMETHODIMP MockD3D11DeviceContext::GetPrivateData(REFGUID guid, |
| UINT* data_size, |
| void* data) { |
| return E_NOTIMPL; |
| } |
| IFACEMETHODIMP MockD3D11DeviceContext::SetPrivateData(REFGUID guid, |
| UINT data_size, |
| const void* data) { |
| return E_NOTIMPL; |
| } |
| IFACEMETHODIMP MockD3D11DeviceContext::SetPrivateDataInterface( |
| REFGUID guid, |
| const IUnknown* data) { |
| return E_NOTIMPL; |
| } |
| |
| MockD3D11Device::MockD3D11Device() |
| : mock_immediate_context_(new MockD3D11DeviceContext()) {} |
| MockD3D11Device::~MockD3D11Device() {} |
| |
| IFACEMETHODIMP MockD3D11Device::CreateBuffer( |
| const D3D11_BUFFER_DESC* desc, |
| const D3D11_SUBRESOURCE_DATA* initial_data, |
| ID3D11Buffer** ppBuffer) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateTexture1D( |
| const D3D11_TEXTURE1D_DESC* desc, |
| const D3D11_SUBRESOURCE_DATA* initial_data, |
| ID3D11Texture1D** texture1D) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateTexture2D( |
| const D3D11_TEXTURE2D_DESC* desc, |
| const D3D11_SUBRESOURCE_DATA* initial_data, |
| ID3D11Texture2D** texture2D) { |
| Microsoft::WRL::ComPtr<MockD3D11Texture2D> mock_texture( |
| new MockD3D11Texture2D()); |
| HRESULT hr = mock_texture.CopyTo(IID_PPV_ARGS(texture2D)); |
| OnCreateTexture2D(desc, initial_data, texture2D); |
| return hr; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateTexture3D( |
| const D3D11_TEXTURE3D_DESC* desc, |
| const D3D11_SUBRESOURCE_DATA* initial_data, |
| ID3D11Texture3D** texture2D) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateShaderResourceView( |
| ID3D11Resource* resource, |
| const D3D11_SHADER_RESOURCE_VIEW_DESC* desc, |
| ID3D11ShaderResourceView** srv) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateUnorderedAccessView( |
| ID3D11Resource* resource, |
| const D3D11_UNORDERED_ACCESS_VIEW_DESC* desc, |
| ID3D11UnorderedAccessView** uaview) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateRenderTargetView( |
| ID3D11Resource* resource, |
| const D3D11_RENDER_TARGET_VIEW_DESC* desc, |
| ID3D11RenderTargetView** rtv) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateDepthStencilView( |
| ID3D11Resource* resource, |
| const D3D11_DEPTH_STENCIL_VIEW_DESC* desc, |
| ID3D11DepthStencilView** depth_stencil_view) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateInputLayout( |
| const D3D11_INPUT_ELEMENT_DESC* input_element_descs, |
| UINT num_elements, |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11InputLayout** input_layout) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateVertexShader( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11VertexShader** vertex_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateGeometryShader( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11GeometryShader** geometry_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateGeometryShaderWithStreamOutput( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| const D3D11_SO_DECLARATION_ENTRY* so_declaration, |
| UINT num_entries, |
| const UINT* buffer_strides, |
| UINT num_strides, |
| UINT rasterized_stream, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11GeometryShader** geometry_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreatePixelShader( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11PixelShader** pixel_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateHullShader( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11HullShader** hull_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateDomainShader( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11DomainShader** domain_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateComputeShader( |
| const void* shader_bytecode, |
| SIZE_T bytecode_length, |
| ID3D11ClassLinkage* class_linkage, |
| ID3D11ComputeShader** compute_shader) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateClassLinkage( |
| ID3D11ClassLinkage** linkage) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateBlendState( |
| const D3D11_BLEND_DESC* blend_state_desc, |
| ID3D11BlendState** blend_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateDepthStencilState( |
| const D3D11_DEPTH_STENCIL_DESC* depth_stencil_desc, |
| ID3D11DepthStencilState** depth_stencil_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateRasterizerState( |
| const D3D11_RASTERIZER_DESC* rasterizer_desc, |
| ID3D11RasterizerState** rasterizer_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateSamplerState( |
| const D3D11_SAMPLER_DESC* sampler_desc, |
| ID3D11SamplerState** sampler_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateQuery(const D3D11_QUERY_DESC* query_desc, |
| ID3D11Query** query) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreatePredicate( |
| const D3D11_QUERY_DESC* predicate_desc, |
| ID3D11Predicate** predicate) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateCounter( |
| const D3D11_COUNTER_DESC* counter_desc, |
| ID3D11Counter** counter) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateDeferredContext( |
| UINT context_flags, |
| ID3D11DeviceContext** deferred_context) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::OpenSharedResource(HANDLE resource, |
| REFIID returned_interface, |
| void** resource_out) { |
| return DoOpenSharedResource1(resource, returned_interface, resource_out); |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CheckFormatSupport(DXGI_FORMAT format, |
| UINT* format_support) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CheckMultisampleQualityLevels( |
| DXGI_FORMAT format, |
| UINT sample_count, |
| UINT* num_quality_levels) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP_(void) |
| MockD3D11Device::CheckCounterInfo(D3D11_COUNTER_INFO* counter_info) {} |
| |
| IFACEMETHODIMP MockD3D11Device::CheckCounter(const D3D11_COUNTER_DESC* desc, |
| D3D11_COUNTER_TYPE* type, |
| UINT* active_counters, |
| LPSTR name, |
| UINT* name_length, |
| LPSTR units, |
| UINT* units_length, |
| LPSTR description, |
| UINT* description_length) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CheckFeatureSupport( |
| D3D11_FEATURE feature, |
| void* feature_support_data, |
| UINT feature_support_data_size) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::GetPrivateData(REFGUID guid, |
| UINT* data_size, |
| void* data) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::SetPrivateData(REFGUID guid, |
| UINT data_size, |
| const void* data) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::SetPrivateDataInterface(REFGUID guid, |
| const IUnknown* data) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP_(D3D_FEATURE_LEVEL) MockD3D11Device::GetFeatureLevel() { |
| return D3D_FEATURE_LEVEL_11_1; |
| } |
| |
| IFACEMETHODIMP_(UINT) MockD3D11Device::GetCreationFlags() { |
| return 0; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::GetDeviceRemovedReason() { |
| return OnGetDeviceRemovedReason(); |
| } |
| |
| IFACEMETHODIMP_(void) |
| MockD3D11Device::GetImmediateContext(ID3D11DeviceContext** immediate_context) { |
| mock_immediate_context_.CopyTo(immediate_context); |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::SetExceptionMode(UINT raise_flags) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP_(UINT) MockD3D11Device::GetExceptionMode() { |
| return 0; |
| } |
| |
| IFACEMETHODIMP_(void) |
| MockD3D11Device::GetImmediateContext1( |
| ID3D11DeviceContext1** immediate_context) {} |
| |
| IFACEMETHODIMP MockD3D11Device::CreateDeferredContext1( |
| UINT context_flags, |
| ID3D11DeviceContext1** deferred_context) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateBlendState1( |
| const D3D11_BLEND_DESC1* blend_state_desc, |
| ID3D11BlendState1** blend_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateRasterizerState1( |
| const D3D11_RASTERIZER_DESC1* rasterizer_desc, |
| ID3D11RasterizerState1** rasterizer_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::CreateDeviceContextState( |
| UINT flags, |
| const D3D_FEATURE_LEVEL* feature_levels, |
| UINT feature_level_count, |
| UINT sdk_version, |
| REFIID emulated_interface, |
| D3D_FEATURE_LEVEL* chosen_feature_level, |
| ID3DDeviceContextState** context_state) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::OpenSharedResource1(HANDLE resource, |
| REFIID returned_interface, |
| void** resource_out) { |
| return DoOpenSharedResource1(resource, returned_interface, resource_out); |
| } |
| |
| IFACEMETHODIMP MockD3D11Device::OpenSharedResourceByName( |
| LPCWSTR name, |
| DWORD desired_access, |
| REFIID returned_interface, |
| void** resource_out) { |
| return E_NOTIMPL; |
| } |
| |
| // Setup default actions for mocked methods |
| void MockD3D11Device::SetupDefaultMocks() { |
| ON_CALL(*this, OnGetDeviceRemovedReason).WillByDefault([]() { return S_OK; }); |
| ON_CALL(*this, DoOpenSharedResource1) |
| .WillByDefault([](HANDLE, REFIID, void**) { return E_NOTIMPL; }); |
| ON_CALL(*mock_immediate_context_.Get(), OnMap) |
| .WillByDefault([](ID3D11Resource*, UINT, D3D11_MAP, UINT, |
| D3D11_MAPPED_SUBRESOURCE*) { return E_NOTIMPL; }); |
| ON_CALL(*this, OnCreateTexture2D) |
| .WillByDefault([](const D3D11_TEXTURE2D_DESC*, |
| const D3D11_SUBRESOURCE_DATA*, |
| ID3D11Texture2D** texture) { |
| static_cast<MockD3D11Texture2D*>(*texture)->SetupDefaultMocks(); |
| return S_OK; |
| }); |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::CreateSubresourceSurface( |
| UINT index, |
| IDXGISurface2** surface) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::CreateSharedHandle( |
| const SECURITY_ATTRIBUTES* attributes, |
| DWORD access, |
| LPCWSTR name, |
| HANDLE* handle) { |
| // Need to provide a real handle to client, so create an event handle |
| *handle = CreateEvent(nullptr, FALSE, FALSE, nullptr); |
| return S_OK; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::GetSharedHandle(HANDLE* shared_handle) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::GetUsage(DXGI_USAGE* usage) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::SetEvictionPriority(UINT eviction_priority) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::GetEvictionPriority(UINT* eviction_priority) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::GetDevice(REFIID riid, void** device) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::SetPrivateData(REFGUID name, |
| UINT data_size, |
| const void* data) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::SetPrivateDataInterface( |
| REFGUID name, |
| const IUnknown* unknown) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::GetPrivateData(REFGUID name, |
| UINT* data_size, |
| void* data) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::GetParent(REFIID riid, void** parent) { |
| return E_NOTIMPL; |
| } |
| |
| IFACEMETHODIMP MockDXGIResource::AcquireSync(UINT64 key, DWORD milliseconds) { |
| return S_OK; |
| } |
| IFACEMETHODIMP MockDXGIResource::ReleaseSync(UINT64 key) { |
| return S_OK; |
| } |
| |
| MockDXGIResource::~MockDXGIResource() {} |
| |
| MockD3D11Texture2D::MockD3D11Texture2D(D3D11_TEXTURE2D_DESC desc, |
| ID3D11Device* device) |
| : desc_(desc), device_(device) {} |
| MockD3D11Texture2D::MockD3D11Texture2D() {} |
| |
| IFACEMETHODIMP MockD3D11Texture2D::QueryInterface(REFIID riid, void** object) { |
| if (riid == __uuidof(IDXGIResource1) || riid == __uuidof(IDXGIKeyedMutex)) { |
| if (!mock_resource_) { |
| mock_resource_ = new MockDXGIResource(); |
| } |
| return mock_resource_.CopyTo(riid, object); |
| } |
| return MockInterface::QueryInterface(riid, object); |
| } |
| |
| IFACEMETHODIMP_(void) MockD3D11Texture2D::GetDesc(D3D11_TEXTURE2D_DESC* desc) { |
| *desc = desc_; |
| } |
| IFACEMETHODIMP_(void) |
| MockD3D11Texture2D::GetType(D3D11_RESOURCE_DIMENSION* resource_dimension) {} |
| IFACEMETHODIMP_(void) |
| MockD3D11Texture2D::SetEvictionPriority(UINT eviction_priority) {} |
| IFACEMETHODIMP_(UINT) MockD3D11Texture2D::GetEvictionPriority() { |
| return 0; |
| } |
| IFACEMETHODIMP_(void) MockD3D11Texture2D::GetDevice(ID3D11Device** device) { |
| if (device_) { |
| device_.CopyTo(device); |
| } |
| } |
| IFACEMETHODIMP MockD3D11Texture2D::GetPrivateData(REFGUID guid, |
| UINT* data_size, |
| void* data) { |
| return E_NOTIMPL; |
| } |
| IFACEMETHODIMP MockD3D11Texture2D::SetPrivateDataInterface( |
| REFGUID guid, |
| const IUnknown* data) { |
| return E_NOTIMPL; |
| } |
| |
| void MockD3D11Texture2D::SetupDefaultMocks() { |
| ON_CALL(*this, SetPrivateData(testing::_, testing::_, testing::_)) |
| .WillByDefault(testing::Return(E_NOTIMPL)); |
| ON_CALL(*this, |
| SetPrivateData(WKPDID_D3DDebugObjectName, testing::_, testing::_)) |
| .WillByDefault(testing::Return(S_OK)); |
| } |
| |
| MockD3D11Texture2D::~MockD3D11Texture2D() {} |
| |
| } // namespace media |