mirror of
https://github.com/libretro/RetroArch.git
synced 2025-03-04 16:07:24 +00:00
(D3D11) Use less inlined functions
This commit is contained in:
parent
7f8a0e352f
commit
5d82b36f9c
@ -2672,13 +2672,3 @@ static INLINE void d3d11_release_shader(d3d11_shader_t* shader)
|
||||
Release(shader->ps);
|
||||
Release(shader->gs);
|
||||
}
|
||||
#if !defined(__cplusplus) || defined(CINTERFACE)
|
||||
static INLINE void d3d11_set_shader(D3D11DeviceContext ctx, d3d11_shader_t* shader)
|
||||
{
|
||||
ctx->lpVtbl->IASetInputLayout(ctx, shader->layout);
|
||||
ctx->lpVtbl->VSSetShader(ctx, shader->vs, NULL, 0);
|
||||
ctx->lpVtbl->PSSetShader(ctx, shader->ps, NULL, 0);
|
||||
ctx->lpVtbl->GSSetShader(ctx, shader->gs, NULL, 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -405,14 +405,18 @@ static void d3d11_set_hdr10(d3d11_video_t* d3d11, bool hdr10)
|
||||
static void d3d11_set_filtering(void* data, unsigned index,
|
||||
bool smooth, bool ctx_scaling)
|
||||
{
|
||||
unsigned i;
|
||||
d3d11_video_t* d3d11 = (d3d11_video_t*)data;
|
||||
|
||||
for (i = 0; i < RARCH_WRAP_MAX; i++)
|
||||
if (smooth)
|
||||
{
|
||||
if (smooth)
|
||||
unsigned i;
|
||||
for (i = 0; i < RARCH_WRAP_MAX; i++)
|
||||
d3d11->samplers[RARCH_FILTER_UNSPEC][i] = d3d11->samplers[RARCH_FILTER_LINEAR][i];
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned i;
|
||||
for (i = 0; i < RARCH_WRAP_MAX; i++)
|
||||
d3d11->samplers[RARCH_FILTER_UNSPEC][i] = d3d11->samplers[RARCH_FILTER_NEAREST][i];
|
||||
}
|
||||
}
|
||||
@ -2002,7 +2006,13 @@ static bool d3d11_gfx_frame(
|
||||
{
|
||||
unsigned j;
|
||||
|
||||
d3d11_set_shader(context, &d3d11->pass[i].shader);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->pass[i].shader;
|
||||
context->lpVtbl->IASetInputLayout(context, shader->layout);
|
||||
context->lpVtbl->VSSetShader(context, shader->vs, NULL, 0);
|
||||
context->lpVtbl->PSSetShader(context, shader->ps, NULL, 0);
|
||||
context->lpVtbl->GSSetShader(context, shader->gs, NULL, 0);
|
||||
}
|
||||
|
||||
if (d3d11->shader_preset->pass[i].frame_count_mod)
|
||||
d3d11->pass[i].frame_count =
|
||||
@ -2097,7 +2107,13 @@ static bool d3d11_gfx_frame(
|
||||
|
||||
if (texture)
|
||||
{
|
||||
d3d11_set_shader(context, &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND];
|
||||
context->lpVtbl->IASetInputLayout(context, shader->layout);
|
||||
context->lpVtbl->VSSetShader(context, shader->vs, NULL, 0);
|
||||
context->lpVtbl->PSSetShader(context, shader->ps, NULL, 0);
|
||||
context->lpVtbl->GSSetShader(context, shader->gs, NULL, 0);
|
||||
}
|
||||
D3D11SetPShaderResources(context, 0, 1, &texture->view);
|
||||
D3D11SetPShaderSamplers(
|
||||
context, 0, 1, &d3d11->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
|
||||
@ -2115,7 +2131,13 @@ static bool d3d11_gfx_frame(
|
||||
if (d3d11->menu.fullscreen)
|
||||
D3D11SetViewports(context, 1, &d3d11->viewport);
|
||||
|
||||
d3d11_set_shader(context, &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND];
|
||||
context->lpVtbl->IASetInputLayout(context, shader->layout);
|
||||
context->lpVtbl->VSSetShader(context, shader->vs, NULL, 0);
|
||||
context->lpVtbl->PSSetShader(context, shader->ps, NULL, 0);
|
||||
context->lpVtbl->GSSetShader(context, shader->gs, NULL, 0);
|
||||
}
|
||||
{
|
||||
UINT stride = sizeof(d3d11_vertex_t);
|
||||
UINT offset = 0;
|
||||
@ -2132,7 +2154,13 @@ static bool d3d11_gfx_frame(
|
||||
#endif
|
||||
|
||||
D3D11SetViewports(context, 1, &d3d11->viewport);
|
||||
d3d11_set_shader(context, &d3d11->sprites.shader);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->sprites.shader;
|
||||
context->lpVtbl->IASetInputLayout(context, shader->layout);
|
||||
context->lpVtbl->VSSetShader(context, shader->vs, NULL, 0);
|
||||
context->lpVtbl->PSSetShader(context, shader->ps, NULL, 0);
|
||||
context->lpVtbl->GSSetShader(context, shader->gs, NULL, 0);
|
||||
}
|
||||
D3D11SetPrimitiveTopology(context, D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
D3D11SetVShaderConstantBuffers(context, 0, 1, &d3d11->ubo);
|
||||
D3D11SetPShaderConstantBuffers(context, 0, 1, &d3d11->ubo);
|
||||
@ -2229,8 +2257,13 @@ static bool d3d11_gfx_frame(
|
||||
D3D11SetScissorRects(context, 1,
|
||||
&d3d11->scissor);
|
||||
|
||||
d3d11_set_shader(context,
|
||||
&d3d11->shaders[VIDEO_SHADER_STOCK_HDR]);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->shaders[VIDEO_SHADER_STOCK_HDR];
|
||||
context->lpVtbl->IASetInputLayout(context, shader->layout);
|
||||
context->lpVtbl->VSSetShader(context, shader->vs, NULL, 0);
|
||||
context->lpVtbl->PSSetShader(context, shader->ps, NULL, 0);
|
||||
context->lpVtbl->GSSetShader(context, shader->gs, NULL, 0);
|
||||
}
|
||||
D3D11SetVShaderConstantBuffers(context, 0, 1,
|
||||
&d3d11->hdr.ubo);
|
||||
D3D11SetPShaderResources(context, 0, 1,
|
||||
|
@ -58,11 +58,23 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
|
||||
case VIDEO_SHADER_MENU_4:
|
||||
case VIDEO_SHADER_MENU_5:
|
||||
case VIDEO_SHADER_MENU_6:
|
||||
d3d11_set_shader(d3d11->context, &d3d11->shaders[draw->pipeline_id]);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->shaders[draw->pipeline_id];
|
||||
d3d11->context->lpVtbl->IASetInputLayout(d3d11->context, shader->layout);
|
||||
d3d11->context->lpVtbl->VSSetShader(d3d11->context, shader->vs, NULL, 0);
|
||||
d3d11->context->lpVtbl->PSSetShader(d3d11->context, shader->ps, NULL, 0);
|
||||
d3d11->context->lpVtbl->GSSetShader(d3d11->context, shader->gs, NULL, 0);
|
||||
}
|
||||
D3D11Draw(d3d11->context, draw->coords->vertices, 0);
|
||||
|
||||
D3D11SetBlendState(d3d11->context, d3d11->blend_enable, NULL, D3D11_DEFAULT_SAMPLE_MASK);
|
||||
d3d11_set_shader(d3d11->context, &d3d11->sprites.shader);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->sprites.shader;
|
||||
d3d11->context->lpVtbl->IASetInputLayout(d3d11->context, shader->layout);
|
||||
d3d11->context->lpVtbl->VSSetShader(d3d11->context, shader->vs, NULL, 0);
|
||||
d3d11->context->lpVtbl->PSSetShader(d3d11->context, shader->ps, NULL, 0);
|
||||
d3d11->context->lpVtbl->GSSetShader(d3d11->context, shader->gs, NULL, 0);
|
||||
}
|
||||
{
|
||||
UINT stride = sizeof(d3d11_sprite_t);
|
||||
UINT offset = 0;
|
||||
@ -146,7 +158,13 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
|
||||
sprite++;
|
||||
}
|
||||
|
||||
d3d11_set_shader(d3d11->context, &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
{
|
||||
d3d11_shader_t *shader = &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND];
|
||||
d3d11->context->lpVtbl->IASetInputLayout(d3d11->context, shader->layout);
|
||||
d3d11->context->lpVtbl->VSSetShader(d3d11->context, shader->vs, NULL, 0);
|
||||
d3d11->context->lpVtbl->PSSetShader(d3d11->context, shader->ps, NULL, 0);
|
||||
d3d11->context->lpVtbl->GSSetShader(d3d11->context, shader->gs, NULL, 0);
|
||||
}
|
||||
D3D11SetPrimitiveTopology(d3d11->context, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
}
|
||||
|
||||
@ -164,11 +182,13 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
|
||||
|
||||
if (vertex_count > 1)
|
||||
{
|
||||
d3d11_set_shader(d3d11->context, &d3d11->sprites.shader);
|
||||
d3d11_shader_t *shader = &d3d11->sprites.shader;
|
||||
d3d11->context->lpVtbl->IASetInputLayout(d3d11->context, shader->layout);
|
||||
d3d11->context->lpVtbl->VSSetShader(d3d11->context, shader->vs, NULL, 0);
|
||||
d3d11->context->lpVtbl->PSSetShader(d3d11->context, shader->ps, NULL, 0);
|
||||
d3d11->context->lpVtbl->GSSetShader(d3d11->context, shader->gs, NULL, 0);
|
||||
D3D11SetPrimitiveTopology(d3d11->context, D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void gfx_display_d3d11_draw_pipeline(gfx_display_ctx_draw_t *draw,
|
||||
@ -194,10 +214,10 @@ static void gfx_display_d3d11_draw_pipeline(gfx_display_ctx_draw_t *draw,
|
||||
desc.ByteWidth = ca->coords.vertices * 2 * sizeof(float);
|
||||
desc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
|
||||
|
||||
{
|
||||
{
|
||||
D3D11_SUBRESOURCE_DATA vertexData = { ca->coords.vertex };
|
||||
D3D11CreateBuffer(d3d11->device, &desc, &vertexData, &d3d11->menu_pipeline_vbo);
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
UINT stride = 2 * sizeof(float);
|
||||
@ -266,7 +286,7 @@ void gfx_display_d3d11_scissor_begin(void *data,
|
||||
|
||||
rect.left = x;
|
||||
rect.top = y;
|
||||
rect.right = width + x;
|
||||
rect.right = width + x;
|
||||
rect.bottom = height + y;
|
||||
|
||||
D3D11SetScissorRects(d3d11->context, 1, &rect);
|
||||
|
Loading…
x
Reference in New Issue
Block a user