| Index: ddraw/glDirectDrawSurface.cpp |
| — | — | @@ -1148,6 +1148,18 @@ |
| 1149 | 1149 | if(!this) TRACE_RET(HRESULT,23,DDERR_INVALIDOBJECT);
|
| 1150 | 1150 | if(!hDC) TRACE_RET(HRESULT,23,DDERR_INVALIDPARAMS);
|
| 1151 | 1151 | HRESULT error = glTexture_ReleaseDC(this->texture, this->miplevel, hDC);
|
| | 1152 | + if (((ddsd.ddsCaps.dwCaps & (DDSCAPS_FRONTBUFFER)) &&
|
| | 1153 | + (ddsd.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)) ||
|
| | 1154 | + ((ddsd.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) &&
|
| | 1155 | + !(ddsd.ddsCaps.dwCaps & DDSCAPS_FLIP)))
|
| | 1156 | + {
|
| | 1157 | + if (ddInterface->lastsync)
|
| | 1158 | + {
|
| | 1159 | + RenderScreen(texture, this, 1);
|
| | 1160 | + ddInterface->lastsync = false;
|
| | 1161 | + }
|
| | 1162 | + else RenderScreen(texture, this, 0);
|
| | 1163 | + }
|
| 1152 | 1164 | TRACE_EXIT(23,error);
|
| 1153 | 1165 | return error;
|
| 1154 | 1166 | }
|
| Index: dxgltest/dxgltest.cpp |
| — | — | @@ -220,7 +220,7 @@ |
| 221 | 221 | const TEST_ITEM Tests2D[] =
|
| 222 | 222 | { // minver maxver buffermin max usesfps defaultfps usestexture usesfsaa name
|
| 223 | 223 | {1, 7, 0, 4, true, 1.0, false, false, _T("Color palette and gradient screens (direct surface access)")},
|
| 224 | | - {1, 7, 0, 1, false, 0.0, false, false, _T("Random noise (direct surface access speed test)")},
|
| | 224 | + {1, 7, 0, 1, false, 0.0, false, false, _T("Random noise (continuous surface upload)")},
|
| 225 | 225 | {1, 7, 0, 7, true, 1.0, false, false, _T("GDI Test patterns (GetDC() test)")},
|
| 226 | 226 | {1, 7, 0, 0, false, 0.0, false, false, _T("Random GDI patterns (does not clear screen between paints)")},
|
| 227 | 227 | {1, 7, 0, 1, true, 60.0, false, false, _T("BltFast background and sprites")},
|