mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
(D3D9) Cleanups
This commit is contained in:
parent
dee50349ba
commit
27170674a5
@ -35,28 +35,28 @@ typedef struct d3d9_renderchain_driver
|
|||||||
{
|
{
|
||||||
void (*chain_free)(void *data);
|
void (*chain_free)(void *data);
|
||||||
void *(*chain_new)(void);
|
void *(*chain_new)(void);
|
||||||
bool (*init)(void *data,
|
bool (*init)(d3d9_video_t *d3d,
|
||||||
const void *video_info_data,
|
const video_info_t *video_info,
|
||||||
void *dev_data,
|
void *dev_data,
|
||||||
const void *final_viewport_data,
|
const void *final_viewport_data,
|
||||||
const void *info_data,
|
const void *info_data,
|
||||||
bool rgb32);
|
bool rgb32);
|
||||||
void (*set_final_viewport)(void *data,
|
void (*set_final_viewport)(d3d9_video_t *d3d,
|
||||||
void *renderchain_data, const void *viewport_data);
|
void *renderchain_data, const void *viewport_data);
|
||||||
bool (*add_pass)(void *data, const void *info_data);
|
bool (*add_pass)(void *data, const void *info_data);
|
||||||
bool (*add_lut)(void *data,
|
bool (*add_lut)(void *data,
|
||||||
const char *id, const char *path,
|
const char *id, const char *path,
|
||||||
bool smooth);
|
bool smooth);
|
||||||
void (*add_state_tracker)(void *data, void *tracker_data);
|
void (*add_state_tracker)(void *data, void *tracker_data);
|
||||||
bool (*render)(void *chain_data, const void *data,
|
bool (*render)(d3d9_video_t *d3d, const void *frame,
|
||||||
unsigned width, unsigned height, unsigned pitch, unsigned rotation);
|
unsigned width, unsigned height, unsigned pitch, unsigned rotation);
|
||||||
void (*convert_geometry)(void *data, const void *info_data,
|
void (*convert_geometry)(void *data, const void *info_data,
|
||||||
unsigned *out_width, unsigned *out_height,
|
unsigned *out_width, unsigned *out_height,
|
||||||
unsigned width, unsigned height,
|
unsigned width, unsigned height,
|
||||||
void *final_viewport);
|
void *final_viewport);
|
||||||
void (*set_font_rect)(void *data, const void *param_data);
|
void (*set_font_rect)(d3d9_video_t *d3d, const void *param_data);
|
||||||
bool (*read_viewport)(void *data, uint8_t *buffer, bool is_idle);
|
bool (*read_viewport)(d3d9_video_t *d3d, uint8_t *buffer, bool is_idle);
|
||||||
void (*viewport_info)(void *data, struct video_viewport *vp);
|
void (*viewport_info)(d3d9_video_t *d3d, struct video_viewport *vp);
|
||||||
const char *ident;
|
const char *ident;
|
||||||
} d3d9_renderchain_driver_t;
|
} d3d9_renderchain_driver_t;
|
||||||
|
|
||||||
|
@ -773,22 +773,19 @@ static void *d3d9_cg_renderchain_new(void)
|
|||||||
return renderchain;
|
return renderchain;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d9_cg_renderchain_init_shader(void *data,
|
static bool d3d9_cg_renderchain_init_shader(d3d9_video_t *d3d,
|
||||||
void *renderchain_data)
|
cg_renderchain_t *renderchain)
|
||||||
{
|
{
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
CGcontext cgCtx = cgCreateContext();
|
||||||
cg_renderchain_t *renderchain = (cg_renderchain_t*)renderchain_data;
|
|
||||||
|
|
||||||
if (!d3d || !renderchain)
|
if (!cgCtx)
|
||||||
return false;
|
|
||||||
|
|
||||||
renderchain->cgCtx = cgCreateContext();
|
|
||||||
if (!renderchain->cgCtx)
|
|
||||||
{
|
{
|
||||||
RARCH_ERR("Failed to create Cg context.\n");
|
RARCH_ERR("Failed to create Cg context.\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderchain->cgCtx = cgCtx;
|
||||||
|
|
||||||
if (FAILED(cgD3D9SetDevice((IDirect3DDevice9*)d3d->dev)))
|
if (FAILED(cgD3D9SetDevice((IDirect3DDevice9*)d3d->dev)))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
@ -906,16 +903,15 @@ static bool d3d9_cg_renderchain_create_first_pass(
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d9_cg_renderchain_init(void *data,
|
static bool d3d9_cg_renderchain_init(
|
||||||
const void *_video_info,
|
d3d9_video_t *d3d,
|
||||||
|
const video_info_t *video_info,
|
||||||
void *dev_,
|
void *dev_,
|
||||||
const void *final_viewport_,
|
const void *final_viewport_,
|
||||||
const void *info_data, bool rgb32)
|
const void *info_data, bool rgb32)
|
||||||
{
|
{
|
||||||
const struct LinkInfo *info = (const struct LinkInfo*)info_data;
|
const struct LinkInfo *info = (const struct LinkInfo*)info_data;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
cg_renderchain_t *chain = (cg_renderchain_t*)d3d->renderchain_data;
|
cg_renderchain_t *chain = (cg_renderchain_t*)d3d->renderchain_data;
|
||||||
const video_info_t *video_info = (const video_info_t*)_video_info;
|
|
||||||
unsigned fmt = (rgb32) ? RETRO_PIXEL_FORMAT_XRGB8888 : RETRO_PIXEL_FORMAT_RGB565;
|
unsigned fmt = (rgb32) ? RETRO_PIXEL_FORMAT_XRGB8888 : RETRO_PIXEL_FORMAT_RGB565;
|
||||||
|
|
||||||
if (!chain)
|
if (!chain)
|
||||||
@ -1072,11 +1068,10 @@ static void d3d_recompute_pass_sizes(cg_renderchain_t *chain,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void d3d9_cg_renderchain_set_final_viewport(
|
static void d3d9_cg_renderchain_set_final_viewport(
|
||||||
void *data,
|
d3d9_video_t *d3d,
|
||||||
void *renderchain_data,
|
void *renderchain_data,
|
||||||
const void *viewport_data)
|
const void *viewport_data)
|
||||||
{
|
{
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
cg_renderchain_t *chain = (cg_renderchain_t*)renderchain_data;
|
cg_renderchain_t *chain = (cg_renderchain_t*)renderchain_data;
|
||||||
const D3DVIEWPORT9 *final_viewport = (const D3DVIEWPORT9*)viewport_data;
|
const D3DVIEWPORT9 *final_viewport = (const D3DVIEWPORT9*)viewport_data;
|
||||||
|
|
||||||
@ -1485,7 +1480,7 @@ static void cg_d3d9_renderchain_render_pass(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d9_cg_renderchain_render(
|
static bool d3d9_cg_renderchain_render(
|
||||||
void *data,
|
d3d9_video_t *d3d,
|
||||||
const void *frame_data,
|
const void *frame_data,
|
||||||
unsigned width, unsigned height,
|
unsigned width, unsigned height,
|
||||||
unsigned pitch, unsigned rotation)
|
unsigned pitch, unsigned rotation)
|
||||||
@ -1493,7 +1488,6 @@ static bool d3d9_cg_renderchain_render(
|
|||||||
LPDIRECT3DSURFACE9 back_buffer, target;
|
LPDIRECT3DSURFACE9 back_buffer, target;
|
||||||
unsigned i, current_width, current_height, out_width = 0, out_height = 0;
|
unsigned i, current_width, current_height, out_width = 0, out_height = 0;
|
||||||
struct Pass *last_pass = NULL;
|
struct Pass *last_pass = NULL;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
cg_renderchain_t *chain = d3d ? (cg_renderchain_t*)d3d->renderchain_data : NULL;
|
cg_renderchain_t *chain = d3d ? (cg_renderchain_t*)d3d->renderchain_data : NULL;
|
||||||
|
|
||||||
d3d9_cg_renderchain_start_render(chain);
|
d3d9_cg_renderchain_start_render(chain);
|
||||||
@ -1592,11 +1586,10 @@ static bool d3d9_cg_renderchain_render(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void d3d9_cg_renderchain_set_font_rect(
|
static void d3d9_cg_renderchain_set_font_rect(
|
||||||
void *data,
|
d3d9_video_t *d3d,
|
||||||
const void *font_data)
|
const void *font_data)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
float pos_x = settings->floats.video_msg_pos_x;
|
float pos_x = settings->floats.video_msg_pos_x;
|
||||||
float pos_y = settings->floats.video_msg_pos_y;
|
float pos_y = settings->floats.video_msg_pos_y;
|
||||||
float font_size = settings->floats.video_font_size;
|
float font_size = settings->floats.video_font_size;
|
||||||
@ -1625,22 +1618,17 @@ static void d3d9_cg_renderchain_set_font_rect(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d9_cg_renderchain_read_viewport(
|
static bool d3d9_cg_renderchain_read_viewport(
|
||||||
void *data, uint8_t *buffer, bool is_idle)
|
d3d9_video_t *d3d, uint8_t *buffer, bool is_idle)
|
||||||
{
|
{
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
D3DLOCKED_RECT rect;
|
D3DLOCKED_RECT rect;
|
||||||
LPDIRECT3DSURFACE9 target = NULL;
|
LPDIRECT3DSURFACE9 target = NULL;
|
||||||
LPDIRECT3DSURFACE9 dest = NULL;
|
LPDIRECT3DSURFACE9 dest = NULL;
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
LPDIRECT3DDEVICE9 d3dr = d3d->dev;
|
LPDIRECT3DDEVICE9 d3dr = d3d->dev;
|
||||||
|
|
||||||
video_driver_get_size(&width, &height);
|
video_driver_get_size(&width, &height);
|
||||||
|
|
||||||
(void)d3d;
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!d3d9_device_get_render_target(d3dr, 0, (void**)&target) ||
|
!d3d9_device_get_render_target(d3dr, 0, (void**)&target) ||
|
||||||
!d3d9_device_create_offscreen_plain_surface(d3dr, width, height,
|
!d3d9_device_create_offscreen_plain_surface(d3dr, width, height,
|
||||||
@ -1687,12 +1675,12 @@ end:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void d3d9_cg_renderchain_viewport_info(
|
static void d3d9_cg_renderchain_viewport_info(
|
||||||
void *data, struct video_viewport *vp)
|
d3d9_video_t *d3d,
|
||||||
|
struct video_viewport *vp)
|
||||||
{
|
{
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
|
|
||||||
if (!d3d || !vp)
|
if (!vp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
video_driver_get_size(&width, &height);
|
video_driver_get_size(&width, &height);
|
||||||
|
@ -47,15 +47,14 @@ typedef struct hlsl_d3d9_renderchain
|
|||||||
LPDIRECT3DVERTEXDECLARATION9 vertex_decl;
|
LPDIRECT3DVERTEXDECLARATION9 vertex_decl;
|
||||||
} hlsl_d3d9_renderchain_t;
|
} hlsl_d3d9_renderchain_t;
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_clear(void *data)
|
static void hlsl_d3d9_renderchain_clear(hlsl_d3d9_renderchain_t *chain)
|
||||||
{
|
{
|
||||||
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data;
|
|
||||||
|
|
||||||
d3d9_texture_free(chain->tex);
|
d3d9_texture_free(chain->tex);
|
||||||
d3d9_vertex_buffer_free(chain->vertex_buf, chain->vertex_decl);
|
d3d9_vertex_buffer_free(chain->vertex_buf, chain->vertex_decl);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hlsl_d3d9_renderchain_init_shader_fvf(void *data, void *pass_data)
|
static bool hlsl_d3d9_renderchain_init_shader_fvf(d3d9_video_t *d3d,
|
||||||
|
hlsl_d3d9_renderchain_t *chain)
|
||||||
{
|
{
|
||||||
static const D3DVERTEXELEMENT9 VertexElements[] =
|
static const D3DVERTEXELEMENT9 VertexElements[] =
|
||||||
{
|
{
|
||||||
@ -63,21 +62,14 @@ static bool hlsl_d3d9_renderchain_init_shader_fvf(void *data, void *pass_data)
|
|||||||
{ 0, 2 * sizeof(float), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
|
{ 0, 2 * sizeof(float), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
|
||||||
D3DDECL_END()
|
D3DDECL_END()
|
||||||
};
|
};
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
d3d9_video_t *pass = (d3d9_video_t*)data;
|
|
||||||
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)
|
|
||||||
d3d->renderchain_data;
|
|
||||||
|
|
||||||
(void)pass_data;
|
|
||||||
|
|
||||||
return d3d9_vertex_declaration_new(d3d->dev,
|
return d3d9_vertex_declaration_new(d3d->dev,
|
||||||
VertexElements, (void**)&chain->vertex_decl);
|
VertexElements, (void**)&chain->vertex_decl);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hlsl_d3d9_renderchain_create_first_pass(void *data,
|
static bool hlsl_d3d9_renderchain_create_first_pass(d3d9_video_t *d3d,
|
||||||
const video_info_t *info)
|
const video_info_t *info)
|
||||||
{
|
{
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)
|
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)
|
||||||
d3d->renderchain_data;
|
d3d->renderchain_data;
|
||||||
|
|
||||||
@ -109,28 +101,25 @@ static bool hlsl_d3d9_renderchain_create_first_pass(void *data,
|
|||||||
d3d9_set_render_state(d3d->dev, D3DRS_CULLMODE, D3DCULL_NONE);
|
d3d9_set_render_state(d3d->dev, D3DRS_CULLMODE, D3DCULL_NONE);
|
||||||
d3d9_set_render_state(d3d->dev, D3DRS_ZENABLE, FALSE);
|
d3d9_set_render_state(d3d->dev, D3DRS_ZENABLE, FALSE);
|
||||||
|
|
||||||
if (!hlsl_d3d9_renderchain_init_shader_fvf(chain, chain))
|
if (!hlsl_d3d9_renderchain_init_shader_fvf(d3d, chain))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_set_vertices(
|
static void hlsl_d3d9_renderchain_set_vertices(
|
||||||
void *data, unsigned pass,
|
d3d9_video_t *d3d,
|
||||||
unsigned vert_width, unsigned vert_height, uint64_t frame_count)
|
hlsl_d3d9_renderchain_t *chain,
|
||||||
|
unsigned pass,
|
||||||
|
unsigned vert_width, unsigned vert_height,
|
||||||
|
uint64_t frame_count)
|
||||||
{
|
{
|
||||||
video_shader_ctx_params_t params;
|
video_shader_ctx_params_t params;
|
||||||
video_shader_ctx_info_t shader_info;
|
video_shader_ctx_info_t shader_info;
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
hlsl_d3d9_renderchain_t *chain = d3d ?
|
|
||||||
(hlsl_d3d9_renderchain_t*)d3d->renderchain_data : NULL;
|
|
||||||
|
|
||||||
video_driver_get_size(&width, &height);
|
video_driver_get_size(&width, &height);
|
||||||
|
|
||||||
if (!chain)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (chain->last_width != vert_width || chain->last_height != vert_height)
|
if (chain->last_width != vert_width || chain->last_height != vert_height)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
@ -201,11 +190,10 @@ static void hlsl_d3d9_renderchain_set_vertices(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_blit_to_texture(
|
static void hlsl_d3d9_renderchain_blit_to_texture(
|
||||||
void *data, const void *frame,
|
hlsl_d3d9_renderchain_t *chain, const void *frame,
|
||||||
unsigned width, unsigned height, unsigned pitch)
|
unsigned width, unsigned height, unsigned pitch)
|
||||||
{
|
{
|
||||||
D3DLOCKED_RECT d3dlr = { 0, NULL };
|
D3DLOCKED_RECT d3dlr = { 0, NULL };
|
||||||
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data;
|
|
||||||
|
|
||||||
if (chain->last_width != width || chain->last_height != height)
|
if (chain->last_width != width || chain->last_height != height)
|
||||||
{
|
{
|
||||||
@ -226,30 +214,15 @@ static void hlsl_d3d9_renderchain_blit_to_texture(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_deinit(void *data)
|
|
||||||
{
|
|
||||||
hlsl_d3d9_renderchain_t *renderchain = (hlsl_d3d9_renderchain_t*)data;
|
|
||||||
|
|
||||||
if (renderchain)
|
|
||||||
free(renderchain);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_deinit_shader(void *data)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
/* stub */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_free(void *data)
|
static void hlsl_d3d9_renderchain_free(void *data)
|
||||||
{
|
{
|
||||||
d3d9_video_t *chain = (d3d9_video_t*)data;
|
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data;
|
||||||
|
|
||||||
if (!chain)
|
if (!chain)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
hlsl_d3d9_renderchain_deinit_shader(chain);
|
|
||||||
hlsl_d3d9_renderchain_deinit(chain->renderchain_data);
|
|
||||||
hlsl_d3d9_renderchain_clear(chain->renderchain_data);
|
hlsl_d3d9_renderchain_clear(chain->renderchain_data);
|
||||||
|
free(chain);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *hlsl_d3d9_renderchain_new(void)
|
void *hlsl_d3d9_renderchain_new(void)
|
||||||
@ -262,16 +235,10 @@ void *hlsl_d3d9_renderchain_new(void)
|
|||||||
return renderchain;
|
return renderchain;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hlsl_d3d9_renderchain_init_shader(void *data,
|
static bool hlsl_d3d9_renderchain_init_shader(d3d9_video_t *d3d,
|
||||||
void *renderchain_data)
|
hlsl_d3d9_renderchain_t *chain)
|
||||||
{
|
{
|
||||||
video_shader_ctx_init_t init;
|
video_shader_ctx_init_t init;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
settings_t *settings = config_get_ptr();
|
|
||||||
(void)renderchain_data;
|
|
||||||
|
|
||||||
if (!d3d)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
init.shader_type = RARCH_SHADER_HLSL;
|
init.shader_type = RARCH_SHADER_HLSL;
|
||||||
init.data = data;
|
init.data = data;
|
||||||
@ -283,7 +250,8 @@ static bool hlsl_d3d9_renderchain_init_shader(void *data,
|
|||||||
return video_shader_driver_init(&init);
|
return video_shader_driver_init(&init);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hlsl_d3d9_renderchain_init(void *data,
|
static bool hlsl_d3d9_renderchain_init(
|
||||||
|
d3d9_video_t *d3d,
|
||||||
const void *_video_info,
|
const void *_video_info,
|
||||||
void *dev_data,
|
void *dev_data,
|
||||||
const void *final_viewport_data,
|
const void *final_viewport_data,
|
||||||
@ -292,8 +260,6 @@ static bool hlsl_d3d9_renderchain_init(void *data,
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
const video_info_t *video_info = (const video_info_t*)_video_info;
|
|
||||||
const struct LinkInfo *link_info = (const struct LinkInfo*)info_data;
|
const struct LinkInfo *link_info = (const struct LinkInfo*)info_data;
|
||||||
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)
|
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)
|
||||||
d3d->renderchain_data;
|
d3d->renderchain_data;
|
||||||
@ -303,7 +269,7 @@ static bool hlsl_d3d9_renderchain_init(void *data,
|
|||||||
|
|
||||||
(void)final_viewport_data;
|
(void)final_viewport_data;
|
||||||
|
|
||||||
if (!hlsl_d3d9_renderchain_init_shader(d3d, NULL))
|
if (!hlsl_d3d9_renderchain_init_shader(d3d, chain))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
video_driver_get_size(&width, &height);
|
video_driver_get_size(&width, &height);
|
||||||
@ -326,23 +292,20 @@ static bool hlsl_d3d9_renderchain_init(void *data,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_set_final_viewport(void *data,
|
static void hlsl_d3d9_renderchain_set_final_viewport(
|
||||||
|
d3d9_video_t *d3d,
|
||||||
void *renderchain_data, const void *viewport_data)
|
void *renderchain_data, const void *viewport_data)
|
||||||
{
|
{
|
||||||
(void)data;
|
|
||||||
(void)renderchain_data;
|
|
||||||
(void)viewport_data;
|
|
||||||
|
|
||||||
/* stub */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hlsl_d3d9_renderchain_render(void *data, const void *frame,
|
static bool hlsl_d3d9_renderchain_render(
|
||||||
|
d3d9_video_t *d3d,
|
||||||
|
const void *frame,
|
||||||
unsigned frame_width, unsigned frame_height,
|
unsigned frame_width, unsigned frame_height,
|
||||||
unsigned pitch, unsigned rotation)
|
unsigned pitch, unsigned rotation)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)d3d->renderchain_data;
|
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)d3d->renderchain_data;
|
||||||
bool video_smooth = settings->bools.video_smooth;
|
bool video_smooth = settings->bools.video_smooth;
|
||||||
@ -353,7 +316,7 @@ static bool hlsl_d3d9_renderchain_render(void *data, const void *frame,
|
|||||||
|
|
||||||
hlsl_d3d9_renderchain_blit_to_texture(chain,
|
hlsl_d3d9_renderchain_blit_to_texture(chain,
|
||||||
frame, frame_width, frame_height, pitch);
|
frame, frame_width, frame_height, pitch);
|
||||||
hlsl_d3d9_renderchain_set_vertices(d3d,
|
hlsl_d3d9_renderchain_set_vertices(d3d, chain,
|
||||||
1, frame_width, frame_height, chain->frame_count);
|
1, frame_width, frame_height, chain->frame_count);
|
||||||
|
|
||||||
d3d9_set_texture(chain->dev, 0, chain->tex);
|
d3d9_set_texture(chain->dev, 0, chain->tex);
|
||||||
@ -365,7 +328,8 @@ static bool hlsl_d3d9_renderchain_render(void *data, const void *frame,
|
|||||||
|
|
||||||
d3d9_set_vertex_declaration(chain->dev, chain->vertex_decl);
|
d3d9_set_vertex_declaration(chain->dev, chain->vertex_decl);
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
d3d9_set_stream_source(chain->dev, i, chain->vertex_buf, 0, sizeof(Vertex));
|
d3d9_set_stream_source(chain->dev, i,
|
||||||
|
chain->vertex_buf, 0, sizeof(Vertex));
|
||||||
d3d9_draw_primitive(chain->dev, D3DPT_TRIANGLESTRIP, 0, 2);
|
d3d9_draw_primitive(chain->dev, D3DPT_TRIANGLESTRIP, 0, 2);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -408,12 +372,11 @@ static void hlsl_d3d9_renderchain_convert_geometry(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void hlsl_d3d9_renderchain_viewport_info(
|
static void hlsl_d3d9_renderchain_viewport_info(
|
||||||
void *data, struct video_viewport *vp)
|
d3d9_video_t *d3d, struct video_viewport *vp)
|
||||||
{
|
{
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
d3d9_video_t *d3d = (d3d9_video_t*)data;
|
|
||||||
|
|
||||||
if (!d3d || !vp)
|
if (!vp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
video_driver_get_size(&width, &height);
|
video_driver_get_size(&width, &height);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user