[host] dxgi: rename cpu to tex

This commit is contained in:
Geoffrey McRae 2023-11-07 21:25:56 +11:00
parent 772e0e3b4a
commit f991f994f0

View File

@ -36,15 +36,13 @@ struct D3D11Backend
struct struct
{ {
uint64_t copyTime; uint64_t copyTime;
ID3D11Texture2D ** cpu; ID3D11Texture2D ** tex;
} }
texture[0]; texture[0];
}; };
static struct D3D11Backend * this = NULL; static struct D3D11Backend * this = NULL;
static void d3d11_free(void);
static bool d3d11_create(unsigned textures) static bool d3d11_create(unsigned textures)
{ {
DEBUG_ASSERT(!this); DEBUG_ASSERT(!this);
@ -72,7 +70,7 @@ static bool d3d11_configure(
{ {
HRESULT status; HRESULT status;
D3D11_TEXTURE2D_DESC cpuTexDesc = D3D11_TEXTURE2D_DESC texTexDesc =
{ {
.Width = width, .Width = width,
.Height = height, .Height = height,
@ -87,22 +85,22 @@ static bool d3d11_configure(
.MiscFlags = 0 .MiscFlags = 0
}; };
comRef_defineLocal(ID3D11Texture2D, cpu); comRef_defineLocal(ID3D11Texture2D, tex);
for(int i = 0; i < this->textures; ++i) for(int i = 0; i < this->textures; ++i)
{ {
status = ID3D11Device_CreateTexture2D(dxgi_getDevice(), &cpuTexDesc, NULL, cpu); status = ID3D11Device_CreateTexture2D(dxgi_getDevice(), &texTexDesc, NULL, tex);
if (FAILED(status)) if (FAILED(status))
{ {
DEBUG_WINERROR("Failed to create CPU texture", status); DEBUG_WINERROR("Failed to create CPU texture", status);
goto fail; goto fail;
} }
comRef_toGlobal(this->texture[i].cpu, cpu); comRef_toGlobal(this->texture[i].tex, tex);
} }
// map the texture simply to get the pitch and stride // map the texture simply to get the pitch and stride
D3D11_MAPPED_SUBRESOURCE mapping; D3D11_MAPPED_SUBRESOURCE mapping;
status = ID3D11DeviceContext_Map(dxgi_getContext(), status = ID3D11DeviceContext_Map(dxgi_getContext(),
*(ID3D11Resource **)this->texture[0].cpu, 0, D3D11_MAP_READ, 0, &mapping); *(ID3D11Resource **)this->texture[0].tex, 0, D3D11_MAP_READ, 0, &mapping);
if (FAILED(status)) if (FAILED(status))
{ {
@ -111,7 +109,7 @@ static bool d3d11_configure(
} }
ID3D11DeviceContext_Unmap(dxgi_getContext(), ID3D11DeviceContext_Unmap(dxgi_getContext(),
*(ID3D11Resource **)this->texture[0].cpu, 0); *(ID3D11Resource **)this->texture[0].tex, 0);
*pitch = mapping.RowPitch; *pitch = mapping.RowPitch;
return true; return true;
@ -139,7 +137,7 @@ static bool d3d11_preCopy(ID3D11Texture2D * src, unsigned textureIndex)
static bool d3d11_copyFull(ID3D11Texture2D * src, unsigned textureIndex) static bool d3d11_copyFull(ID3D11Texture2D * src, unsigned textureIndex)
{ {
ID3D11Texture2D * dst = *this->texture[textureIndex].cpu; ID3D11Texture2D * dst = *this->texture[textureIndex].tex;
ID3D11DeviceContext_CopyResource(dxgi_getContext(), ID3D11DeviceContext_CopyResource(dxgi_getContext(),
(ID3D11Resource *)dst, (ID3D11Resource *)src); (ID3D11Resource *)dst, (ID3D11Resource *)src);
@ -151,7 +149,7 @@ static bool d3d11_copyFull(ID3D11Texture2D * src, unsigned textureIndex)
static bool d3d11_copyRect(ID3D11Texture2D * src, unsigned textureIndex, static bool d3d11_copyRect(ID3D11Texture2D * src, unsigned textureIndex,
FrameDamageRect * rect) FrameDamageRect * rect)
{ {
ID3D11Texture2D * dst = *this->texture[textureIndex].cpu; ID3D11Texture2D * dst = *this->texture[textureIndex].tex;
D3D11_BOX box = D3D11_BOX box =
{ {
@ -180,7 +178,7 @@ static bool d3d11_postCopy(ID3D11Texture2D * src, unsigned textureIndex)
static CaptureResult d3d11_mapTexture(unsigned textureIndex, void ** map) static CaptureResult d3d11_mapTexture(unsigned textureIndex, void ** map)
{ {
ID3D11Resource * cpu = *(ID3D11Resource **)this->texture[textureIndex].cpu; ID3D11Resource * tex = *(ID3D11Resource **)this->texture[textureIndex].tex;
// sleep until it's close to time to map // sleep until it's close to time to map
const uint64_t delta = microtime() - this->texture[textureIndex].copyTime; const uint64_t delta = microtime() - this->texture[textureIndex].copyTime;
@ -195,7 +193,7 @@ static CaptureResult d3d11_mapTexture(unsigned textureIndex, void ** map)
HRESULT status; HRESULT status;
dxgi_contextLock(); dxgi_contextLock();
status = ID3D11DeviceContext_Map(dxgi_getContext(), cpu, 0, D3D11_MAP_READ, status = ID3D11DeviceContext_Map(dxgi_getContext(), tex, 0, D3D11_MAP_READ,
0x100000L, &mappedRes); 0x100000L, &mappedRes);
dxgi_contextUnlock(); dxgi_contextUnlock();
if (status == DXGI_ERROR_WAS_STILL_DRAWING) if (status == DXGI_ERROR_WAS_STILL_DRAWING)
@ -228,10 +226,10 @@ static CaptureResult d3d11_mapTexture(unsigned textureIndex, void ** map)
static void d3d11_unmapTexture(unsigned textureIndex) static void d3d11_unmapTexture(unsigned textureIndex)
{ {
ID3D11Resource * cpu = *(ID3D11Resource **)this->texture[textureIndex].cpu; ID3D11Resource * tex = *(ID3D11Resource **)this->texture[textureIndex].tex;
dxgi_contextLock(); dxgi_contextLock();
ID3D11DeviceContext_Unmap(dxgi_getContext(), cpu, 0); ID3D11DeviceContext_Unmap(dxgi_getContext(), tex, 0);
dxgi_contextUnlock(); dxgi_contextUnlock();
} }