(D3D11) Cleanups - use less inlined functions

This commit is contained in:
twinaphex 2022-04-23 16:25:59 +02:00
parent 0888297f31
commit 8973f2ae01
5 changed files with 62 additions and 129 deletions

View File

@ -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);

View File

@ -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 */

View File

@ -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);

View File

@ -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);
} }
} }

View File

@ -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;