diff --git a/gfx/d3d/render_chain_cg.cpp b/gfx/d3d/render_chain_cg.cpp index 80ab468cbb..c5475a9dbc 100644 --- a/gfx/d3d/render_chain_cg.cpp +++ b/gfx/d3d/render_chain_cg.cpp @@ -974,6 +974,49 @@ static bool renderchain_set_pass_size(void *data, unsigned pass_index, return true; } +void renderchain_convert_geometry( + void *data, const void *info_data, + unsigned *out_width, unsigned *out_height, + unsigned width, unsigned height, + D3DVIEWPORT *final_viewport) +{ + const LinkInfo *info = (const LinkInfo*)info_data; + cg_renderchain_t *chain = (cg_renderchain_t*)data; + + if (!chain || !info) + return; + + switch (info->pass->fbo.type_x) + { + case RARCH_SCALE_VIEWPORT: + *out_width = info->pass->fbo.scale_x * final_viewport->Width; + break; + + case RARCH_SCALE_ABSOLUTE: + *out_width = info->pass->fbo.abs_x; + break; + + case RARCH_SCALE_INPUT: + *out_width = info->pass->fbo.scale_x * width; + break; + } + + switch (info->pass->fbo.type_y) + { + case RARCH_SCALE_VIEWPORT: + *out_height = info->pass->fbo.scale_y * final_viewport->Height; + break; + + case RARCH_SCALE_ABSOLUTE: + *out_height = info->pass->fbo.abs_y; + break; + + case RARCH_SCALE_INPUT: + *out_height = info->pass->fbo.scale_y * height; + break; + } +} + static void d3d_recompute_pass_sizes(d3d_video_t *d3d, void *renderchain_data) { @@ -1436,49 +1479,6 @@ bool renderchain_render(void *chain_data, const void *data, return true; } -void renderchain_convert_geometry( - void *data, const void *info_data, - unsigned *out_width, unsigned *out_height, - unsigned width, unsigned height, - D3DVIEWPORT *final_viewport) -{ - const LinkInfo *info = (const LinkInfo*)info_data; - cg_renderchain_t *chain = (cg_renderchain_t*)data; - - if (!chain || !info) - return; - - switch (info->pass->fbo.type_x) - { - case RARCH_SCALE_VIEWPORT: - *out_width = info->pass->fbo.scale_x * final_viewport->Width; - break; - - case RARCH_SCALE_ABSOLUTE: - *out_width = info->pass->fbo.abs_x; - break; - - case RARCH_SCALE_INPUT: - *out_width = info->pass->fbo.scale_x * width; - break; - } - - switch (info->pass->fbo.type_y) - { - case RARCH_SCALE_VIEWPORT: - *out_height = info->pass->fbo.scale_y * final_viewport->Height; - break; - - case RARCH_SCALE_ABSOLUTE: - *out_height = info->pass->fbo.abs_y; - break; - - case RARCH_SCALE_INPUT: - *out_height = info->pass->fbo.scale_y * height; - break; - } -} - renderchain_driver_t cg_d3d9_renderchain = { renderchain_free, renderchain_new, diff --git a/gfx/d3d/render_chain_driver.h b/gfx/d3d/render_chain_driver.h index 2c2e12edcb..ff7f597522 100644 --- a/gfx/d3d/render_chain_driver.h +++ b/gfx/d3d/render_chain_driver.h @@ -70,44 +70,6 @@ extern renderchain_driver_t cg_d3d9_renderchain; extern renderchain_driver_t xdk_renderchain; extern renderchain_driver_t null_renderchain; -void renderchain_free(void *data); - -void *renderchain_new(void); - -void renderchain_deinit(void *data); - -void renderchain_deinit_shader(void); - -bool renderchain_init_shader(void *data); - -bool renderchain_init(void *data, - const video_info_t *video_info, - void *dev_data, - const void *final_viewport_data, - const void *info_data, - unsigned fmt); - -void renderchain_set_final_viewport(void *data, - void *renderchain_data, const void *viewport_data); - -bool renderchain_add_pass(void *data, const void *info_data); - -bool renderchain_add_lut(void *data, - const char *id, const char *path, - bool smooth); - -void renderchain_add_state_tracker(void *data, void *tracker_data); - -bool renderchain_render(void *chain_data, const void *data, - unsigned width, unsigned height, unsigned pitch, unsigned rotation); - -void renderchain_convert_geometry(void *data, const void *info_data, - unsigned *out_width, unsigned *out_height, - unsigned width, unsigned height, - D3DVIEWPORT *final_viewport); - -bool renderchain_init_shader_fvf(void *data, void *pass_data); - bool renderchain_init_first(const renderchain_driver_t **renderchain_driver, void **renderchain_handle); diff --git a/gfx/d3d/render_chain_xdk.cpp b/gfx/d3d/render_chain_xdk.cpp index e50aa96852..ac6d87d0ee 100644 --- a/gfx/d3d/render_chain_xdk.cpp +++ b/gfx/d3d/render_chain_xdk.cpp @@ -53,6 +53,29 @@ static void renderchain_clear(void *data) d3d_vertex_buffer_free(d3d->vertex_buf, d3d->vertex_decl); } +bool renderchain_init_shader_fvf(void *data, void *pass_data) +{ + d3d_video_t *chain = (d3d_video_t*)data; + d3d_video_t *pass = (d3d_video_t*)data; + LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)chain->dev; + + (void)pass_data; + +#if defined(_XBOX360) + static const D3DVERTEXELEMENT VertexElements[] = + { + { 0, 0 * sizeof(float), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, + { 0, 2 * sizeof(float), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, + D3DDECL_END() + }; + + if (FAILED(d3dr->CreateVertexDeclaration(VertexElements, &pass->vertex_decl))) + return false; +#endif + + return true; +} + static bool renderchain_create_first_pass(void *data, const video_info_t *info) { @@ -339,39 +362,18 @@ bool renderchain_render(void *data, const void *frame, return true; } -bool renderchain_init_shader_fvf(void *data, void *pass_data) -{ - d3d_video_t *chain = (d3d_video_t*)data; - d3d_video_t *pass = (d3d_video_t*)data; - LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)chain->dev; - - (void)pass_data; - -#if defined(_XBOX360) - static const D3DVERTEXELEMENT VertexElements[] = - { - { 0, 0 * sizeof(float), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, - { 0, 2 * sizeof(float), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, - D3DDECL_END() - }; - - if (FAILED(d3dr->CreateVertexDeclaration(VertexElements, &pass->vertex_decl))) - return false; -#endif - - return true; -} - -void renderchain_add_lut(void *data, - unsigned index, unsigned i) +bool renderchain_add_lut(void *data, + const char *id, const char *path, bool smooth) { xdk_renderchain_t *chain = (xdk_renderchain_t*)data; (void)data; - (void)index; - (void)i; + (void)id; + (void)path; + (void)smooth; /* stub */ + return false; } bool renderchain_add_pass(void *data, const void *info_data)