Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 0daff13

Browse filesBrowse files
committed
Fix flip match
1 parent ac820cd commit 0daff13
Copy full SHA for 0daff13

File tree

Expand file treeCollapse file tree

1 file changed

+13
-13
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+13
-13
lines changed
Open diff view settings
Collapse file

‎dds.cpp‎

Copy file name to clipboardExpand all lines: dds.cpp
+13-13Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,8 @@ namespace dds
251251
HRESULT __stdcall GetBltStatus( WRAP* This, DWORD dwFlags )
252252
{
253253
PROLOGUE;
254-
HRESULT hResult = This->dds1->lpVtbl->GetBltStatus( This->dds1, dwFlags );
254+
LPDIRECTDRAWSURFACE sf = dx::MatchFlip(This->dds1);
255+
HRESULT hResult = sf->lpVtbl->GetBltStatus(sf, dwFlags);
255256
EPILOGUE( hResult );
256257
}
257258

@@ -332,8 +333,6 @@ namespace dds
332333
HRESULT __stdcall IsLost( WRAP* This )
333334
{
334335
PROLOGUE;
335-
LPDIRECTDRAWSURFACE sf = dx::MatchFlip(This->dds1);
336-
HRESULT hResult = sf->lpVtbl->IsLost(sf);
337336
EPILOGUE( hResult );
338337
}
339338

@@ -385,12 +384,15 @@ namespace dds
385384
old_clipper = NULL;
386385
}
387386

388-
if (dx::caps && This->dds1 == dx::fake[1]) { // Back (Clipper is not supposed to be set on Front with Flip)
389-
if (SUCCEEDED(dx::fake[0]->lpVtbl->GetClipper(dx::fake[0], &old_clipper))) {
387+
LPDIRECTDRAWSURFACE sf = NULL;
388+
if (This->dds1 == dx::fake[0]) sf = dx::fake[1];
389+
else if (This->dds1 == dx::fake[1]) sf = dx::fake[0];
390+
if (sf) {
391+
if (SUCCEEDED(sf->lpVtbl->GetClipper(sf, &old_clipper))) {
390392
Wrap(This->dd_parent, iid_to_vtbl(IID_IDirectDrawClipper), (void**)&old_clipper);
391393
}
392-
dx::fake[0]->lpVtbl->SetClipper(dx::fake[0], lpDDClipper);
393-
if(old_clipper != NULL) {
394+
sf->lpVtbl->SetClipper(sf, lpDDClipper);
395+
if (old_clipper != NULL) {
394396
old_clipper->lpVtbl->Release(old_clipper);
395397
}
396398
}
@@ -400,12 +402,10 @@ namespace dds
400402
HRESULT __stdcall SetColorKey( WRAP* This, DWORD dwFlags, LPDDCOLORKEY lpDDColorKey )
401403
{
402404
PROLOGUE;
403-
HRESULT hResult = This->dds1->lpVtbl->SetColorKey( This->dds1, dwFlags, lpDDColorKey );
405+
HRESULT hResult = This->dds1->lpVtbl->SetColorKey(This->dds1, dwFlags, lpDDColorKey);
404406
INFO("SetColorKey L:%08X H:%08X to %08X : %08X\n", lpDDColorKey->dwColorSpaceLowValue, lpDDColorKey->dwColorSpaceHighValue, This->dds1, dwFlags);
405-
if (dx::caps) {
406-
if (This->dds1 == dx::fake[0]) dx::fake[1]->lpVtbl->SetColorKey(dx::fake[1], dwFlags, lpDDColorKey);
407-
else if (This->dds1 == dx::fake[1]) dx::fake[0]->lpVtbl->SetColorKey(dx::fake[0], dwFlags, lpDDColorKey);
408-
}
407+
if (This->dds1 == dx::fake[0]) dx::fake[1]->lpVtbl->SetColorKey(dx::fake[1], dwFlags, lpDDColorKey);
408+
else if (This->dds1 == dx::fake[1]) dx::fake[0]->lpVtbl->SetColorKey(dx::fake[0], dwFlags, lpDDColorKey);
409409
EPILOGUE( hResult );
410410
}
411411

@@ -432,7 +432,7 @@ namespace dds
432432
old_palette = NULL;
433433
}
434434

435-
if (This->dds1 == dx::fake[0]) { // Front
435+
if (This->dds1 == dx::fake[0]) { // Front (System wide)
436436
dx::palette = lpDDPalette;
437437
if (SUCCEEDED(dx::fake[1]->lpVtbl->GetPalette(dx::fake[1], &old_palette))) {
438438
Wrap(This->dd_parent, iid_to_vtbl(IID_IDirectDrawPalette), (void**)&old_palette);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.