Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Aleksandr Isakov
wine-fonts
Commits
9740555d
Commit
9740555d
authored
Jul 17, 2006
by
Stefan Dösinger
Committed by
Alexandre Julliard
Jul 18, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Duplicate flips in software if the local copy is up to date.
parent
9a9a14d4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
49 additions
and
2 deletions
+49
-2
swapchain.c
dlls/wined3d/swapchain.c
+49
-2
No files found.
dlls/wined3d/swapchain.c
View file @
9740555d
...
...
@@ -332,8 +332,55 @@ static HRESULT WINAPI IWineD3DSwapChainImpl_Present(IWineD3DSwapChain *iface, CO
IWineD3DDevice_Clear
((
IWineD3DDevice
*
)
This
->
wineD3DDevice
,
0
,
NULL
,
D3DCLEAR_STENCIL
|
D3DCLEAR_ZBUFFER
,
0x00
,
1
.
0
,
0
);
}
((
IWineD3DSurfaceImpl
*
)
This
->
frontBuffer
)
->
Flags
|=
SFLAG_GLDIRTY
;
((
IWineD3DSurfaceImpl
*
)
This
->
backBuffer
[
0
])
->
Flags
|=
SFLAG_GLDIRTY
;
if
(
!
(((
IWineD3DSurfaceImpl
*
)
This
->
frontBuffer
)
->
Flags
&
SFLAG_GLDIRTY
)
||
!
(((
IWineD3DSurfaceImpl
*
)
This
->
backBuffer
[
0
])
->
Flags
&
SFLAG_GLDIRTY
)
)
{
/* Both memory copies of the surfaces are ok, flip them around too instead of dirtifying */
IWineD3DSurfaceImpl
*
front
=
(
IWineD3DSurfaceImpl
*
)
This
->
frontBuffer
;
IWineD3DSurfaceImpl
*
back
=
(
IWineD3DSurfaceImpl
*
)
This
->
backBuffer
[
0
];
BOOL
frontdirty
=
front
->
Flags
&
SFLAG_GLDIRTY
;
BOOL
backdirty
=
back
->
Flags
&
SFLAG_GLDIRTY
;
/* Flip the DC */
{
HDC
tmp
;
tmp
=
front
->
hDC
;
front
->
hDC
=
back
->
hDC
;
back
->
hDC
=
tmp
;
}
/* Flip the DIBsection */
{
HBITMAP
tmp
;
tmp
=
front
->
dib
.
DIBsection
;
front
->
dib
.
DIBsection
=
back
->
dib
.
DIBsection
;
back
->
dib
.
DIBsection
=
tmp
;
}
/* Flip the surface data */
{
void
*
tmp
;
tmp
=
front
->
dib
.
bitmap_data
;
front
->
dib
.
bitmap_data
=
back
->
dib
.
bitmap_data
;
back
->
dib
.
bitmap_data
=
tmp
;
tmp
=
front
->
resource
.
allocatedMemory
;
front
->
resource
.
allocatedMemory
=
back
->
resource
.
allocatedMemory
;
back
->
resource
.
allocatedMemory
=
tmp
;
}
/* client_memory should not be different, but just in case */
{
BOOL
tmp
;
tmp
=
front
->
dib
.
client_memory
;
front
->
dib
.
client_memory
=
back
->
dib
.
client_memory
;
back
->
dib
.
client_memory
=
tmp
;
}
if
(
frontdirty
)
back
->
Flags
|=
SFLAG_GLDIRTY
;
else
back
->
Flags
&=
~
SFLAG_GLDIRTY
;
if
(
backdirty
)
front
->
Flags
|=
SFLAG_GLDIRTY
;
else
front
->
Flags
&=
~
SFLAG_GLDIRTY
;
}
TRACE
(
"returning
\n
"
);
return
WINED3D_OK
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment