mirror of
https://github.com/libretro/RetroArch
synced 2025-02-10 12:40:03 +00:00
(XDK) Fixes rotation on Xbox 1
This commit is contained in:
parent
734fdc4bf6
commit
7937bff786
@ -47,7 +47,6 @@
|
|||||||
#if defined(_XBOX1)
|
#if defined(_XBOX1)
|
||||||
wchar_t strw_buffer[128];
|
wchar_t strw_buffer[128];
|
||||||
unsigned font_x, font_y;
|
unsigned font_x, font_y;
|
||||||
FLOAT angle;
|
|
||||||
#elif defined(_XBOX360)
|
#elif defined(_XBOX360)
|
||||||
const DWORD g_MapLinearToSrgbGpuFormat[] =
|
const DWORD g_MapLinearToSrgbGpuFormat[] =
|
||||||
{
|
{
|
||||||
@ -256,30 +255,37 @@ static void xdk_d3d_set_rotation(void * data, unsigned orientation)
|
|||||||
{
|
{
|
||||||
(void)data;
|
(void)data;
|
||||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data;
|
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data;
|
||||||
FLOAT angle;
|
FLOAT angle = 0;
|
||||||
|
|
||||||
switch(orientation)
|
switch(orientation)
|
||||||
{
|
{
|
||||||
case ORIENTATION_NORMAL:
|
case ORIENTATION_NORMAL:
|
||||||
angle = M_PI * 0 / 180;
|
angle = M_PI * 0 / 180;
|
||||||
break;
|
break;
|
||||||
case ORIENTATION_VERTICAL:
|
case ORIENTATION_FLIPPED_ROTATED:
|
||||||
angle = M_PI * 270 / 180;
|
angle = M_PI * 90 / 180;
|
||||||
break;
|
break;
|
||||||
case ORIENTATION_FLIPPED:
|
case ORIENTATION_FLIPPED:
|
||||||
angle = M_PI * 180 / 180;
|
angle = M_PI * 180 / 180;
|
||||||
break;
|
break;
|
||||||
case ORIENTATION_FLIPPED_ROTATED:
|
case ORIENTATION_VERTICAL:
|
||||||
angle = M_PI * 90 / 180;
|
angle = M_PI * 270 / 180;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_HLSL
|
#if defined(HAVE_HLSL)
|
||||||
/* TODO: Move to D3DXMATRIX here */
|
/* TODO: Move to D3DXMATRIX here */
|
||||||
hlsl_set_proj_matrix(XMMatrixRotationZ(angle));
|
hlsl_set_proj_matrix(XMMatrixRotationZ(d3d->angle));
|
||||||
#endif
|
|
||||||
|
|
||||||
d3d->should_resize = TRUE;
|
d3d->should_resize = TRUE;
|
||||||
|
#elif defined(_XBOX1)
|
||||||
|
D3DXMATRIX p_out, p_rotate;
|
||||||
|
D3DXMatrixIdentity(&p_out);
|
||||||
|
D3DXMatrixRotationZ(&p_rotate, angle);
|
||||||
|
|
||||||
|
d3d->d3d_render_device->SetTransform(D3DTS_WORLD, &p_rotate);
|
||||||
|
d3d->d3d_render_device->SetTransform(D3DTS_VIEW, &p_out);
|
||||||
|
d3d->d3d_render_device->SetTransform(D3DTS_PROJECTION, &p_out);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_FBO
|
#ifdef HAVE_FBO
|
||||||
@ -352,18 +358,12 @@ void xdk_d3d_generate_pp(D3DPRESENT_PARAMETERS *d3dpp, const video_info_t *video
|
|||||||
if(XGetAVPack() == XC_AV_PACK_HDTV)
|
if(XGetAVPack() == XC_AV_PACK_HDTV)
|
||||||
{
|
{
|
||||||
if(video_mode & XC_VIDEO_FLAGS_HDTV_480p)
|
if(video_mode & XC_VIDEO_FLAGS_HDTV_480p)
|
||||||
{
|
|
||||||
d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE;
|
d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE;
|
||||||
}
|
|
||||||
else if(video_mode & XC_VIDEO_FLAGS_HDTV_720p)
|
else if(video_mode & XC_VIDEO_FLAGS_HDTV_720p)
|
||||||
{
|
|
||||||
d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE;
|
d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE;
|
||||||
}
|
|
||||||
else if(video_mode & XC_VIDEO_FLAGS_HDTV_1080i)
|
else if(video_mode & XC_VIDEO_FLAGS_HDTV_1080i)
|
||||||
{
|
|
||||||
d3dpp->Flags = D3DPRESENTFLAG_INTERLACED;
|
d3dpp->Flags = D3DPRESENTFLAG_INTERLACED;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if(g_extern.console.rmenu.state.rmenu_widescreen.enable)
|
if(g_extern.console.rmenu.state.rmenu_widescreen.enable)
|
||||||
d3dpp->Flags |= D3DPRESENTFLAG_WIDESCREEN;
|
d3dpp->Flags |= D3DPRESENTFLAG_WIDESCREEN;
|
||||||
@ -739,14 +739,6 @@ static bool xdk_d3d_frame(void *data, const void *frame,
|
|||||||
#if defined(_XBOX1)
|
#if defined(_XBOX1)
|
||||||
d3d->d3d_render_device->SetVertexShader(D3DFVF_XYZ | D3DFVF_TEX1);
|
d3d->d3d_render_device->SetVertexShader(D3DFVF_XYZ | D3DFVF_TEX1);
|
||||||
|
|
||||||
D3DXMATRIX p_out, p_rotate;
|
|
||||||
D3DXMatrixIdentity(&p_out);
|
|
||||||
D3DXMatrixRotationZ(&p_rotate, angle);
|
|
||||||
|
|
||||||
d3d->d3d_render_device->SetTransform(D3DTS_WORLD, &p_rotate);
|
|
||||||
d3d->d3d_render_device->SetTransform(D3DTS_VIEW, &p_out);
|
|
||||||
d3d->d3d_render_device->SetTransform(D3DTS_PROJECTION, &p_out);
|
|
||||||
|
|
||||||
d3d->d3d_render_device->SetStreamSource(0, d3d->vertex_buf, sizeof(DrawVerticeFormats));
|
d3d->d3d_render_device->SetStreamSource(0, d3d->vertex_buf, sizeof(DrawVerticeFormats));
|
||||||
d3d->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0);
|
d3d->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user