DXGL r592 - Code Review
For
DXGL
(
recent comments
|
status changes
|
tags
|
authors
|
states
|
release notes
|
statistics
)
Jump to navigation
Jump to search
Repository:
DXGL
Revision:
<
r591
|
r592
|
r593
>
Date:
20:20, 8 February 2015
Author:
admin
Status:
new
Tags:
Comment:
Prevent crash on queue full event.
Sync on Blt to primary.
Modified paths:
/ddraw/glDirectDrawSurface.cpp
(modified) (
history
)
/ddraw/opqueue.c
(modified) (
history
)
Diff
[
purge
]
Index: ddraw/glDirectDrawSurface.cpp
—
—
@@ -867,6 +867,7 @@
868
868
this->Blt(lpDestRect, ddInterface->tmpsurface, &tmprect, dwFlags, lpDDBltFx);
869
869
}
870
870
else glRenderer_Blt(ddInterface->renderer,lpDestRect,src,this,lpSrcRect,dwFlags,lpDDBltFx);
871
+ if (this == ddInterface->primary) glRenderer_Sync(ddInterface->renderer);
871
872
TRACE_EXIT(23, DD_OK);
872
873
return DD_OK;
873
874
}
Index: ddraw/opqueue.c
—
—
@@ -93,9 +93,11 @@
94
94
while(queue->readptr)
95
95
{
96
96
waitfull = TRUE;
97
+ _exitspinlock(&queue->writelock);
97
98
_enterspinlock(&queue->readlock);
98
99
queue->waitfull = TRUE;
99
100
_exitspinlock(&queue->readlock);
101
+ _enterspinlock(&queue->writelock);
100
102
WaitForSingleObject(queue->waitevent, 10);
101
103
}
102
104
if (waitfull) ResetEvent(queue->waitevent);
Navigation menu
Personal tools
Log in
Namespaces
Special page
English
expanded
collapsed
Views
More
expanded
collapsed
Search
Navigation
Home
Main page
Recent changes
Random page
MediaWiki help
Introduction
Progress
Downloads
Source code
Build from source
AppDB
Bug reports
Forums
Tools
Special pages
Printable version