123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- //*********************************************************
- //
- // Copyright (c) Microsoft Corporation.
- // Licensed under the MIT License (MIT).
- //
- //*********************************************************
- #ifndef __D3DX12_BARRIERS_H__
- #define __D3DX12_BARRIERS_H__
- #if defined( __cplusplus )
- #include "d3d12.h"
- //------------------------------------------------------------------------------------------------
- struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER
- {
- CD3DX12_RESOURCE_BARRIER() = default;
- explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) noexcept :
- D3D12_RESOURCE_BARRIER(o)
- {}
- static inline CD3DX12_RESOURCE_BARRIER Transition(
- _In_ ID3D12Resource* pResource,
- D3D12_RESOURCE_STATES stateBefore,
- D3D12_RESOURCE_STATES stateAfter,
- UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES,
- D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) noexcept
- {
- CD3DX12_RESOURCE_BARRIER result = {};
- D3D12_RESOURCE_BARRIER &barrier = result;
- result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
- result.Flags = flags;
- barrier.Transition.pResource = pResource;
- barrier.Transition.StateBefore = stateBefore;
- barrier.Transition.StateAfter = stateAfter;
- barrier.Transition.Subresource = subresource;
- return result;
- }
- static inline CD3DX12_RESOURCE_BARRIER Aliasing(
- _In_opt_ ID3D12Resource* pResourceBefore,
- _In_opt_ ID3D12Resource* pResourceAfter) noexcept
- {
- CD3DX12_RESOURCE_BARRIER result = {};
- D3D12_RESOURCE_BARRIER &barrier = result;
- result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING;
- barrier.Aliasing.pResourceBefore = pResourceBefore;
- barrier.Aliasing.pResourceAfter = pResourceAfter;
- return result;
- }
- static inline CD3DX12_RESOURCE_BARRIER UAV(
- _In_opt_ ID3D12Resource* pResource) noexcept
- {
- CD3DX12_RESOURCE_BARRIER result = {};
- D3D12_RESOURCE_BARRIER &barrier = result;
- result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV;
- barrier.UAV.pResource = pResource;
- return result;
- }
- };
- #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608)
- //================================================================================================
- // D3DX12 Enhanced Barrier Helpers
- //================================================================================================
- class CD3DX12_BARRIER_SUBRESOURCE_RANGE : public D3D12_BARRIER_SUBRESOURCE_RANGE
- {
- public:
- CD3DX12_BARRIER_SUBRESOURCE_RANGE() = default;
- CD3DX12_BARRIER_SUBRESOURCE_RANGE(const D3D12_BARRIER_SUBRESOURCE_RANGE &o) noexcept :
- D3D12_BARRIER_SUBRESOURCE_RANGE(o)
- {}
- explicit CD3DX12_BARRIER_SUBRESOURCE_RANGE(UINT Subresource) noexcept :
- D3D12_BARRIER_SUBRESOURCE_RANGE{ Subresource, 0, 0, 0, 0, 0 }
- {}
- CD3DX12_BARRIER_SUBRESOURCE_RANGE(
- UINT firstMipLevel,
- UINT numMips,
- UINT firstArraySlice,
- UINT numArraySlices,
- UINT firstPlane = 0,
- UINT numPlanes = 1) noexcept :
- D3D12_BARRIER_SUBRESOURCE_RANGE
- {
- firstMipLevel,
- numMips,
- firstArraySlice,
- numArraySlices,
- firstPlane,
- numPlanes
- }
- {}
- };
- class CD3DX12_GLOBAL_BARRIER : public D3D12_GLOBAL_BARRIER
- {
- public:
- CD3DX12_GLOBAL_BARRIER() = default;
- CD3DX12_GLOBAL_BARRIER(const D3D12_GLOBAL_BARRIER &o) noexcept : D3D12_GLOBAL_BARRIER(o){}
- CD3DX12_GLOBAL_BARRIER(
- D3D12_BARRIER_SYNC syncBefore,
- D3D12_BARRIER_SYNC syncAfter,
- D3D12_BARRIER_ACCESS accessBefore,
- D3D12_BARRIER_ACCESS accessAfter) noexcept : D3D12_GLOBAL_BARRIER {
- syncBefore,
- syncAfter,
- accessBefore,
- accessAfter
- }
- {}
- };
- class CD3DX12_BUFFER_BARRIER : public D3D12_BUFFER_BARRIER
- {
- public:
- CD3DX12_BUFFER_BARRIER() = default;
- CD3DX12_BUFFER_BARRIER(const D3D12_BUFFER_BARRIER &o) noexcept : D3D12_BUFFER_BARRIER(o){}
- CD3DX12_BUFFER_BARRIER(
- D3D12_BARRIER_SYNC syncBefore,
- D3D12_BARRIER_SYNC syncAfter,
- D3D12_BARRIER_ACCESS accessBefore,
- D3D12_BARRIER_ACCESS accessAfter,
- ID3D12Resource *pRes) noexcept : D3D12_BUFFER_BARRIER {
- syncBefore,
- syncAfter,
- accessBefore,
- accessAfter,
- pRes,
- 0, ULLONG_MAX
- }
- {}
- };
- class CD3DX12_TEXTURE_BARRIER : public D3D12_TEXTURE_BARRIER
- {
- public:
- CD3DX12_TEXTURE_BARRIER() = default;
- CD3DX12_TEXTURE_BARRIER(const D3D12_TEXTURE_BARRIER &o) noexcept : D3D12_TEXTURE_BARRIER(o){}
- CD3DX12_TEXTURE_BARRIER(
- D3D12_BARRIER_SYNC syncBefore,
- D3D12_BARRIER_SYNC syncAfter,
- D3D12_BARRIER_ACCESS accessBefore,
- D3D12_BARRIER_ACCESS accessAfter,
- D3D12_BARRIER_LAYOUT layoutBefore,
- D3D12_BARRIER_LAYOUT layoutAfter,
- ID3D12Resource *pRes,
- const D3D12_BARRIER_SUBRESOURCE_RANGE &subresources,
- D3D12_TEXTURE_BARRIER_FLAGS flag = D3D12_TEXTURE_BARRIER_FLAG_NONE) noexcept : D3D12_TEXTURE_BARRIER {
- syncBefore,
- syncAfter,
- accessBefore,
- accessAfter,
- layoutBefore,
- layoutAfter,
- pRes,
- subresources,
- flag
- }
- {}
- };
- class CD3DX12_BARRIER_GROUP : public D3D12_BARRIER_GROUP
- {
- public:
- CD3DX12_BARRIER_GROUP() = default;
- CD3DX12_BARRIER_GROUP(const D3D12_BARRIER_GROUP &o) noexcept : D3D12_BARRIER_GROUP(o){}
- CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_BUFFER_BARRIER *pBarriers) noexcept
- {
- Type = D3D12_BARRIER_TYPE_BUFFER;
- NumBarriers = numBarriers;
- pBufferBarriers = pBarriers;
- }
- CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_TEXTURE_BARRIER *pBarriers) noexcept
- {
- Type = D3D12_BARRIER_TYPE_TEXTURE;
- NumBarriers = numBarriers;
- pTextureBarriers = pBarriers;
- }
- CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_GLOBAL_BARRIER *pBarriers) noexcept
- {
- Type = D3D12_BARRIER_TYPE_GLOBAL;
- NumBarriers = numBarriers;
- pGlobalBarriers = pBarriers;
- }
- };
- #endif // D3D12_SDK_VERSION >= 608
- #endif // defined( __cplusplus )
- #endif // __D3DX12_BARRIERS_H__
|