X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=helpers%2Fd3d10size.hpp;h=d15e2ec223e76ea1c93973ab7f92444205a7f6ce;hb=621d0b3f841872e7d73465a7ec55afebad17bfdb;hp=92d4544e9b37af4cd4692b3621f5c53900962519;hpb=cbe34810938b91291bc46a5de5535057b869f750;p=apitrace diff --git a/helpers/d3d10size.hpp b/helpers/d3d10size.hpp index 92d4544..d15e2ec 100644 --- a/helpers/d3d10size.hpp +++ b/helpers/d3d10size.hpp @@ -108,10 +108,10 @@ _calcSubresourceSize(const D3D10_TEXTURE3D_DESC *pDesc, UINT Subresource, UINT R } static inline void -_getMapInfo(ID3D10Buffer *pResource, D3D10_MAP MapType, UINT MapFlags, void * * ppData, - void * & pMappedData, size_t & MappedSize) { - pMappedData = 0; - MappedSize = 0; +_getMapDesc(ID3D10Buffer *pResource, D3D10_MAP MapType, UINT MapFlags, void * * ppData, + _MAP_DESC & MapDesc) { + MapDesc.pData = 0; + MapDesc.Size = 0; if (MapType == D3D10_MAP_READ) { return; @@ -120,15 +120,15 @@ _getMapInfo(ID3D10Buffer *pResource, D3D10_MAP MapType, UINT MapFlags, void * * D3D10_BUFFER_DESC Desc; pResource->GetDesc(&Desc); - pMappedData = *ppData; - MappedSize = Desc.ByteWidth; + MapDesc.pData = *ppData; + MapDesc.Size = Desc.ByteWidth; } static inline void -_getMapInfo(ID3D10Texture1D *pResource, UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void * * ppData, - void * & pMappedData, size_t & MappedSize) { - pMappedData = 0; - MappedSize = 0; +_getMapDesc(ID3D10Texture1D *pResource, UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void * * ppData, + _MAP_DESC & MapDesc) { + MapDesc.pData = 0; + MapDesc.Size = 0; if (MapType == D3D10_MAP_READ) { return; @@ -137,15 +137,15 @@ _getMapInfo(ID3D10Texture1D *pResource, UINT Subresource, D3D10_MAP MapType, UIN D3D10_TEXTURE1D_DESC Desc; pResource->GetDesc(&Desc); - pMappedData = *ppData; - MappedSize = _calcSubresourceSize(&Desc, Subresource); + MapDesc.pData = *ppData; + MapDesc.Size = _calcSubresourceSize(&Desc, Subresource); } static inline void -_getMapInfo(ID3D10Texture2D *pResource, UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D * pMappedTex2D, - void * & pMappedData, size_t & MappedSize) { - pMappedData = 0; - MappedSize = 0; +_getMapDesc(ID3D10Texture2D *pResource, UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D * pMappedTex2D, + _MAP_DESC & MapDesc) { + MapDesc.pData = 0; + MapDesc.Size = 0; if (MapType == D3D10_MAP_READ) { return; @@ -154,15 +154,15 @@ _getMapInfo(ID3D10Texture2D *pResource, UINT Subresource, D3D10_MAP MapType, UIN D3D10_TEXTURE2D_DESC Desc; pResource->GetDesc(&Desc); - pMappedData = pMappedTex2D->pData; - MappedSize = _calcSubresourceSize(&Desc, Subresource, pMappedTex2D->RowPitch); + MapDesc.pData = pMappedTex2D->pData; + MapDesc.Size = _calcSubresourceSize(&Desc, Subresource, pMappedTex2D->RowPitch); } static inline void -_getMapInfo(ID3D10Texture3D *pResource, UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D * pMappedTex3D, - void * & pMappedData, size_t & MappedSize) { - pMappedData = 0; - MappedSize = 0; +_getMapDesc(ID3D10Texture3D *pResource, UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D * pMappedTex3D, + _MAP_DESC & MapDesc) { + MapDesc.pData = 0; + MapDesc.Size = 0; if (MapType == D3D10_MAP_READ) { return; @@ -171,8 +171,8 @@ _getMapInfo(ID3D10Texture3D *pResource, UINT Subresource, D3D10_MAP MapType, UIN D3D10_TEXTURE3D_DESC Desc; pResource->GetDesc(&Desc); - pMappedData = pMappedTex3D->pData; - MappedSize = _calcSubresourceSize(&Desc, Subresource, pMappedTex3D->RowPitch, pMappedTex3D->DepthPitch); + MapDesc.pData = pMappedTex3D->pData; + MapDesc.Size = _calcSubresourceSize(&Desc, Subresource, pMappedTex3D->RowPitch, pMappedTex3D->DepthPitch); } @@ -238,6 +238,12 @@ _calcSubresourceSize(ID3D10Resource *pDstResource, UINT DstSubresource, const D3 return 0; } + if (pDstBox) { + Width = pDstBox->right - pDstBox->left; + Height = pDstBox->bottom - pDstBox->top; + Depth = pDstBox->back - pDstBox->front; + } + return _calcMipDataSize(MipLevel, Format, Width, Height, SrcRowPitch, Depth, SrcDepthPitch); }