Direct3D blitting code doesn't do anything if updated area is 0 - fixes crash on Intel HD graphics.
This commit is contained in:
parent
23005e8682
commit
e7de1a6742
2 changed files with 12 additions and 0 deletions
|
|
@ -306,6 +306,9 @@ static void d3d_fs_blit_memtoscreen(int x, int y, int y1, int y2, int w, int h)
|
|||
int yy;
|
||||
double l, t, r, b;
|
||||
|
||||
if (y1 == y2)
|
||||
return; /*Nothing to do*/
|
||||
|
||||
d3d_verts[0].tu = d3d_verts[2].tu = d3d_verts[3].tu = 0;
|
||||
d3d_verts[0].tv = d3d_verts[3].tv = d3d_verts[4].tv = 0;
|
||||
d3d_verts[1].tu = d3d_verts[4].tu = d3d_verts[5].tu = (float)w / 2048.0;
|
||||
|
|
@ -396,6 +399,9 @@ static void d3d_fs_blit_memtoscreen_8(int x, int y, int w, int h)
|
|||
int xx, yy;
|
||||
double l, t, r, b;
|
||||
|
||||
if (!h)
|
||||
return; /*Nothing to do*/
|
||||
|
||||
d3d_verts[0].tu = d3d_verts[2].tu = d3d_verts[3].tu = 0;
|
||||
d3d_verts[0].tv = d3d_verts[3].tv = d3d_verts[4].tv = 0;
|
||||
d3d_verts[1].tu = d3d_verts[4].tu = d3d_verts[5].tu = (float)w / 2048.0;
|
||||
|
|
|
|||
|
|
@ -232,6 +232,9 @@ void d3d_blit_memtoscreen(int x, int y, int y1, int y2, int w, int h)
|
|||
uint32_t *p, *src;
|
||||
int yy;
|
||||
|
||||
if (y1 == y2)
|
||||
return; /*Nothing to do*/
|
||||
|
||||
d3d_verts[0].tu = d3d_verts[2].tu = d3d_verts[3].tu = 0;//0.5 / 2048.0;
|
||||
d3d_verts[0].tv = d3d_verts[3].tv = d3d_verts[4].tv = 0;//0.5 / 2048.0;
|
||||
d3d_verts[1].tu = d3d_verts[4].tu = d3d_verts[5].tu = (float)w / 2048.0;
|
||||
|
|
@ -306,6 +309,9 @@ void d3d_blit_memtoscreen_8(int x, int y, int w, int h)
|
|||
int yy, xx;
|
||||
HRESULT hr = D3D_OK;
|
||||
|
||||
if (h == 0)
|
||||
return; /*Nothing to do*/
|
||||
|
||||
d3d_verts[0].tu = d3d_verts[2].tu = d3d_verts[3].tu = 0;//0.5 / 2048.0;
|
||||
d3d_verts[0].tv = d3d_verts[3].tv = d3d_verts[4].tv = 0;//0.5 / 2048.0;
|
||||
d3d_verts[1].tu = d3d_verts[4].tu = d3d_verts[5].tu = (float)w / 2048.0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue