diff --git a/gfx/drivers/d3d.h b/gfx/drivers/d3d.h index 883559e210..0acf533cb5 100644 --- a/gfx/drivers/d3d.h +++ b/gfx/drivers/d3d.h @@ -85,6 +85,7 @@ typedef struct d3d_video RECT font_rect; RECT font_rect_shifted; math_matrix_4x4 mvp; + math_matrix_4x4 mvp_rotate; math_matrix_4x4 mvp_transposed; struct video_viewport vp; diff --git a/gfx/drivers/d3d8.c b/gfx/drivers/d3d8.c index f54e3c4195..02c7a5077d 100644 --- a/gfx/drivers/d3d8.c +++ b/gfx/drivers/d3d8.c @@ -272,7 +272,7 @@ static void d3d8_renderchain_render_pass( d3d_set_viewports(chain->dev, &d3d->final_viewport); d3d_set_vertex_shader(d3dr, D3DFVF_CUSTOMVERTEX, NULL); d3d_set_stream_source(d3dr, 0, chain->vertex_buf, 0, sizeof(Vertex)); - d3d8_renderchain_set_mvp(d3d, chain, NULL, &d3d->mvp); + d3d8_renderchain_set_mvp(d3d, chain, NULL, &d3d->mvp_rotate); d3d_draw_primitive(d3dr, D3DPT_TRIANGLESTRIP, 0, 2); } @@ -826,7 +826,8 @@ static void d3d8_set_viewport(void *data, d3d_matrix_identity(&rot); d3d_matrix_rotation_z(&rot, d3d->dev_rotation * (M_PI / 2.0)); d3d_matrix_multiply(&proj, &ortho, &rot); - d3d_matrix_transpose(&d3d->mvp, &matrix); + d3d_matrix_transpose(&d3d->mvp, &ortho); + d3d_matrix_transpose(&d3d->mvp_rotate, &matrix); } static bool d3d8_initialize(d3d_video_t *d3d, const video_info_t *info)