mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +00:00
enable Cg shader flag for d3d9
This commit is contained in:
parent
f23497fd80
commit
17ec59ff21
@ -69,6 +69,11 @@
|
||||
#error "UWP does not support D3D9"
|
||||
#endif
|
||||
|
||||
/* Temporary workaround for d3d9 not being able to poll flags during init */
|
||||
static gfx_ctx_driver_t d3d9_fake_context;
|
||||
static uint32_t d3d9_get_flags(void *data);
|
||||
static bool d3d9_set_shader(void *data, enum rarch_shader_type type, const char *path);
|
||||
|
||||
static LPDIRECT3D9 g_pD3D9;
|
||||
|
||||
void *dinput;
|
||||
@ -1268,29 +1273,18 @@ static bool d3d9_init_internal(d3d9_video_t *d3d,
|
||||
windowed_full, &rect);
|
||||
#endif
|
||||
|
||||
/* This should only be done once here
|
||||
* to avoid set_shader() to be overridden
|
||||
* later. */
|
||||
if (settings->bools.video_shader_enable)
|
||||
{
|
||||
enum rarch_shader_type type =
|
||||
video_shader_parse_type(retroarch_get_shader_preset());
|
||||
const char *shader_preset;
|
||||
enum rarch_shader_type type;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case RARCH_SHADER_CG:
|
||||
if (!string_is_empty(d3d->shader_path))
|
||||
free(d3d->shader_path);
|
||||
if (!string_is_empty(retroarch_get_shader_preset()))
|
||||
d3d->shader_path = strdup(retroarch_get_shader_preset());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
d3d9_fake_context.get_flags = d3d9_get_flags;
|
||||
video_context_driver_set(&d3d9_fake_context);
|
||||
|
||||
if (!d3d9_process_shader(d3d))
|
||||
return false;
|
||||
shader_preset = retroarch_get_shader_preset();
|
||||
type = video_shader_parse_type(shader_preset);
|
||||
|
||||
d3d9_set_shader(d3d, type, shader_preset);
|
||||
}
|
||||
|
||||
d3d->video_info = *info;
|
||||
|
||||
@ -1823,6 +1817,8 @@ static bool d3d9_set_shader(void *data,
|
||||
if (!string_is_empty(path))
|
||||
d3d->shader_path = strdup(path);
|
||||
break;
|
||||
case RARCH_SHADER_NONE:
|
||||
break;
|
||||
default:
|
||||
RARCH_WARN("[D3D9]: Only Cg shaders are supported. Falling back to stock.\n");
|
||||
}
|
||||
@ -2038,6 +2034,7 @@ static uint32_t d3d9_get_flags(void *data)
|
||||
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_CG);
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user