Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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
wine
wine-winehq
Commits
9bb5b00d
Commit
9bb5b00d
authored
Aug 19, 2014
by
Stefan Dösinger
Committed by
Alexandre Julliard
Aug 19, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ddraw: Do not set lpSurface in GetSurfaceDesc.
This reverts
a5c484cb
. The test included in
a5c484cb
is wrong and contains a typo that leads to incorrect assumptions. The Dungeon Keeper 2 crash that was the reason for patch
a5c484cb
is fixed properly by the previous patch.
parent
61ee3323
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
233 additions
and
26 deletions
+233
-26
surface.c
dlls/ddraw/surface.c
+4
-11
ddraw1.c
dlls/ddraw/tests/ddraw1.c
+57
-0
ddraw2.c
dlls/ddraw/tests/ddraw2.c
+57
-0
ddraw4.c
dlls/ddraw/tests/ddraw4.c
+57
-0
ddraw7.c
dlls/ddraw/tests/ddraw7.c
+57
-0
dsurface.c
dlls/ddraw/tests/dsurface.c
+1
-15
No files found.
dlls/ddraw/surface.c
View file @
9bb5b00d
...
...
@@ -1011,12 +1011,9 @@ static HRESULT surface_lock(struct ddraw_surface *This,
SetRect
(
&
This
->
ddraw
->
primary_lock
,
0
,
0
,
This
->
surface_desc
.
dwWidth
,
This
->
surface_desc
.
dwHeight
);
}
/* Override the memory area. The pitch should be set already. Strangely windows
* does not set the LPSURFACE flag on locked surfaces !?!.
* DDSD->dwFlags |= DDSD_LPSURFACE;
*/
This
->
surface_desc
.
lpSurface
=
map_desc
.
data
;
/* Windows does not set DDSD_LPSURFACE on locked surfaces. */
DD_STRUCT_COPY_BYSIZE
(
DDSD
,
&
(
This
->
surface_desc
));
DDSD
->
lpSurface
=
map_desc
.
data
;
TRACE
(
"locked surface returning description :
\n
"
);
if
(
TRACE_ON
(
ddraw
))
DDRAW_dump_surface_desc
(
DDSD
);
...
...
@@ -1161,12 +1158,8 @@ static HRESULT WINAPI ddraw_surface7_Unlock(IDirectDrawSurface7 *iface, RECT *pR
wined3d_mutex_lock
();
hr
=
wined3d_surface_unmap
(
surface
->
wined3d_surface
);
if
(
SUCCEEDED
(
hr
))
{
if
(
surface
->
surface_desc
.
ddsCaps
.
dwCaps
&
DDSCAPS_PRIMARYSURFACE
)
hr
=
ddraw_surface_update_frontbuffer
(
surface
,
&
surface
->
ddraw
->
primary_lock
,
FALSE
);
surface
->
surface_desc
.
lpSurface
=
NULL
;
}
if
(
SUCCEEDED
(
hr
)
&&
surface
->
surface_desc
.
ddsCaps
.
dwCaps
&
DDSCAPS_PRIMARYSURFACE
)
hr
=
ddraw_surface_update_frontbuffer
(
surface
,
&
surface
->
ddraw
->
primary_lock
,
FALSE
);
wined3d_mutex_unlock
();
return
hr
;
...
...
dlls/ddraw/tests/ddraw1.c
View file @
9bb5b00d
...
...
@@ -5576,6 +5576,62 @@ static void test_lost_device(void)
DestroyWindow
(
window
);
}
static
void
test_surface_desc_lock
(
void
)
{
IDirectDrawSurface
*
surface
;
DDSURFACEDESC
surface_desc
;
IDirectDraw
*
ddraw
;
ULONG
refcount
;
HWND
window
;
HRESULT
hr
;
window
=
CreateWindowA
(
"static"
,
"ddraw_test"
,
WS_OVERLAPPEDWINDOW
,
0
,
0
,
640
,
480
,
0
,
0
,
0
,
0
);
ddraw
=
create_ddraw
();
ok
(
!!
ddraw
,
"Failed to create a ddraw object.
\n
"
);
hr
=
IDirectDraw_SetCooperativeLevel
(
ddraw
,
window
,
DDSCL_NORMAL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to set cooperative level, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
surface_desc
.
dwFlags
=
DDSD_CAPS
|
DDSD_WIDTH
|
DDSD_HEIGHT
;
surface_desc
.
dwWidth
=
16
;
surface_desc
.
dwHeight
=
16
;
surface_desc
.
ddsCaps
.
dwCaps
=
DDSCAPS_OFFSCREENPLAIN
;
hr
=
IDirectDraw_CreateSurface
(
ddraw
,
&
surface_desc
,
&
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_Lock
(
surface
,
NULL
,
&
surface_desc
,
0
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to lock surface, hr %#x.
\n
"
,
hr
);
ok
(
surface_desc
.
lpSurface
!=
NULL
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
hr
=
IDirectDrawSurface_Unlock
(
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to unlock surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
IDirectDrawSurface_Release
(
surface
);
refcount
=
IDirectDraw_Release
(
ddraw
);
ok
(
!
refcount
,
"Got unexpected refcount %u.
\n
"
,
refcount
);
DestroyWindow
(
window
);
}
START_TEST
(
ddraw1
)
{
IDirectDraw
*
ddraw
;
...
...
@@ -5627,4 +5683,5 @@ START_TEST(ddraw1)
test_palette_gdi
();
test_palette_alpha
();
test_lost_device
();
test_surface_desc_lock
();
}
dlls/ddraw/tests/ddraw2.c
View file @
9bb5b00d
...
...
@@ -6652,6 +6652,62 @@ static void test_lost_device(void)
DestroyWindow
(
window
);
}
static
void
test_surface_desc_lock
(
void
)
{
IDirectDrawSurface
*
surface
;
DDSURFACEDESC
surface_desc
;
IDirectDraw2
*
ddraw
;
ULONG
refcount
;
HWND
window
;
HRESULT
hr
;
window
=
CreateWindowA
(
"static"
,
"ddraw_test"
,
WS_OVERLAPPEDWINDOW
,
0
,
0
,
640
,
480
,
0
,
0
,
0
,
0
);
ddraw
=
create_ddraw
();
ok
(
!!
ddraw
,
"Failed to create a ddraw object.
\n
"
);
hr
=
IDirectDraw2_SetCooperativeLevel
(
ddraw
,
window
,
DDSCL_NORMAL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to set cooperative level, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
surface_desc
.
dwFlags
=
DDSD_CAPS
|
DDSD_WIDTH
|
DDSD_HEIGHT
;
surface_desc
.
dwWidth
=
16
;
surface_desc
.
dwHeight
=
16
;
surface_desc
.
ddsCaps
.
dwCaps
=
DDSCAPS_OFFSCREENPLAIN
;
hr
=
IDirectDraw2_CreateSurface
(
ddraw
,
&
surface_desc
,
&
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_Lock
(
surface
,
NULL
,
&
surface_desc
,
0
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to lock surface, hr %#x.
\n
"
,
hr
);
ok
(
surface_desc
.
lpSurface
!=
NULL
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
hr
=
IDirectDrawSurface_Unlock
(
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to unlock surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
IDirectDrawSurface_Release
(
surface
);
refcount
=
IDirectDraw2_Release
(
ddraw
);
ok
(
!
refcount
,
"Got unexpected refcount %u.
\n
"
,
refcount
);
DestroyWindow
(
window
);
}
START_TEST
(
ddraw2
)
{
IDirectDraw2
*
ddraw
;
...
...
@@ -6709,4 +6765,5 @@ START_TEST(ddraw2)
test_palette_gdi
();
test_palette_alpha
();
test_lost_device
();
test_surface_desc_lock
();
}
dlls/ddraw/tests/ddraw4.c
View file @
9bb5b00d
...
...
@@ -7727,6 +7727,62 @@ static void test_lost_device(void)
DestroyWindow
(
window
);
}
static
void
test_surface_desc_lock
(
void
)
{
IDirectDrawSurface4
*
surface
;
DDSURFACEDESC2
surface_desc
;
IDirectDraw4
*
ddraw
;
ULONG
refcount
;
HWND
window
;
HRESULT
hr
;
window
=
CreateWindowA
(
"static"
,
"ddraw_test"
,
WS_OVERLAPPEDWINDOW
,
0
,
0
,
640
,
480
,
0
,
0
,
0
,
0
);
ddraw
=
create_ddraw
();
ok
(
!!
ddraw
,
"Failed to create a ddraw object.
\n
"
);
hr
=
IDirectDraw4_SetCooperativeLevel
(
ddraw
,
window
,
DDSCL_NORMAL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to set cooperative level, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
surface_desc
.
dwFlags
=
DDSD_CAPS
|
DDSD_WIDTH
|
DDSD_HEIGHT
;
surface_desc
.
dwWidth
=
16
;
surface_desc
.
dwHeight
=
16
;
surface_desc
.
ddsCaps
.
dwCaps
=
DDSCAPS_OFFSCREENPLAIN
;
hr
=
IDirectDraw4_CreateSurface
(
ddraw
,
&
surface_desc
,
&
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface4_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface4_Lock
(
surface
,
NULL
,
&
surface_desc
,
0
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to lock surface, hr %#x.
\n
"
,
hr
);
ok
(
surface_desc
.
lpSurface
!=
NULL
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface4_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
hr
=
IDirectDrawSurface4_Unlock
(
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to unlock surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface4_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
IDirectDrawSurface4_Release
(
surface
);
refcount
=
IDirectDraw4_Release
(
ddraw
);
ok
(
!
refcount
,
"Got unexpected refcount %u.
\n
"
,
refcount
);
DestroyWindow
(
window
);
}
START_TEST
(
ddraw4
)
{
IDirectDraw4
*
ddraw
;
...
...
@@ -7791,4 +7847,5 @@ START_TEST(ddraw4)
test_palette_alpha
();
test_vb_writeonly
();
test_lost_device
();
test_surface_desc_lock
();
}
dlls/ddraw/tests/ddraw7.c
View file @
9bb5b00d
...
...
@@ -7570,6 +7570,62 @@ done:
DestroyWindow
(
window
);
}
static
void
test_surface_desc_lock
(
void
)
{
IDirectDrawSurface7
*
surface
;
DDSURFACEDESC2
surface_desc
;
IDirectDraw7
*
ddraw
;
ULONG
refcount
;
HWND
window
;
HRESULT
hr
;
window
=
CreateWindowA
(
"static"
,
"ddraw_test"
,
WS_OVERLAPPEDWINDOW
,
0
,
0
,
640
,
480
,
0
,
0
,
0
,
0
);
ddraw
=
create_ddraw
();
ok
(
!!
ddraw
,
"Failed to create a ddraw object.
\n
"
);
hr
=
IDirectDraw7_SetCooperativeLevel
(
ddraw
,
window
,
DDSCL_NORMAL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to set cooperative level, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
surface_desc
.
dwFlags
=
DDSD_CAPS
|
DDSD_WIDTH
|
DDSD_HEIGHT
;
surface_desc
.
dwWidth
=
16
;
surface_desc
.
dwHeight
=
16
;
surface_desc
.
ddsCaps
.
dwCaps
=
DDSCAPS_OFFSCREENPLAIN
;
hr
=
IDirectDraw7_CreateSurface
(
ddraw
,
&
surface_desc
,
&
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface7_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface7_Lock
(
surface
,
NULL
,
&
surface_desc
,
0
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to lock surface, hr %#x.
\n
"
,
hr
);
ok
(
surface_desc
.
lpSurface
!=
NULL
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface7_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
hr
=
IDirectDrawSurface7_Unlock
(
surface
,
NULL
);
ok
(
SUCCEEDED
(
hr
),
"Failed to unlock surface, hr %#x.
\n
"
,
hr
);
memset
(
&
surface_desc
,
0xaa
,
sizeof
(
surface_desc
));
surface_desc
.
dwSize
=
sizeof
(
surface_desc
);
hr
=
IDirectDrawSurface7_GetSurfaceDesc
(
surface
,
&
surface_desc
);
ok
(
SUCCEEDED
(
hr
),
"Failed to get surface desc, hr %#x.
\n
"
,
hr
);
ok
(
!
surface_desc
.
lpSurface
,
"Got unexpected lpSurface %p.
\n
"
,
surface_desc
.
lpSurface
);
IDirectDrawSurface7_Release
(
surface
);
refcount
=
IDirectDraw7_Release
(
ddraw
);
ok
(
!
refcount
,
"Got unexpected refcount %u.
\n
"
,
refcount
);
DestroyWindow
(
window
);
}
START_TEST
(
ddraw7
)
{
HMODULE
module
=
GetModuleHandleA
(
"ddraw.dll"
);
...
...
@@ -7642,4 +7698,5 @@ START_TEST(ddraw7)
test_vb_writeonly
();
test_lost_device
();
test_resource_priority
();
test_surface_desc_lock
();
}
dlls/ddraw/tests/dsurface.c
View file @
9bb5b00d
...
...
@@ -217,7 +217,7 @@ static void SrcColorKey32BlitTest(void)
{
IDirectDrawSurface
*
lpSrc
;
IDirectDrawSurface
*
lpDst
;
DDSURFACEDESC
ddsd
,
ddsd2
,
ddsd3
;
DDSURFACEDESC
ddsd
,
ddsd2
;
DDCOLORKEY
DDColorKey
;
LPDWORD
lpData
;
HRESULT
rc
;
...
...
@@ -264,23 +264,9 @@ static void SrcColorKey32BlitTest(void)
lpData
[
2
]
=
0xCCCCCCCC
;
lpData
[
3
]
=
0xCCCCCCCC
;
memset
(
&
ddsd3
,
0
,
sizeof
(
ddsd3
));
ddsd3
.
dwSize
=
sizeof
(
ddsd3
);
ddsd3
.
ddpfPixelFormat
.
dwSize
=
sizeof
(
ddsd3
.
ddpfPixelFormat
);
rc
=
IDirectDrawSurface_GetSurfaceDesc
(
lpDst
,
&
ddsd3
);
ok
(
rc
==
DD_OK
,
"IDirectDrawSurface_GetSurfaceDesc between a lock/unlock pair returned %08x
\n
"
,
rc
);
ok
(
ddsd3
.
lpSurface
==
ddsd3
.
lpSurface
,
"lpSurface from GetSurfaceDesc(%p) differs from the one returned by Lock(%p)
\n
"
,
ddsd3
.
lpSurface
,
ddsd2
.
lpSurface
);
rc
=
IDirectDrawSurface_Unlock
(
lpDst
,
NULL
);
ok
(
rc
==
DD_OK
,
"Unlock returned: %x
\n
"
,
rc
);
memset
(
&
ddsd3
,
0
,
sizeof
(
ddsd3
));
ddsd3
.
dwSize
=
sizeof
(
ddsd3
);
ddsd3
.
ddpfPixelFormat
.
dwSize
=
sizeof
(
ddsd3
.
ddpfPixelFormat
);
rc
=
IDirectDrawSurface_GetSurfaceDesc
(
lpDst
,
&
ddsd3
);
ok
(
rc
==
DD_OK
,
"IDirectDrawSurface_GetSurfaceDesc between a lock/unlock pair returned %08x
\n
"
,
rc
);
ok
(
ddsd3
.
lpSurface
==
NULL
,
"lpSurface from GetSurfaceDesc(%p) is not NULL after unlock
\n
"
,
ddsd3
.
lpSurface
);
rc
=
IDirectDrawSurface_Lock
(
lpSrc
,
NULL
,
&
ddsd2
,
DDLOCK_WAIT
,
NULL
);
ok
(
rc
==
DD_OK
,
"Lock returned: %x
\n
"
,
rc
);
ok
((
ddsd2
.
dwFlags
&
DDSD_LPSURFACE
)
==
0
,
"Surface desc has LPSURFACE Flags set
\n
"
);
...
...
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