mirror of
https://github.com/libretro/RetroArch
synced 2025-02-06 09:40:06 +00:00
(D3D11) Cleanups - use less inlined functions
This commit is contained in:
parent
0888297f31
commit
8973f2ae01
@ -173,8 +173,8 @@ void d3d11_update_texture(
|
|||||||
if (!texture || !texture->staging)
|
if (!texture || !texture->staging)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
D3D11MapTexture2D(ctx, texture->staging,
|
ctx->lpVtbl->Map(
|
||||||
0, D3D11_MAP_WRITE, 0, &mapped_texture);
|
ctx, (D3D11Resource)texture->staging, 0, D3D11_MAP_WRITE, 0, &mapped_texture);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
conv_rgb565_argb8888(mapped_texture.pData, data, width, height,
|
conv_rgb565_argb8888(mapped_texture.pData, data, width, height,
|
||||||
@ -186,10 +186,10 @@ void d3d11_update_texture(
|
|||||||
mapped_texture.pData);
|
mapped_texture.pData);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
D3D11UnmapTexture2D(ctx, texture->staging, 0);
|
ctx->lpVtbl->Unmap(ctx, (D3D11Resource)texture->staging, 0);
|
||||||
|
|
||||||
D3D11CopyTexture2DSubresourceRegion(
|
ctx->lpVtbl->CopySubresourceRegion(
|
||||||
ctx, texture->handle, 0, 0, 0, 0, texture->staging, 0, &frame_box);
|
ctx, (D3D11Resource)texture->handle, 0, 0, 0, 0, (D3D11Resource)texture->staging, 0, &frame_box);
|
||||||
|
|
||||||
if (texture->desc.MiscFlags & D3D11_RESOURCE_MISC_GENERATE_MIPS)
|
if (texture->desc.MiscFlags & D3D11_RESOURCE_MISC_GENERATE_MIPS)
|
||||||
D3D11GenerateMips(ctx, texture->view);
|
D3D11GenerateMips(ctx, texture->view);
|
||||||
|
@ -319,14 +319,6 @@ static INLINE void D3D11SetVShaderResources(
|
|||||||
device_context, start_slot, num_views, shader_resource_views);
|
device_context, start_slot, num_views, shader_resource_views);
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE void D3D11Begin(D3D11DeviceContext device_context, D3D11Asynchronous async)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->Begin(device_context, async);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11End(D3D11DeviceContext device_context, D3D11Asynchronous async)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->End(device_context, async);
|
|
||||||
}
|
|
||||||
static INLINE HRESULT D3D11GetData(
|
static INLINE HRESULT D3D11GetData(
|
||||||
D3D11DeviceContext device_context,
|
D3D11DeviceContext device_context,
|
||||||
D3D11Asynchronous async,
|
D3D11Asynchronous async,
|
||||||
@ -382,13 +374,6 @@ static INLINE void D3D11SetRenderTargetsAndUnorderedAccessViews(
|
|||||||
unordered_access_views, uavinitial_counts);
|
unordered_access_views, uavinitial_counts);
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE void D3D11SetDepthStencilState(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11DepthStencilState depth_stencil_state,
|
|
||||||
UINT stencil_ref)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->OMSetDepthStencilState(device_context, depth_stencil_state, stencil_ref);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11SOSetTargets(
|
static INLINE void D3D11SOSetTargets(
|
||||||
D3D11DeviceContext device_context,
|
D3D11DeviceContext device_context,
|
||||||
UINT num_buffers,
|
UINT num_buffers,
|
||||||
@ -477,13 +462,7 @@ static INLINE void D3D11CopyStructureCount(
|
|||||||
device_context->lpVtbl->CopyStructureCount(
|
device_context->lpVtbl->CopyStructureCount(
|
||||||
device_context, dst_buffer, dst_aligned_byte_offset, src_view);
|
device_context, dst_buffer, dst_aligned_byte_offset, src_view);
|
||||||
}
|
}
|
||||||
static INLINE void D3D11ClearRenderTargetView(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11RenderTargetView render_target_view,
|
|
||||||
FLOAT color_rgba[4])
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->ClearRenderTargetView(device_context, render_target_view, color_rgba);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11ClearUnorderedAccessViewUint(
|
static INLINE void D3D11ClearUnorderedAccessViewUint(
|
||||||
D3D11DeviceContext device_context,
|
D3D11DeviceContext device_context,
|
||||||
D3D11UnorderedAccessView unordered_access_view,
|
D3D11UnorderedAccessView unordered_access_view,
|
||||||
@ -671,15 +650,7 @@ static INLINE void D3D11GetPShaderResources(
|
|||||||
device_context->lpVtbl->PSGetShaderResources(
|
device_context->lpVtbl->PSGetShaderResources(
|
||||||
device_context, start_slot, num_views, shader_resource_views);
|
device_context, start_slot, num_views, shader_resource_views);
|
||||||
}
|
}
|
||||||
static INLINE void D3D11GetPShader(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11PixelShader* pixel_shader,
|
|
||||||
D3D11ClassInstance* class_instances,
|
|
||||||
UINT* num_class_instances)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->PSGetShader(
|
|
||||||
device_context, pixel_shader, class_instances, num_class_instances);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11GetPShaderSamplers(
|
static INLINE void D3D11GetPShaderSamplers(
|
||||||
D3D11DeviceContext device_context,
|
D3D11DeviceContext device_context,
|
||||||
UINT start_slot,
|
UINT start_slot,
|
||||||
@ -688,15 +659,7 @@ static INLINE void D3D11GetPShaderSamplers(
|
|||||||
{
|
{
|
||||||
device_context->lpVtbl->PSGetSamplers(device_context, start_slot, num_samplers, samplers);
|
device_context->lpVtbl->PSGetSamplers(device_context, start_slot, num_samplers, samplers);
|
||||||
}
|
}
|
||||||
static INLINE void D3D11GetVShader(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11VertexShader* vertex_shader,
|
|
||||||
D3D11ClassInstance* class_instances,
|
|
||||||
UINT* num_class_instances)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->VSGetShader(
|
|
||||||
device_context, vertex_shader, class_instances, num_class_instances);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11GetPShaderConstantBuffers(
|
static INLINE void D3D11GetPShaderConstantBuffers(
|
||||||
D3D11DeviceContext device_context,
|
D3D11DeviceContext device_context,
|
||||||
UINT start_slot,
|
UINT start_slot,
|
||||||
@ -814,14 +777,7 @@ static INLINE void D3D11GetRenderTargetsAndUnorderedAccessViews(
|
|||||||
device_context, num_rtvs, render_target_views, depth_stencil_view, uavstart_slot, num_uavs,
|
device_context, num_rtvs, render_target_views, depth_stencil_view, uavstart_slot, num_uavs,
|
||||||
unordered_access_views);
|
unordered_access_views);
|
||||||
}
|
}
|
||||||
static INLINE void D3D11GetBlendState(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11BlendState* blend_state,
|
|
||||||
FLOAT blend_factor[4],
|
|
||||||
UINT* sample_mask)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->OMGetBlendState(device_context, blend_state, blend_factor, sample_mask);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11GetDepthStencilState(
|
static INLINE void D3D11GetDepthStencilState(
|
||||||
D3D11DeviceContext device_context,
|
D3D11DeviceContext device_context,
|
||||||
D3D11DepthStencilState* depth_stencil_state,
|
D3D11DepthStencilState* depth_stencil_state,
|
||||||
@ -2275,37 +2231,6 @@ static INLINE BOOL D3D11GetMuteDebugOutput(D3D11InfoQueue info_queue)
|
|||||||
|
|
||||||
/* end of auto-generated */
|
/* end of auto-generated */
|
||||||
|
|
||||||
static INLINE HRESULT D3D11MapTexture2D(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11Texture2D texture,
|
|
||||||
UINT subresource,
|
|
||||||
D3D11_MAP map_type,
|
|
||||||
UINT map_flags,
|
|
||||||
D3D11_MAPPED_SUBRESOURCE* mapped_resource)
|
|
||||||
{
|
|
||||||
return device_context->lpVtbl->Map(
|
|
||||||
device_context, (D3D11Resource)texture, subresource, map_type, map_flags, mapped_resource);
|
|
||||||
}
|
|
||||||
static INLINE void
|
|
||||||
D3D11UnmapTexture2D(D3D11DeviceContext device_context, D3D11Texture2D texture, UINT subresource)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->Unmap(device_context, (D3D11Resource)texture, subresource);
|
|
||||||
}
|
|
||||||
static INLINE void D3D11CopyTexture2DSubresourceRegion(
|
|
||||||
D3D11DeviceContext device_context,
|
|
||||||
D3D11Texture2D dst_texture,
|
|
||||||
UINT dst_subresource,
|
|
||||||
UINT dst_x,
|
|
||||||
UINT dst_y,
|
|
||||||
UINT dst_z,
|
|
||||||
D3D11Texture2D src_texture,
|
|
||||||
UINT src_subresource,
|
|
||||||
D3D11_BOX* src_box)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->CopySubresourceRegion(
|
|
||||||
device_context, (D3D11Resource)dst_texture, dst_subresource, dst_x, dst_y, dst_z,
|
|
||||||
(D3D11Resource)src_texture, src_subresource, src_box);
|
|
||||||
}
|
|
||||||
static INLINE HRESULT D3D11CreateTexture2DRenderTargetView(
|
static INLINE HRESULT D3D11CreateTexture2DRenderTargetView(
|
||||||
D3D11Device device,
|
D3D11Device device,
|
||||||
D3D11Texture2D texture,
|
D3D11Texture2D texture,
|
||||||
@ -2334,11 +2259,6 @@ static INLINE HRESULT D3D11MapBuffer(
|
|||||||
return device_context->lpVtbl->Map(
|
return device_context->lpVtbl->Map(
|
||||||
device_context, (D3D11Resource)buffer, subresource, map_type, map_flags, mapped_resource);
|
device_context, (D3D11Resource)buffer, subresource, map_type, map_flags, mapped_resource);
|
||||||
}
|
}
|
||||||
static INLINE void
|
|
||||||
D3D11UnmapBuffer(D3D11DeviceContext device_context, D3D11Buffer buffer, UINT subresource)
|
|
||||||
{
|
|
||||||
device_context->lpVtbl->Unmap(device_context, (D3D11Resource)buffer, subresource);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* internal */
|
/* internal */
|
||||||
|
@ -115,8 +115,8 @@ static void d3d11_overlay_vertex_geom(
|
|||||||
if (!d3d11)
|
if (!d3d11)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
D3D11MapBuffer(
|
d3d11->context->lpVtbl->Map(
|
||||||
d3d11->context, d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
||||||
{
|
{
|
||||||
d3d11_sprite_t* sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
d3d11_sprite_t* sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
||||||
sprites[index].pos.x = x;
|
sprites[index].pos.x = x;
|
||||||
@ -124,7 +124,7 @@ static void d3d11_overlay_vertex_geom(
|
|||||||
sprites[index].pos.w = w;
|
sprites[index].pos.w = w;
|
||||||
sprites[index].pos.h = h;
|
sprites[index].pos.h = h;
|
||||||
}
|
}
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->overlays.vbo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_overlay_tex_geom(
|
static void d3d11_overlay_tex_geom(
|
||||||
@ -137,8 +137,8 @@ static void d3d11_overlay_tex_geom(
|
|||||||
if (!d3d11)
|
if (!d3d11)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
D3D11MapBuffer(
|
d3d11->context->lpVtbl->Map(
|
||||||
d3d11->context, d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
||||||
{
|
{
|
||||||
d3d11_sprite_t* sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
d3d11_sprite_t* sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
||||||
sprites[index].coords.u = u;
|
sprites[index].coords.u = u;
|
||||||
@ -146,7 +146,7 @@ static void d3d11_overlay_tex_geom(
|
|||||||
sprites[index].coords.w = w;
|
sprites[index].coords.w = w;
|
||||||
sprites[index].coords.h = h;
|
sprites[index].coords.h = h;
|
||||||
}
|
}
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->overlays.vbo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_overlay_set_alpha(void* data, unsigned index, float mod)
|
static void d3d11_overlay_set_alpha(void* data, unsigned index, float mod)
|
||||||
@ -157,8 +157,8 @@ static void d3d11_overlay_set_alpha(void* data, unsigned index, float mod)
|
|||||||
if (!d3d11)
|
if (!d3d11)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
D3D11MapBuffer(
|
d3d11->context->lpVtbl->Map(
|
||||||
d3d11->context, d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
||||||
{
|
{
|
||||||
d3d11_sprite_t* sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
d3d11_sprite_t* sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
||||||
sprites[index].colors[0] = DXGI_COLOR_RGBA(0xFF, 0xFF, 0xFF, mod * 0xFF);
|
sprites[index].colors[0] = DXGI_COLOR_RGBA(0xFF, 0xFF, 0xFF, mod * 0xFF);
|
||||||
@ -166,7 +166,7 @@ static void d3d11_overlay_set_alpha(void* data, unsigned index, float mod)
|
|||||||
sprites[index].colors[2] = sprites[index].colors[0];
|
sprites[index].colors[2] = sprites[index].colors[0];
|
||||||
sprites[index].colors[3] = sprites[index].colors[0];
|
sprites[index].colors[3] = sprites[index].colors[0];
|
||||||
}
|
}
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->overlays.vbo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d11_overlay_load(void* data, const void* image_data, unsigned num_images)
|
static bool d3d11_overlay_load(void* data, const void* image_data, unsigned num_images)
|
||||||
@ -194,7 +194,8 @@ static bool d3d11_overlay_load(void* data, const void* image_data, unsigned num_
|
|||||||
desc.StructureByteStride = 0;
|
desc.StructureByteStride = 0;
|
||||||
D3D11CreateBuffer(d3d11->device, &desc, NULL, &d3d11->overlays.vbo);
|
D3D11CreateBuffer(d3d11->device, &desc, NULL, &d3d11->overlays.vbo);
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_vbo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_vbo);
|
||||||
sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
sprites = (d3d11_sprite_t*)mapped_vbo.pData;
|
||||||
|
|
||||||
for (i = 0; i < num_images; i++)
|
for (i = 0; i < num_images; i++)
|
||||||
@ -229,7 +230,7 @@ static bool d3d11_overlay_load(void* data, const void* image_data, unsigned num_
|
|||||||
sprites[i].colors[2] = sprites[i].colors[0];
|
sprites[i].colors[2] = sprites[i].colors[0];
|
||||||
sprites[i].colors[3] = sprites[i].colors[0];
|
sprites[i].colors[3] = sprites[i].colors[0];
|
||||||
}
|
}
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->overlays.vbo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->overlays.vbo, 0);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -314,13 +315,13 @@ static void d3d11_set_hdr_max_nits(void *data, float max_nits)
|
|||||||
d3d11->hdr.max_output_nits = max_nits;
|
d3d11->hdr.max_output_nits = max_nits;
|
||||||
d3d11->hdr.ubo_values.max_nits = max_nits;
|
d3d11->hdr.ubo_values.max_nits = max_nits;
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->hdr.ubo,
|
d3d11->context->lpVtbl->Map(
|
||||||
0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_ubo);
|
d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_ubo);
|
||||||
{
|
{
|
||||||
dxgi_hdr_uniform_t *ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
dxgi_hdr_uniform_t *ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
||||||
*ubo = d3d11->hdr.ubo_values;
|
*ubo = d3d11->hdr.ubo_values;
|
||||||
}
|
}
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->hdr.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0);
|
||||||
|
|
||||||
dxgi_set_hdr_metadata(
|
dxgi_set_hdr_metadata(
|
||||||
d3d11->swapChain,
|
d3d11->swapChain,
|
||||||
@ -341,11 +342,11 @@ static void d3d11_set_hdr_paper_white_nits(void* data, float paper_white_nits)
|
|||||||
|
|
||||||
d3d11->hdr.ubo_values.paper_white_nits = paper_white_nits;
|
d3d11->hdr.ubo_values.paper_white_nits = paper_white_nits;
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->hdr.ubo,
|
d3d11->context->lpVtbl->Map(
|
||||||
0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
||||||
*ubo = d3d11->hdr.ubo_values;
|
*ubo = d3d11->hdr.ubo_values;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->hdr.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_set_hdr_contrast(void* data, float contrast)
|
static void d3d11_set_hdr_contrast(void* data, float contrast)
|
||||||
@ -356,11 +357,11 @@ static void d3d11_set_hdr_contrast(void* data, float contrast)
|
|||||||
|
|
||||||
d3d11->hdr.ubo_values.contrast = contrast;
|
d3d11->hdr.ubo_values.contrast = contrast;
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->hdr.ubo,
|
d3d11->context->lpVtbl->Map(
|
||||||
0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
||||||
*ubo = d3d11->hdr.ubo_values;
|
*ubo = d3d11->hdr.ubo_values;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->hdr.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_set_hdr_expand_gamut(void* data, bool expand_gamut)
|
static void d3d11_set_hdr_expand_gamut(void* data, bool expand_gamut)
|
||||||
@ -371,10 +372,11 @@ static void d3d11_set_hdr_expand_gamut(void* data, bool expand_gamut)
|
|||||||
|
|
||||||
d3d11->hdr.ubo_values.expand_gamut = expand_gamut ? 1.0f : 0.0f;
|
d3d11->hdr.ubo_values.expand_gamut = expand_gamut ? 1.0f : 0.0f;
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
||||||
*ubo = d3d11->hdr.ubo_values;
|
*ubo = d3d11->hdr.ubo_values;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->hdr.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_set_hdr_inverse_tonemap(d3d11_video_t* d3d11, bool inverse_tonemap)
|
static void d3d11_set_hdr_inverse_tonemap(d3d11_video_t* d3d11, bool inverse_tonemap)
|
||||||
@ -384,10 +386,11 @@ static void d3d11_set_hdr_inverse_tonemap(d3d11_video_t* d3d11, bool inverse_ton
|
|||||||
|
|
||||||
d3d11->hdr.ubo_values.inverse_tonemap = inverse_tonemap ? 1.0f : 0.0f;
|
d3d11->hdr.ubo_values.inverse_tonemap = inverse_tonemap ? 1.0f : 0.0f;
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
||||||
*ubo = d3d11->hdr.ubo_values;
|
*ubo = d3d11->hdr.ubo_values;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->hdr.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_set_hdr10(d3d11_video_t* d3d11, bool hdr10)
|
static void d3d11_set_hdr10(d3d11_video_t* d3d11, bool hdr10)
|
||||||
@ -397,10 +400,11 @@ static void d3d11_set_hdr10(d3d11_video_t* d3d11, bool hdr10)
|
|||||||
|
|
||||||
d3d11->hdr.ubo_values.hdr10 = hdr10 ? 1.0f : 0.0f;
|
d3d11->hdr.ubo_values.hdr10 = hdr10 ? 1.0f : 0.0f;
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
ubo = (dxgi_hdr_uniform_t*)mapped_ubo.pData;
|
||||||
*ubo = d3d11->hdr.ubo_values;
|
*ubo = d3d11->hdr.ubo_values;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->hdr.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->hdr.ubo, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -435,9 +439,10 @@ static void d3d11_gfx_set_rotation(void* data, unsigned rotation)
|
|||||||
matrix_4x4_rotate_z(rot, rotation * (M_PI / 2.0f));
|
matrix_4x4_rotate_z(rot, rotation * (M_PI / 2.0f));
|
||||||
matrix_4x4_multiply(d3d11->mvp, rot, d3d11->ubo_values.mvp);
|
matrix_4x4_multiply(d3d11->mvp, rot, d3d11->ubo_values.mvp);
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->frame.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->frame.ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
*(math_matrix_4x4*)mapped_ubo.pData = d3d11->mvp;
|
*(math_matrix_4x4*)mapped_ubo.pData = d3d11->mvp;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->frame.ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->frame.ubo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d11_update_viewport(void* data, bool force_full)
|
static void d3d11_update_viewport(void* data, bool force_full)
|
||||||
@ -1972,8 +1977,12 @@ uuidof(ID3D11Texture2D), (void**)&back_buffer);
|
|||||||
if (hw_texture)
|
if (hw_texture)
|
||||||
{
|
{
|
||||||
D3D11_BOX frame_box = { 0, 0, 0, width, height, 1 };
|
D3D11_BOX frame_box = { 0, 0, 0, width, height, 1 };
|
||||||
D3D11CopyTexture2DSubresourceRegion(
|
context->lpVtbl->CopySubresourceRegion(
|
||||||
context, d3d11->frame.texture[0].handle, 0, 0, 0, 0, hw_texture, 0, &frame_box);
|
context,
|
||||||
|
(D3D11Resource)d3d11->frame.texture[0].handle,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
(D3D11Resource)hw_texture, 0, &frame_box);
|
||||||
|
|
||||||
Release(hw_texture);
|
Release(hw_texture);
|
||||||
hw_texture = NULL;
|
hw_texture = NULL;
|
||||||
}
|
}
|
||||||
@ -1983,7 +1992,8 @@ uuidof(ID3D11Texture2D), (void**)&back_buffer);
|
|||||||
}
|
}
|
||||||
|
|
||||||
context->lpVtbl->RSSetState(context, d3d11->scissor_disabled);
|
context->lpVtbl->RSSetState(context, d3d11->scissor_disabled);
|
||||||
d3d11->context->lpVtbl->OMSetBlendState(d3d11->context, d3d11->blend_disable,
|
d3d11->context->lpVtbl->OMSetBlendState(
|
||||||
|
d3d11->context, d3d11->blend_disable,
|
||||||
NULL, D3D11_DEFAULT_SAMPLE_MASK);
|
NULL, D3D11_DEFAULT_SAMPLE_MASK);
|
||||||
context->lpVtbl->IASetPrimitiveTopology(context, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
context->lpVtbl->IASetPrimitiveTopology(context, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||||
{
|
{
|
||||||
@ -2041,14 +2051,15 @@ uuidof(ID3D11Texture2D), (void**)&back_buffer);
|
|||||||
D3D11_MAPPED_SUBRESOURCE res;
|
D3D11_MAPPED_SUBRESOURCE res;
|
||||||
uniform_sem_t* uniform = buffer_sem->uniforms;
|
uniform_sem_t* uniform = buffer_sem->uniforms;
|
||||||
|
|
||||||
D3D11MapBuffer(context, buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &res);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &res);
|
||||||
while (uniform->size)
|
while (uniform->size)
|
||||||
{
|
{
|
||||||
if (uniform->data)
|
if (uniform->data)
|
||||||
memcpy((uint8_t*)res.pData + uniform->offset, uniform->data, uniform->size);
|
memcpy((uint8_t*)res.pData + uniform->offset, uniform->data, uniform->size);
|
||||||
uniform++;
|
uniform++;
|
||||||
}
|
}
|
||||||
D3D11UnmapBuffer(context, buffer, 0);
|
context->lpVtbl->Unmap(context, (D3D11Resource)buffer, 0);
|
||||||
|
|
||||||
if (buffer_sem->stage_mask & SLANG_STAGE_VERTEX_MASK)
|
if (buffer_sem->stage_mask & SLANG_STAGE_VERTEX_MASK)
|
||||||
D3D11SetVShaderConstantBuffers(context, buffer_sem->binding, 1, &buffer);
|
D3D11SetVShaderConstantBuffers(context, buffer_sem->binding, 1, &buffer);
|
||||||
|
@ -97,8 +97,8 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
|
|||||||
D3D11_MAPPED_SUBRESOURCE mapped_vbo;
|
D3D11_MAPPED_SUBRESOURCE mapped_vbo;
|
||||||
d3d11_sprite_t* sprite = NULL;
|
d3d11_sprite_t* sprite = NULL;
|
||||||
|
|
||||||
D3D11MapBuffer(
|
d3d11->context->lpVtbl->Map(
|
||||||
d3d11->context, d3d11->sprites.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
d3d11->context, (D3D11Resource)d3d11->sprites.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
||||||
|
|
||||||
sprite = (d3d11_sprite_t*)mapped_vbo.pData + d3d11->sprites.offset;
|
sprite = (d3d11_sprite_t*)mapped_vbo.pData + d3d11->sprites.offset;
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
|
|||||||
d3d11->context->lpVtbl->IASetPrimitiveTopology(d3d11->context, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
d3d11->context->lpVtbl->IASetPrimitiveTopology(d3d11->context, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||||
}
|
}
|
||||||
|
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->sprites.vbo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->sprites.vbo, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -254,9 +254,10 @@ static void gfx_display_d3d11_draw_pipeline(gfx_display_ctx_draw_t *draw,
|
|||||||
|
|
||||||
{
|
{
|
||||||
D3D11_MAPPED_SUBRESOURCE mapped_ubo;
|
D3D11_MAPPED_SUBRESOURCE mapped_ubo;
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->ubo, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||||
*(d3d11_uniform_t*)mapped_ubo.pData = d3d11->ubo_values;
|
*(d3d11_uniform_t*)mapped_ubo.pData = d3d11->ubo_values;
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->ubo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->ubo, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,8 @@ static void d3d11_font_render_line(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
D3D11MapBuffer(d3d11->context, d3d11->sprites.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
d3d11->context->lpVtbl->Map(
|
||||||
|
d3d11->context, (D3D11Resource)d3d11->sprites.vbo, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
||||||
v = (d3d11_sprite_t*)mapped_vbo.pData + d3d11->sprites.offset;
|
v = (d3d11_sprite_t*)mapped_vbo.pData + d3d11->sprites.offset;
|
||||||
|
|
||||||
for (i = 0; i < msg_len; i++)
|
for (i = 0; i < msg_len; i++)
|
||||||
@ -199,7 +200,7 @@ static void d3d11_font_render_line(
|
|||||||
}
|
}
|
||||||
|
|
||||||
count = v - ((d3d11_sprite_t*)mapped_vbo.pData + d3d11->sprites.offset);
|
count = v - ((d3d11_sprite_t*)mapped_vbo.pData + d3d11->sprites.offset);
|
||||||
D3D11UnmapBuffer(d3d11->context, d3d11->sprites.vbo, 0);
|
d3d11->context->lpVtbl->Unmap(d3d11->context, (D3D11Resource)d3d11->sprites.vbo, 0);
|
||||||
|
|
||||||
if (!count)
|
if (!count)
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user