(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 "../../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,
void *data, unsigned video_width, unsigned video_height)
{
ctr_scale_vector_t scale_vector;
int colorR, colorG, colorB, colorA;
ctr_vertex_t *v = NULL;
struct ctr_texture *texture = NULL;
const float *color = NULL;
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)
return;
ctr_scale_vector_t scale_vector;
ctr_set_scale_vector(&scale_vector,
CTR_TOP_FRAMEBUFFER_WIDTH, CTR_TOP_FRAMEBUFFER_HEIGHT,
texture->width, texture->height);
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_t* v = ctr->vertex_cache.current++;
v = ctr->vertex_cache.current++;
v->x0 = draw->x;
v->y0 = 240 - draw->height - draw->y;
@ -128,9 +127,6 @@ static void gfx_display_ctr_draw(gfx_display_ctx_draw_t *draw,
#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(
void **font_handle, void *video_data,
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_ctr_draw,
gfx_display_ctr_draw_pipeline,
gfx_display_ctr_blend_begin,
gfx_display_ctr_blend_end,
NULL, /* draw_pipeline */
NULL, /* blend_begin */
NULL, /* blend_end */
NULL, /* get_default_mvp */
NULL, /* get_default_vertices */
NULL, /* get_default_tex_coords */

View File

@ -74,7 +74,7 @@ static INT32 gfx_display_prim_to_d3d8_enum(
break;
}
/* TOD/FIXME - hack */
/* TODO/FIXME - hack */
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;
}
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(
void **font_handle, void *video_data,
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_d3d8_draw,
gfx_display_d3d8_draw_pipeline,
NULL, /* draw_pipeline */
gfx_display_d3d8_blend_begin,
gfx_display_d3d8_blend_end,
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];
}
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,
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(
void **font_handle, void *video_data,
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_gdi_draw,
gfx_display_gdi_draw_pipeline,
gfx_display_gdi_blend_begin,
gfx_display_gdi_blend_end,
NULL, /* draw_pipeline */
NULL, /* blend_begin */
NULL, /* blend_end */
NULL, /* get_default_mvp */
gfx_display_gdi_get_default_vertices,
gfx_display_gdi_get_default_tex_coords,

View File

@ -22,13 +22,8 @@
#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,
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(
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_switch_draw,
gfx_display_switch_draw_pipeline,
gfx_display_switch_blend_begin,
gfx_display_switch_blend_end,
NULL, /* draw_pipeline */
NULL, /* blend_begin */
NULL, /* blend_end */
NULL, /* get_default_mvp */
gfx_display_switch_get_default_vertices,
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;
}
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,
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(
void **font_handle, void *video_data,
const char *font_path, float font_size,
@ -170,12 +164,11 @@ static void gfx_display_vita2d_scissor_end(
vita2d_disable_clipping();
}
gfx_display_ctx_driver_t gfx_display_ctx_vita2d = {
gfx_display_vita2d_draw,
gfx_display_vita2d_draw_pipeline,
gfx_display_vita2d_blend_begin,
gfx_display_vita2d_blend_end,
NULL, /* draw_pipeline */
NULL, /* blend_begin */
NULL, /* blend_end */
gfx_display_vita2d_get_default_mvp,
gfx_display_vita2d_get_default_vertices,
gfx_display_vita2d_get_default_tex_coords,

View File

@ -28,9 +28,6 @@
#include "../../wiiu/system/memory.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,
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)
{
case VIDEO_SHADER_MENU:
GX2SetShader(&ribbon_shader);
break;
case VIDEO_SHADER_MENU_2:
GX2SetShader(&ribbon_simple_shader);
break;
case VIDEO_SHADER_MENU_3:
GX2SetShader(&snow_simple_shader);
break;
case VIDEO_SHADER_MENU_4:
GX2SetShader(&snow_shader);
break;
case VIDEO_SHADER_MENU_5:
GX2SetShader(&bokeh_shader);
break;
case VIDEO_SHADER_MENU_6:
GX2SetShader(&snowflake_shader);
break;
default:
break;
case VIDEO_SHADER_MENU:
GX2SetShader(&ribbon_shader);
break;
case VIDEO_SHADER_MENU_2:
GX2SetShader(&ribbon_simple_shader);
break;
case VIDEO_SHADER_MENU_3:
GX2SetShader(&snow_simple_shader);
break;
case VIDEO_SHADER_MENU_4:
GX2SetShader(&snow_shader);
break;
case VIDEO_SHADER_MENU_5:
GX2SetShader(&bokeh_shader);
break;
case VIDEO_SHADER_MENU_6:
GX2SetShader(&snowflake_shader);
break;
default:
break;
}
switch(draw->pipeline_id)
{
case VIDEO_SHADER_MENU:
case VIDEO_SHADER_MENU_2:
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,
GX2_BLEND_COMBINE_MODE_ADD,
GX2_ENABLE, GX2_BLEND_MODE_SRC_ALPHA, GX2_BLEND_MODE_INV_SRC_ALPHA,
GX2_BLEND_COMBINE_MODE_ADD);
case VIDEO_SHADER_MENU_3:
case VIDEO_SHADER_MENU_4:
case VIDEO_SHADER_MENU_5:
case VIDEO_SHADER_MENU_6:
GX2DrawEx(GX2_PRIMITIVE_MODE_QUADS, 4, 0, 1);
break;
case VIDEO_SHADER_MENU:
case VIDEO_SHADER_MENU_2:
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,
GX2_BLEND_COMBINE_MODE_ADD,
GX2_ENABLE, GX2_BLEND_MODE_SRC_ALPHA, GX2_BLEND_MODE_INV_SRC_ALPHA,
GX2_BLEND_COMBINE_MODE_ADD);
case VIDEO_SHADER_MENU_3:
case VIDEO_SHADER_MENU_4:
case VIDEO_SHADER_MENU_5:
case VIDEO_SHADER_MENU_6:
GX2DrawEx(GX2_PRIMITIVE_MODE_QUADS, 4, 0, 1);
break;
}
}
@ -97,10 +94,10 @@ static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
GX2SetShaderMode(GX2_SHADER_MODE_UNIFORM_BLOCK);
GX2SetShader(&tex_shader);
GX2SetVertexUniformBlock(tex_shader.vs.uniformBlocks[0].offset,
tex_shader.vs.uniformBlocks[0].size,
wiiu->ubo_mvp);
tex_shader.vs.uniformBlocks[0].size,
wiiu->ubo_mvp);
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)
{
@ -184,7 +181,7 @@ static void gfx_display_wiiu_draw(gfx_display_ctx_draw_t *draw,
v->coord.height = 1.0f;
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)
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);
GX2SetShader(&sprite_shader);
// GX2SetGeometryShaderInputRingBuffer(wiiu->input_ring_buffer, wiiu->input_ring_buffer_size);
// GX2SetGeometryShaderOutputRingBuffer(wiiu->output_ring_buffer, wiiu->output_ring_buffer_size);
#if 0
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,
sprite_shader.vs.uniformBlocks[0].size,
wiiu->ubo_vp);
sprite_shader.vs.uniformBlocks[0].size,
wiiu->ubo_vp);
GX2SetVertexUniformBlock(sprite_shader.vs.uniformBlocks[1].offset,
sprite_shader.vs.uniformBlocks[1].size,
wiiu->ubo_tex);
sprite_shader.vs.uniformBlocks[1].size,
wiiu->ubo_tex);
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,
@ -269,7 +268,7 @@ static bool gfx_display_wiiu_font_init_first(
bool is_threaded)
{
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,
is_threaded,
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_wiiu_draw,
gfx_display_wiiu_draw_pipeline,
gfx_display_wiiu_blend_begin,
gfx_display_wiiu_blend_end,
NULL, /* blend_begin */
NULL, /* blend_end */
NULL, /* get_default_mvp */
NULL, /* get_default_vertices */
NULL, /* get_default_tex_coords */