|
@@ -253,7 +253,6 @@ static const GUID SDL_IID_ID3D12DescriptorHeap = { 0x8efb471d, 0x616c, 0x4f49, {
|
|
|
static const GUID SDL_IID_ID3D12CommandAllocator = { 0x6102dee4, 0xaf59, 0x4b09, { 0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24 } };
|
|
|
static const GUID SDL_IID_ID3D12GraphicsCommandList2 = { 0x38C3E585, 0xFF17, 0x412C, { 0x91, 0x50, 0x4F, 0xC6, 0xF9, 0xD7, 0x2A, 0x28 } };
|
|
|
static const GUID SDL_IID_ID3D12Fence = { 0x0a753dcf, 0xc4d8, 0x4b91, { 0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76 } };
|
|
|
-static const GUID SDL_IID_IDXGIResource = { 0x035f3ab4, 0x482e, 0x4e50, { 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b } };
|
|
|
static const GUID SDL_IID_ID3D12Resource = { 0x696442be, 0xa72e, 0x4059, { 0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad } };
|
|
|
static const GUID SDL_IID_ID3D12RootSignature = { 0xc54a6b66, 0x72df, 0x4ee8, { 0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14 } };
|
|
|
static const GUID SDL_IID_ID3D12PipelineState = { 0x765a30f3, 0xf624, 0x4c6f, { 0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45 } };
|
|
@@ -1487,6 +1486,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|
|
D3D12_DestroyTexture(renderer, texture);
|
|
|
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device::CreateCommittedResource [texture]"), result);
|
|
|
}
|
|
|
+ SDL_SetProperty(SDL_GetTextureProperties(texture), "SDL.texture.d3d12.texture", textureData->mainTexture);
|
|
|
#if SDL_HAVE_YUV
|
|
|
if (texture->format == SDL_PIXELFORMAT_YV12 ||
|
|
|
texture->format == SDL_PIXELFORMAT_IYUV) {
|
|
@@ -1508,6 +1508,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|
|
D3D12_DestroyTexture(renderer, texture);
|
|
|
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device::CreateCommittedResource [texture]"), result);
|
|
|
}
|
|
|
+ SDL_SetProperty(SDL_GetTextureProperties(texture), "SDL.texture.d3d12.texture_u", textureData->mainTextureU);
|
|
|
|
|
|
result = D3D_CALL(rendererData->d3dDevice, CreateCommittedResource,
|
|
|
&heapProps,
|
|
@@ -1522,6 +1523,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|
|
D3D12_DestroyTexture(renderer, texture);
|
|
|
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device::CreateCommittedResource [texture]"), result);
|
|
|
}
|
|
|
+ SDL_SetProperty(SDL_GetTextureProperties(texture), "SDL.texture.d3d12.texture_v", textureData->mainTextureV);
|
|
|
}
|
|
|
|
|
|
if (texture->format == SDL_PIXELFORMAT_NV12 ||
|
|
@@ -2065,25 +2067,6 @@ static void D3D12_SetTextureScaleMode(SDL_Renderer *renderer, SDL_Texture *textu
|
|
|
textureData->scaleMode = (scaleMode == SDL_SCALEMODE_NEAREST) ? D3D12_FILTER_MIN_MAG_MIP_POINT : D3D12_FILTER_MIN_MAG_MIP_LINEAR;
|
|
|
}
|
|
|
|
|
|
-static IDXGIResource *D3D12_GetTextureDXGIResource(SDL_Texture *texture)
|
|
|
-{
|
|
|
- D3D12_TextureData *textureData = (D3D12_TextureData *)texture->driverdata;
|
|
|
- IDXGIResource *resource = NULL;
|
|
|
- HRESULT result;
|
|
|
-
|
|
|
- if (!textureData || !textureData->mainTexture) {
|
|
|
- SDL_SetError("Texture is not currently available");
|
|
|
- return NULL;
|
|
|
- }
|
|
|
-
|
|
|
- result = D3D_CALL(textureData->mainTexture, QueryInterface, D3D_GUID(SDL_IID_IDXGIResource), (void **)&resource);
|
|
|
- if (FAILED(result)) {
|
|
|
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("GetTextureDXGIResource"), result);
|
|
|
- return NULL;
|
|
|
- }
|
|
|
- return resource;
|
|
|
-}
|
|
|
-
|
|
|
static int D3D12_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture)
|
|
|
{
|
|
|
D3D12_RenderData *rendererData = (D3D12_RenderData *)renderer->driverdata;
|
|
@@ -2984,7 +2967,6 @@ SDL_Renderer *D3D12_CreateRenderer(SDL_Window *window, Uint32 flags)
|
|
|
renderer->LockTexture = D3D12_LockTexture;
|
|
|
renderer->UnlockTexture = D3D12_UnlockTexture;
|
|
|
renderer->SetTextureScaleMode = D3D12_SetTextureScaleMode;
|
|
|
- renderer->GetTextureDXGIResource = D3D12_GetTextureDXGIResource;
|
|
|
renderer->SetRenderTarget = D3D12_SetRenderTarget;
|
|
|
renderer->QueueSetViewport = D3D12_QueueSetViewport;
|
|
|
renderer->QueueSetDrawColor = D3D12_QueueSetViewport; /* SetViewport and SetDrawColor are (currently) no-ops. */
|