+++ /dev/null
-#include "stdafx.h"\r
-/*\r
-* Copyright (c) 2007-2010 SlimDX Group\r
-* \r
-* Permission is hereby granted, free of charge, to any person obtaining a copy\r
-* of this software and associated documentation files (the "Software"), to deal\r
-* in the Software without restriction, including without limitation the rights\r
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-* copies of the Software, and to permit persons to whom the Software is\r
-* furnished to do so, subject to the following conditions:\r
-* \r
-* The above copyright notice and this permission notice shall be included in\r
-* all copies or substantial portions of the Software.\r
-* \r
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
-* THE SOFTWARE.\r
-*/\r
-\r
-#include <d3d11.h>\r
-\r
-#include "PipelineStatistics11.h"\r
-\r
-namespace SlimDX\r
-{\r
-namespace Direct3D11\r
-{\r
- PipelineStatistics::PipelineStatistics( const D3D11_QUERY_DATA_PIPELINE_STATISTICS& native )\r
- {\r
- InputAssemblerVertices = static_cast<long>( native.IAVertices );\r
- InputAssemblerPrimitives = static_cast<long>( native.IAPrimitives );\r
- VertexShaderInvocations = static_cast<long>( native.VSInvocations );\r
- GeometryShaderInvocations = static_cast<long>( native.GSInvocations );\r
- GeometryShaderPrimitives = static_cast<long>( native.GSPrimitives );\r
- RasterizedPrimitives = static_cast<long>( native.CInvocations );\r
- RenderedPrimitives = static_cast<long>( native.CPrimitives );\r
- PixelShaderInvocations = static_cast<long>( native.PSInvocations );\r
- HullShaderInvocations = static_cast<long>( native.HSInvocations );\r
- DomainShaderInvocations = static_cast<long>( native.DSInvocations );\r
- ComputeShaderInvocations = static_cast<long>( native.CSInvocations );\r
- }\r
- \r
- D3D11_QUERY_DATA_PIPELINE_STATISTICS PipelineStatistics::CreateNativeVersion()\r
- {\r
- D3D11_QUERY_DATA_PIPELINE_STATISTICS native;\r
- \r
- native.IAVertices = InputAssemblerVertices;\r
- native.IAPrimitives = InputAssemblerPrimitives;\r
- native.VSInvocations = VertexShaderInvocations;\r
- native.GSInvocations = GeometryShaderInvocations;\r
- native.GSPrimitives = GeometryShaderPrimitives;\r
- native.CInvocations = RasterizedPrimitives;\r
- native.CPrimitives = RenderedPrimitives;\r
- native.PSInvocations = PixelShaderInvocations;\r
- native.HSInvocations = HullShaderInvocations;\r
- native.DSInvocations = DomainShaderInvocations;\r
- native.CSInvocations = ComputeShaderInvocations;\r
-\r
- return native;\r
- }\r
-\r
- bool PipelineStatistics::operator == ( PipelineStatistics left, PipelineStatistics right )\r
- {\r
- return PipelineStatistics::Equals( left, right );\r
- }\r
-\r
- bool PipelineStatistics::operator != ( PipelineStatistics left, PipelineStatistics right )\r
- {\r
- return !PipelineStatistics::Equals( left, right );\r
- }\r
-\r
- int PipelineStatistics::GetHashCode()\r
- {\r
- return InputAssemblerVertices.GetHashCode() + InputAssemblerPrimitives.GetHashCode() + VertexShaderInvocations.GetHashCode()\r
- + GeometryShaderInvocations.GetHashCode() + GeometryShaderPrimitives.GetHashCode() + RasterizedPrimitives.GetHashCode() +\r
- RenderedPrimitives.GetHashCode() + PixelShaderInvocations.GetHashCode() + DomainShaderInvocations.GetHashCode() +\r
- HullShaderInvocations.GetHashCode() + ComputeShaderInvocations.GetHashCode();\r
- }\r
-\r
- bool PipelineStatistics::Equals( Object^ value )\r
- {\r
- if( value == nullptr )\r
- return false;\r
-\r
- if( value->GetType() != GetType() )\r
- return false;\r
-\r
- return Equals( safe_cast<PipelineStatistics>( value ) );\r
- }\r
-\r
- bool PipelineStatistics::Equals( PipelineStatistics value )\r
- {\r
- return ( InputAssemblerVertices == value.InputAssemblerVertices && InputAssemblerPrimitives == value.InputAssemblerPrimitives && VertexShaderInvocations == value.VertexShaderInvocations\r
- && GeometryShaderInvocations == value.GeometryShaderInvocations && GeometryShaderPrimitives == value.GeometryShaderPrimitives &&\r
- RasterizedPrimitives == value.RasterizedPrimitives && RenderedPrimitives == value.RenderedPrimitives &&\r
- PixelShaderInvocations == value.PixelShaderInvocations && DomainShaderInvocations == value.DomainShaderInvocations &&\r
- HullShaderInvocations == value.HullShaderInvocations && ComputeShaderInvocations == value.ComputeShaderInvocations );\r
- }\r
-\r
- bool PipelineStatistics::Equals( PipelineStatistics% value1, PipelineStatistics% value2 )\r
- {\r
- return ( value1.InputAssemblerVertices == value2.InputAssemblerVertices && value1.InputAssemblerPrimitives == value2.InputAssemblerPrimitives && value1.VertexShaderInvocations == value2.VertexShaderInvocations\r
- && value1.GeometryShaderInvocations == value2.GeometryShaderInvocations && value1.GeometryShaderPrimitives == value2.GeometryShaderPrimitives &&\r
- value1.RasterizedPrimitives == value2.RasterizedPrimitives && value1.RenderedPrimitives == value2.RenderedPrimitives &&\r
- value1.PixelShaderInvocations == value2.PixelShaderInvocations && value1.DomainShaderInvocations == value2.DomainShaderInvocations &&\r
- value1.HullShaderInvocations == value2.HullShaderInvocations && value1.ComputeShaderInvocations == value2.ComputeShaderInvocations );\r
- }\r
-}\r
-}\r