(drivers_display) Cleanups

This commit is contained in:
twinaphex 2020-09-26 23:31:12 +02:00
parent e1dbf5dab1
commit b830d15628
6 changed files with 68 additions and 95 deletions

View File

@ -27,13 +27,12 @@
#include "../drivers/ctr_gu.h" #include "../drivers/ctr_gu.h"
#include "../../ctr/gpu_old.h" #include "../../ctr/gpu_old.h"
static void gfx_display_ctr_blend_begin(void *data) { }
static void gfx_display_ctr_blend_end(void *data) { }
static void gfx_display_ctr_draw(gfx_display_ctx_draw_t *draw, static void gfx_display_ctr_draw(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) void *data, unsigned video_width, unsigned video_height)
{ {
ctr_scale_vector_t scale_vector;
int colorR, colorG, colorB, colorA; int colorR, colorG, colorB, colorA;
ctr_vertex_t *v = NULL;
struct ctr_texture *texture = NULL; struct ctr_texture *texture = NULL;
const float *color = NULL; const float *color = NULL;
ctr_video_t *ctr = (ctr_video_t*)data; ctr_video_t *ctr = (ctr_video_t*)data;
@ -47,16 +46,16 @@ static void gfx_display_ctr_draw(gfx_display_ctx_draw_t *draw,
if (!texture) if (!texture)
return; return;
ctr_scale_vector_t scale_vector;
ctr_set_scale_vector(&scale_vector, ctr_set_scale_vector(&scale_vector,
CTR_TOP_FRAMEBUFFER_WIDTH, CTR_TOP_FRAMEBUFFER_HEIGHT, CTR_TOP_FRAMEBUFFER_WIDTH, CTR_TOP_FRAMEBUFFER_HEIGHT,
texture->width, texture->height); texture->width, texture->height);
ctrGuSetVertexShaderFloatUniform(0, (float*)&scale_vector, 1); ctrGuSetVertexShaderFloatUniform(0, (float*)&scale_vector, 1);
if ((ctr->vertex_cache.size - (ctr->vertex_cache.current - ctr->vertex_cache.buffer)) < 1) if ((ctr->vertex_cache.size - (ctr->vertex_cache.current
- ctr->vertex_cache.buffer)) < 1)
ctr->vertex_cache.current = ctr->vertex_cache.buffer; ctr->vertex_cache.current = ctr->vertex_cache.buffer;
ctr_vertex_t* v = ctr->vertex_cache.current++; v = ctr->vertex_cache.current++;
v->x0 = draw->x; v->x0 = draw->x;
v->y0 = 240 - draw->height - draw->y; v->y0 = 240 - draw->height - draw->y;
@ -128,9 +127,6 @@ static void gfx_display_ctr_draw(gfx_display_ctx_draw_t *draw,
#endif #endif
} }
static void gfx_display_ctr_draw_pipeline(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) { }
static bool gfx_display_ctr_font_init_first( static bool gfx_display_ctr_font_init_first(
void **font_handle, void *video_data, void **font_handle, void *video_data,
const char *font_path, float font_size, const char *font_path, float font_size,
@ -146,9 +142,9 @@ static bool gfx_display_ctr_font_init_first(
gfx_display_ctx_driver_t gfx_display_ctx_ctr = { gfx_display_ctx_driver_t gfx_display_ctx_ctr = {
gfx_display_ctr_draw, gfx_display_ctr_draw,
gfx_display_ctr_draw_pipeline, NULL, /* draw_pipeline */
gfx_display_ctr_blend_begin, NULL, /* blend_begin */
gfx_display_ctr_blend_end, NULL, /* blend_end */
NULL, /* get_default_mvp */ NULL, /* get_default_mvp */
NULL, /* get_default_vertices */ NULL, /* get_default_vertices */
NULL, /* get_default_tex_coords */ NULL, /* get_default_tex_coords */

View File

@ -74,7 +74,7 @@ static INT32 gfx_display_prim_to_d3d8_enum(
break; break;
} }
/* TOD/FIXME - hack */ /* TODO/FIXME - hack */
return 0; return 0;
} }
@ -218,9 +218,6 @@ static void gfx_display_d3d8_draw(gfx_display_ctx_draw_t *draw,
d3d->menu_display.offset += draw->coords->vertices; d3d->menu_display.offset += draw->coords->vertices;
} }
static void gfx_display_d3d8_draw_pipeline(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) { }
static bool gfx_display_d3d8_font_init_first( static bool gfx_display_d3d8_font_init_first(
void **font_handle, void *video_data, void **font_handle, void *video_data,
const char *font_path, float font_size, const char *font_path, float font_size,
@ -237,7 +234,7 @@ static bool gfx_display_d3d8_font_init_first(
gfx_display_ctx_driver_t gfx_display_ctx_d3d8 = { gfx_display_ctx_driver_t gfx_display_ctx_d3d8 = {
gfx_display_d3d8_draw, gfx_display_d3d8_draw,
gfx_display_d3d8_draw_pipeline, NULL, /* draw_pipeline */
gfx_display_d3d8_blend_begin, gfx_display_d3d8_blend_begin,
gfx_display_d3d8_blend_end, gfx_display_d3d8_blend_end,
gfx_display_d3d8_get_default_mvp, gfx_display_d3d8_get_default_mvp,

View File

@ -44,10 +44,6 @@ static const float *gfx_display_gdi_get_default_tex_coords(void)
return &dummy[0]; return &dummy[0];
} }
static void gfx_display_gdi_blend_begin(void *data) { }
static void gfx_display_gdi_blend_end(void *data) { }
static void gfx_display_gdi_draw(gfx_display_ctx_draw_t *draw, static void gfx_display_gdi_draw(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) void *data, unsigned video_width, unsigned video_height)
{ {
@ -118,9 +114,6 @@ static void gfx_display_gdi_draw(gfx_display_ctx_draw_t *draw,
} }
} }
static void gfx_display_gdi_draw_pipeline(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) { }
static bool gfx_display_gdi_font_init_first( static bool gfx_display_gdi_font_init_first(
void **font_handle, void *video_data, void **font_handle, void *video_data,
const char *font_path, float gdi_font_size, const char *font_path, float gdi_font_size,
@ -137,9 +130,9 @@ static bool gfx_display_gdi_font_init_first(
gfx_display_ctx_driver_t gfx_display_ctx_gdi = { gfx_display_ctx_driver_t gfx_display_ctx_gdi = {
gfx_display_gdi_draw, gfx_display_gdi_draw,
gfx_display_gdi_draw_pipeline, NULL, /* draw_pipeline */
gfx_display_gdi_blend_begin, NULL, /* blend_begin */
gfx_display_gdi_blend_end, NULL, /* blend_end */
NULL, /* get_default_mvp */ NULL, /* get_default_mvp */
gfx_display_gdi_get_default_vertices, gfx_display_gdi_get_default_vertices,
gfx_display_gdi_get_default_tex_coords, gfx_display_gdi_get_default_tex_coords,

View File

@ -22,13 +22,8 @@
#include "../gfx_display.h" #include "../gfx_display.h"
static void gfx_display_switch_blend_begin(void *data) { }
static void gfx_display_switch_blend_end(void *data) { }
static void gfx_display_switch_draw(gfx_display_ctx_draw_t *draw, static void gfx_display_switch_draw(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) { } void *data, unsigned video_width, unsigned video_height) { }
static void gfx_display_switch_draw_pipeline(
gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) { }
static bool gfx_display_switch_font_init_first( static bool gfx_display_switch_font_init_first(
void **font_handle, void *video_data, void **font_handle, void *video_data,
@ -57,9 +52,9 @@ static const float *gfx_display_switch_get_default_tex_coords(void)
gfx_display_ctx_driver_t gfx_display_ctx_switch = { gfx_display_ctx_driver_t gfx_display_ctx_switch = {
gfx_display_switch_draw, gfx_display_switch_draw,
gfx_display_switch_draw_pipeline, NULL, /* draw_pipeline */
gfx_display_switch_blend_begin, NULL, /* blend_begin */
gfx_display_switch_blend_end, NULL, /* blend_end */
NULL, /* get_default_mvp */ NULL, /* get_default_mvp */
gfx_display_switch_get_default_vertices, gfx_display_switch_get_default_vertices,
gfx_display_switch_get_default_tex_coords, gfx_display_switch_get_default_tex_coords,

View File

@ -74,9 +74,6 @@ static void *gfx_display_vita2d_get_default_mvp(void *data)
return &vita2d->mvp_no_rot; return &vita2d->mvp_no_rot;
} }
static void gfx_display_vita2d_blend_begin(void *data) { }
static void gfx_display_vita2d_blend_end(void *data) { }
static void gfx_display_vita2d_draw(gfx_display_ctx_draw_t *draw, static void gfx_display_vita2d_draw(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) void *data, unsigned video_width, unsigned video_height)
{ {
@ -134,9 +131,6 @@ static void gfx_display_vita2d_draw(gfx_display_ctx_draw_t *draw,
} }
} }
static void gfx_display_vita2d_draw_pipeline(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) { }
static bool gfx_display_vita2d_font_init_first( static bool gfx_display_vita2d_font_init_first(
void **font_handle, void *video_data, void **font_handle, void *video_data,
const char *font_path, float font_size, const char *font_path, float font_size,
@ -170,12 +164,11 @@ static void gfx_display_vita2d_scissor_end(
vita2d_disable_clipping(); vita2d_disable_clipping();
} }
gfx_display_ctx_driver_t gfx_display_ctx_vita2d = { gfx_display_ctx_driver_t gfx_display_ctx_vita2d = {
gfx_display_vita2d_draw, gfx_display_vita2d_draw,
gfx_display_vita2d_draw_pipeline, NULL, /* draw_pipeline */
gfx_display_vita2d_blend_begin, NULL, /* blend_begin */
gfx_display_vita2d_blend_end, NULL, /* blend_end */
gfx_display_vita2d_get_default_mvp, gfx_display_vita2d_get_default_mvp,
gfx_display_vita2d_get_default_vertices, gfx_display_vita2d_get_default_vertices,
gfx_display_vita2d_get_default_tex_coords, gfx_display_vita2d_get_default_tex_coords,

View File

@ -28,9 +28,6 @@
#include "../../wiiu/system/memory.h" #include "../../wiiu/system/memory.h"
#include "../../wiiu/wiiu_dbg.h" #include "../../wiiu/wiiu_dbg.h"
static void gfx_display_wiiu_blend_begin(void *data) { }
static void gfx_display_wiiu_blend_end(void *data) { }
static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw, static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
void *data, unsigned video_width, unsigned video_height) void *data, unsigned video_width, unsigned video_height)
{ {
@ -45,43 +42,43 @@ static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
switch(draw->pipeline_id) switch(draw->pipeline_id)
{ {
case VIDEO_SHADER_MENU: case VIDEO_SHADER_MENU:
GX2SetShader(&ribbon_shader); GX2SetShader(&ribbon_shader);
break; break;
case VIDEO_SHADER_MENU_2: case VIDEO_SHADER_MENU_2:
GX2SetShader(&ribbon_simple_shader); GX2SetShader(&ribbon_simple_shader);
break; break;
case VIDEO_SHADER_MENU_3: case VIDEO_SHADER_MENU_3:
GX2SetShader(&snow_simple_shader); GX2SetShader(&snow_simple_shader);
break; break;
case VIDEO_SHADER_MENU_4: case VIDEO_SHADER_MENU_4:
GX2SetShader(&snow_shader); GX2SetShader(&snow_shader);
break; break;
case VIDEO_SHADER_MENU_5: case VIDEO_SHADER_MENU_5:
GX2SetShader(&bokeh_shader); GX2SetShader(&bokeh_shader);
break; break;
case VIDEO_SHADER_MENU_6: case VIDEO_SHADER_MENU_6:
GX2SetShader(&snowflake_shader); GX2SetShader(&snowflake_shader);
break; break;
default: default:
break; break;
} }
switch(draw->pipeline_id) switch(draw->pipeline_id)
{ {
case VIDEO_SHADER_MENU: case VIDEO_SHADER_MENU:
case VIDEO_SHADER_MENU_2: case VIDEO_SHADER_MENU_2:
GX2DrawEx(GX2_PRIMITIVE_MODE_TRIANGLE_STRIP, draw->coords->vertices, 0, 1); GX2DrawEx(GX2_PRIMITIVE_MODE_TRIANGLE_STRIP, draw->coords->vertices, 0, 1);
GX2SetBlendControl(GX2_RENDER_TARGET_0, GX2_BLEND_MODE_SRC_ALPHA, GX2_BLEND_MODE_INV_SRC_ALPHA, GX2SetBlendControl(GX2_RENDER_TARGET_0, GX2_BLEND_MODE_SRC_ALPHA, GX2_BLEND_MODE_INV_SRC_ALPHA,
GX2_BLEND_COMBINE_MODE_ADD, GX2_BLEND_COMBINE_MODE_ADD,
GX2_ENABLE, GX2_BLEND_MODE_SRC_ALPHA, GX2_BLEND_MODE_INV_SRC_ALPHA, GX2_ENABLE, GX2_BLEND_MODE_SRC_ALPHA, GX2_BLEND_MODE_INV_SRC_ALPHA,
GX2_BLEND_COMBINE_MODE_ADD); GX2_BLEND_COMBINE_MODE_ADD);
case VIDEO_SHADER_MENU_3: case VIDEO_SHADER_MENU_3:
case VIDEO_SHADER_MENU_4: case VIDEO_SHADER_MENU_4:
case VIDEO_SHADER_MENU_5: case VIDEO_SHADER_MENU_5:
case VIDEO_SHADER_MENU_6: case VIDEO_SHADER_MENU_6:
GX2DrawEx(GX2_PRIMITIVE_MODE_QUADS, 4, 0, 1); GX2DrawEx(GX2_PRIMITIVE_MODE_QUADS, 4, 0, 1);
break; break;
} }
} }
@ -97,10 +94,10 @@ static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
GX2SetShaderMode(GX2_SHADER_MODE_UNIFORM_BLOCK); GX2SetShaderMode(GX2_SHADER_MODE_UNIFORM_BLOCK);
GX2SetShader(&tex_shader); GX2SetShader(&tex_shader);
GX2SetVertexUniformBlock(tex_shader.vs.uniformBlocks[0].offset, GX2SetVertexUniformBlock(tex_shader.vs.uniformBlocks[0].offset,
tex_shader.vs.uniformBlocks[0].size, tex_shader.vs.uniformBlocks[0].size,
wiiu->ubo_mvp); wiiu->ubo_mvp);
GX2SetAttribBuffer(0, wiiu->vertex_cache_tex.size * sizeof(*wiiu->vertex_cache_tex.v), GX2SetAttribBuffer(0, wiiu->vertex_cache_tex.size * sizeof(*wiiu->vertex_cache_tex.v),
sizeof(*wiiu->vertex_cache_tex.v), wiiu->vertex_cache_tex.v); sizeof(*wiiu->vertex_cache_tex.v), wiiu->vertex_cache_tex.v);
if (!draw->coords->vertex) if (!draw->coords->vertex)
{ {
@ -184,7 +181,7 @@ static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
v->coord.height = 1.0f; v->coord.height = 1.0f;
v->color = COLOR_RGBA(0xFF * draw->coords->color[0], 0xFF * draw->coords->color[1], v->color = COLOR_RGBA(0xFF * draw->coords->color[0], 0xFF * draw->coords->color[1],
0xFF * draw->coords->color[2], 0xFF * draw->coords->color[3]); 0xFF * draw->coords->color[2], 0xFF * draw->coords->color[3]);
if (draw->texture) if (draw->texture)
GX2SetPixelTexture((GX2Texture*)draw->texture, sprite_shader.ps.samplerVars[0].location); GX2SetPixelTexture((GX2Texture*)draw->texture, sprite_shader.ps.samplerVars[0].location);
@ -196,16 +193,18 @@ static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
GX2SetShaderMode(GX2_SHADER_MODE_GEOMETRY_SHADER); GX2SetShaderMode(GX2_SHADER_MODE_GEOMETRY_SHADER);
GX2SetShader(&sprite_shader); GX2SetShader(&sprite_shader);
// GX2SetGeometryShaderInputRingBuffer(wiiu->input_ring_buffer, wiiu->input_ring_buffer_size); #if 0
// GX2SetGeometryShaderOutputRingBuffer(wiiu->output_ring_buffer, wiiu->output_ring_buffer_size); GX2SetGeometryShaderInputRingBuffer(wiiu->input_ring_buffer, wiiu->input_ring_buffer_size);
GX2SetGeometryShaderOutputRingBuffer(wiiu->output_ring_buffer, wiiu->output_ring_buffer_size);
#endif
GX2SetVertexUniformBlock(sprite_shader.vs.uniformBlocks[0].offset, GX2SetVertexUniformBlock(sprite_shader.vs.uniformBlocks[0].offset,
sprite_shader.vs.uniformBlocks[0].size, sprite_shader.vs.uniformBlocks[0].size,
wiiu->ubo_vp); wiiu->ubo_vp);
GX2SetVertexUniformBlock(sprite_shader.vs.uniformBlocks[1].offset, GX2SetVertexUniformBlock(sprite_shader.vs.uniformBlocks[1].offset,
sprite_shader.vs.uniformBlocks[1].size, sprite_shader.vs.uniformBlocks[1].size,
wiiu->ubo_tex); wiiu->ubo_tex);
GX2SetAttribBuffer(0, wiiu->vertex_cache.size * sizeof(*wiiu->vertex_cache.v), GX2SetAttribBuffer(0, wiiu->vertex_cache.size * sizeof(*wiiu->vertex_cache.v),
sizeof(*wiiu->vertex_cache.v), wiiu->vertex_cache.v); sizeof(*wiiu->vertex_cache.v), wiiu->vertex_cache.v);
} }
static void gfx_display_wiiu_draw_pipeline(gfx_display_ctx_draw_t *draw, static void gfx_display_wiiu_draw_pipeline(gfx_display_ctx_draw_t *draw,
@ -269,7 +268,7 @@ static bool gfx_display_wiiu_font_init_first(
bool is_threaded) bool is_threaded)
{ {
font_data_t **handle = (font_data_t**)font_handle; font_data_t **handle = (font_data_t**)font_handle;
*handle = font_driver_init_first(video_data, *handle = font_driver_init_first(video_data,
font_path, font_size, true, font_path, font_size, true,
is_threaded, is_threaded,
FONT_DRIVER_RENDER_WIIU); FONT_DRIVER_RENDER_WIIU);
@ -298,8 +297,8 @@ static void gfx_display_wiiu_scissor_end(
gfx_display_ctx_driver_t gfx_display_ctx_wiiu = { gfx_display_ctx_driver_t gfx_display_ctx_wiiu = {
gfx_display_wiiu_draw, gfx_display_wiiu_draw,
gfx_display_wiiu_draw_pipeline, gfx_display_wiiu_draw_pipeline,
gfx_display_wiiu_blend_begin, NULL, /* blend_begin */
gfx_display_wiiu_blend_end, NULL, /* blend_end */
NULL, /* get_default_mvp */ NULL, /* get_default_mvp */
NULL, /* get_default_vertices */ NULL, /* get_default_vertices */
NULL, /* get_default_tex_coords */ NULL, /* get_default_tex_coords */