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
d19e416d
Commit
d19e416d
authored
Oct 17, 2011
by
Ričardas Barkauskas
Committed by
Alexandre Julliard
Oct 17, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ddraw: Use unsafe_impl_from_IDirect3DDevice for application provided interfaces.
parent
4dbc0690
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
17 additions
and
6 deletions
+17
-6
ddraw_private.h
dlls/ddraw/ddraw_private.h
+2
-0
device.c
dlls/ddraw/device.c
+7
-0
material.c
dlls/ddraw/material.c
+5
-4
surface.c
dlls/ddraw/surface.c
+3
-2
No files found.
dlls/ddraw/ddraw_private.h
View file @
d19e416d
...
...
@@ -340,6 +340,8 @@ static inline IDirect3DDeviceImpl *device_from_device3(IDirect3DDevice3 *iface)
return
(
IDirect3DDeviceImpl
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
IDirect3DDeviceImpl
,
IDirect3DDevice3_vtbl
));
}
IDirect3DDeviceImpl
*
unsafe_impl_from_IDirect3DDevice
(
IDirect3DDevice
*
iface
)
DECLSPEC_HIDDEN
;
/*****************************************************************************
* IDirectDrawClipper implementation structure
*****************************************************************************/
...
...
dlls/ddraw/device.c
View file @
d19e416d
...
...
@@ -6732,6 +6732,13 @@ static const struct IDirect3DDeviceVtbl d3d_device1_vtbl =
IDirect3DDeviceImpl_1_GetDirect3D
};
IDirect3DDeviceImpl
*
unsafe_impl_from_IDirect3DDevice
(
IDirect3DDevice
*
iface
)
{
if
(
!
iface
)
return
NULL
;
assert
(
iface
->
lpVtbl
==
&
d3d_device1_vtbl
);
return
CONTAINING_RECORD
(
iface
,
IDirect3DDeviceImpl
,
IDirect3DDevice_vtbl
);
}
/*****************************************************************************
* IDirect3DDeviceImpl_UpdateDepthStencil
*
...
...
dlls/ddraw/material.c
View file @
d19e416d
...
...
@@ -335,14 +335,15 @@ static HRESULT WINAPI IDirect3DMaterialImpl_2_GetHandle(IDirect3DMaterial2 *ifac
}
static
HRESULT
WINAPI
IDirect3DMaterialImpl_1_GetHandle
(
IDirect3DMaterial
*
iface
,
IDirect3DDevice
*
lpDirect3DDevice
,
D3DMATERIALHANDLE
*
lpH
andle
)
IDirect3DDevice
*
device
,
D3DMATERIALHANDLE
*
h
andle
)
{
IDirect3DMaterialImpl
*
This
=
impl_from_IDirect3DMaterial
(
iface
);
IDirect3DDeviceImpl
*
device_impl
=
unsafe_impl_from_IDirect3DDevice
(
device
);
TRACE
(
"iface %p, device %p, handle %p.
\n
"
,
iface
,
lpDirect3DDevice
,
lpH
andle
);
TRACE
(
"iface %p, device %p, handle %p.
\n
"
,
iface
,
device
,
h
andle
);
return
IDirect3DMaterial3_GetHandle
(
&
This
->
IDirect3DMaterial3_iface
,
lpDirect3DDevice
?
(
IDirect3DDevice3
*
)
&
device_
from_device1
(
lpDirect3DDevice
)
->
IDirect3DDevice3_vtbl
:
NULL
,
lpH
andle
);
return
IDirect3DMaterial3_GetHandle
(
&
This
->
IDirect3DMaterial3_iface
,
device_impl
?
(
IDirect3DDevice3
*
)
&
device_
impl
->
IDirect3DDevice3_vtbl
:
NULL
,
h
andle
);
}
static
HRESULT
WINAPI
IDirect3DMaterialImpl_2_QueryInterface
(
IDirect3DMaterial2
*
iface
,
REFIID
riid
,
...
...
dlls/ddraw/surface.c
View file @
d19e416d
...
...
@@ -4551,11 +4551,12 @@ static HRESULT WINAPI d3d_texture1_GetHandle(IDirect3DTexture *iface,
IDirect3DDevice
*
device
,
D3DTEXTUREHANDLE
*
handle
)
{
IDirectDrawSurfaceImpl
*
This
=
impl_from_IDirect3DTexture
(
iface
);
IDirect3DDevice
2
*
device2
=
(
IDirect3DDevice2
*
)
&
device_from_device1
(
device
)
->
IDirect3DDevice2_vtbl
;
IDirect3DDevice
Impl
*
device_impl
=
unsafe_impl_from_IDirect3DDevice
(
device
)
;
TRACE
(
"iface %p, device %p, handle %p.
\n
"
,
iface
,
device
,
handle
);
return
d3d_texture2_GetHandle
(
&
This
->
IDirect3DTexture2_iface
,
device2
,
handle
);
return
d3d_texture2_GetHandle
(
&
This
->
IDirect3DTexture2_iface
,
device_impl
?
(
IDirect3DDevice2
*
)
&
device_impl
->
IDirect3DDevice2_vtbl
:
NULL
,
handle
);
}
/*****************************************************************************
...
...
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