Create renderchain_driver_t

This commit is contained in:
twinaphex 2015-04-06 15:52:41 +02:00
parent ee94ba9a84
commit a529e8bc44
3 changed files with 67 additions and 4 deletions

@ -1432,10 +1432,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,
@ -1478,3 +1474,20 @@ void renderchain_convert_geometry(
break;
}
}
renderchain_driver_t cg_d3d9_renderchain = {
renderchain_free,
renderchain_new,
renderchain_deinit,
renderchain_deinit_shader,
renderchain_init_shader,
renderchain_init_shader_fvf,
renderchain_init,
renderchain_set_final_viewport,
renderchain_add_pass,
renderchain_add_lut,
renderchain_add_state_tracker,
renderchain_render,
renderchain_convert_geometry,
"cg_d3d9",
};

@ -36,6 +36,39 @@ enum
TEXTURESMASK = TEXTURES - 1
};
typedef struct renderchain_driver
{
void (*chain_free)(void *data);
void *(*chain_new)(void);
void (*deinit)(void *data);
void (*deinit_shader)(void);
bool (init_shader)(void *data);
bool (*init_shader_fvf)(void *data, void *pass_data);
bool (*init)(void *data,
const video_info_t *video_info,
void *dev_data,
const void *final_viewport_data,
const void *info_data,
unsigned fmt);
void (*set_final_viewport)(void *data,
void *renderchain_data, const void *viewport_data);
bool (*add_pass)(void *data, const void *info_data);
bool (*add_lut)(void *data,
const char *id, const char *path,
bool smooth);
void (*add_state_tracker)(void *data, void *tracker_data);
bool (*render)(void *chain_data, const void *data,
unsigned width, unsigned height, unsigned pitch, unsigned rotation);
void (*convert_geometry)(void *data, const void *info_data,
unsigned *out_width, unsigned *out_height,
unsigned width, unsigned height,
D3DVIEWPORT *final_viewport);
const char *ident;
} renderchain_driver_t;
renderchain_driver_t cg_d3d9_renderchain;
renderchain_driver_t xdk_renderchain;
void renderchain_free(void *data);
void *renderchain_new(void);

@ -358,3 +358,20 @@ bool renderchain_init_shader_fvf(void *data, void *pass_data)
return true;
}
renderchain_driver_t xdk_renderchain = {
renderchain_free,
renderchain_new,
renderchain_deinit,
renderchain_deinit_shader,
renderchain_init_shader,
renderchain_init_shader_fvf,
renderchain_init,
renderchain_set_final_viewport,
renderchain_add_pass,
renderchain_add_lut,
renderchain_add_state_tracker,
renderchain_render,
renderchain_convert_geometry,
"xdk",
};