mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 05:10:17 +01:00
st/nine: Store minor version num
To keep compatible with older ID3DPresent interfaces (used to talk with Wine), store the minor version num accessible to all statetracker functions (in the NineDevice9 structure). Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
0ac01a9fd7
commit
e59908e57f
5 changed files with 24 additions and 12 deletions
|
|
@ -981,7 +981,8 @@ NineAdapter9_CreateDevice( struct NineAdapter9 *This,
|
|||
|
||||
hr = NineDevice9_new(screen, ¶ms, &caps, pPresentationParameters,
|
||||
pD3D9, pPresentationGroup, This->ctx, FALSE, NULL,
|
||||
(struct NineDevice9 **)ppReturnedDeviceInterface);
|
||||
(struct NineDevice9 **)ppReturnedDeviceInterface,
|
||||
minor);
|
||||
if (FAILED(hr)) {
|
||||
DBG("Failed to create device.\n");
|
||||
return hr;
|
||||
|
|
@ -1042,7 +1043,8 @@ NineAdapter9_CreateDeviceEx( struct NineAdapter9 *This,
|
|||
hr = NineDevice9Ex_new(screen, ¶ms, &caps, pPresentationParameters,
|
||||
pFullscreenDisplayMode,
|
||||
pD3D9Ex, pPresentationGroup, This->ctx,
|
||||
(struct NineDevice9Ex **)ppReturnedDeviceInterface);
|
||||
(struct NineDevice9Ex **)ppReturnedDeviceInterface,
|
||||
minor);
|
||||
if (FAILED(hr)) {
|
||||
DBG("Failed to create device.\n");
|
||||
return hr;
|
||||
|
|
|
|||
|
|
@ -131,7 +131,8 @@ NineDevice9_ctor( struct NineDevice9 *This,
|
|||
ID3DPresentGroup *pPresentationGroup,
|
||||
struct d3dadapter9_context *pCTX,
|
||||
boolean ex,
|
||||
D3DDISPLAYMODEEX *pFullscreenDisplayMode )
|
||||
D3DDISPLAYMODEEX *pFullscreenDisplayMode,
|
||||
int minorVersionNum )
|
||||
{
|
||||
unsigned i;
|
||||
HRESULT hr = NineUnknown_ctor(&This->base, pParams);
|
||||
|
|
@ -152,6 +153,8 @@ NineDevice9_ctor( struct NineDevice9 *This,
|
|||
This->params = *pCreationParameters;
|
||||
This->ex = ex;
|
||||
This->present = pPresentationGroup;
|
||||
This->minor_version_num = minorVersionNum;
|
||||
|
||||
IDirect3D9_AddRef(This->d3d9);
|
||||
ID3DPresentGroup_AddRef(This->present);
|
||||
|
||||
|
|
@ -4043,7 +4046,8 @@ NineDevice9_new( struct pipe_screen *pScreen,
|
|||
struct d3dadapter9_context *pCTX,
|
||||
boolean ex,
|
||||
D3DDISPLAYMODEEX *pFullscreenDisplayMode,
|
||||
struct NineDevice9 **ppOut )
|
||||
struct NineDevice9 **ppOut,
|
||||
int minorVersionNum )
|
||||
{
|
||||
BOOL lock;
|
||||
lock = !!(pCreationParameters->BehaviorFlags & D3DCREATE_MULTITHREADED);
|
||||
|
|
@ -4051,5 +4055,5 @@ NineDevice9_new( struct pipe_screen *pScreen,
|
|||
NINE_NEW(Device9, ppOut, lock, /* args */
|
||||
pScreen, pCreationParameters, pCaps,
|
||||
pPresentationParameters, pD3D9, pPresentationGroup, pCTX,
|
||||
ex, pFullscreenDisplayMode);
|
||||
ex, pFullscreenDisplayMode, minorVersionNum );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ struct NineDevice9
|
|||
/* dummy vbo (containing 0 0 0 0) to bind if vertex shader input
|
||||
* is not bound to anything by the vertex declaration */
|
||||
struct pipe_resource *dummy_vbo;
|
||||
int minor_version_num;
|
||||
};
|
||||
static inline struct NineDevice9 *
|
||||
NineDevice9( void *data )
|
||||
|
|
@ -154,7 +155,8 @@ NineDevice9_new( struct pipe_screen *pScreen,
|
|||
struct d3dadapter9_context *pCTX,
|
||||
boolean ex,
|
||||
D3DDISPLAYMODEEX *pFullscreenDisplayMode,
|
||||
struct NineDevice9 **ppOut );
|
||||
struct NineDevice9 **ppOut,
|
||||
int minorVersionNum );
|
||||
|
||||
HRESULT
|
||||
NineDevice9_ctor( struct NineDevice9 *This,
|
||||
|
|
@ -167,7 +169,8 @@ NineDevice9_ctor( struct NineDevice9 *This,
|
|||
ID3DPresentGroup *pPresentationGroup,
|
||||
struct d3dadapter9_context *pCTX,
|
||||
boolean ex,
|
||||
D3DDISPLAYMODEEX *pFullscreenDisplayMode );
|
||||
D3DDISPLAYMODEEX *pFullscreenDisplayMode,
|
||||
int minorVersionNum );
|
||||
|
||||
void
|
||||
NineDevice9_dtor( struct NineDevice9 *This );
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@ NineDevice9Ex_ctor( struct NineDevice9Ex *This,
|
|||
D3DDISPLAYMODEEX *pFullscreenDisplayMode,
|
||||
IDirect3D9Ex *pD3D9Ex,
|
||||
ID3DPresentGroup *pPresentationGroup,
|
||||
struct d3dadapter9_context *pCTX )
|
||||
struct d3dadapter9_context *pCTX,
|
||||
int minorVersionNum )
|
||||
{
|
||||
DBG("This=%p pParams=%p pScreen=%p pCreationParameters=%p pCaps=%p "
|
||||
"pPresentationParameters=%p pFullscreenDisplayMode=%p "
|
||||
|
|
@ -50,7 +51,7 @@ NineDevice9Ex_ctor( struct NineDevice9Ex *This,
|
|||
pScreen, pCreationParameters, pCaps,
|
||||
pPresentationParameters,
|
||||
(IDirect3D9 *)pD3D9Ex, pPresentationGroup, pCTX,
|
||||
TRUE, pFullscreenDisplayMode);
|
||||
TRUE, pFullscreenDisplayMode, minorVersionNum);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -401,13 +402,14 @@ NineDevice9Ex_new( struct pipe_screen *pScreen,
|
|||
IDirect3D9Ex *pD3D9Ex,
|
||||
ID3DPresentGroup *pPresentationGroup,
|
||||
struct d3dadapter9_context *pCTX,
|
||||
struct NineDevice9Ex **ppOut )
|
||||
struct NineDevice9Ex **ppOut,
|
||||
int minorVersionNum )
|
||||
{
|
||||
BOOL lock;
|
||||
lock = !!(pCreationParameters->BehaviorFlags & D3DCREATE_MULTITHREADED);
|
||||
|
||||
NINE_NEW(Device9Ex, ppOut, lock,
|
||||
pScreen, pCreationParameters, pCaps, pPresentationParameters,
|
||||
pFullscreenDisplayMode, pD3D9Ex, pPresentationGroup, pCTX);
|
||||
pFullscreenDisplayMode, pD3D9Ex, pPresentationGroup, pCTX, minorVersionNum );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ NineDevice9Ex_new( struct pipe_screen *pScreen,
|
|||
IDirect3D9Ex *pD3D9Ex,
|
||||
ID3DPresentGroup *pPresentationGroup,
|
||||
struct d3dadapter9_context *pCTX,
|
||||
struct NineDevice9Ex **ppOut );
|
||||
struct NineDevice9Ex **ppOut,
|
||||
int minorVersionNum );
|
||||
|
||||
HRESULT WINAPI
|
||||
NineDevice9Ex_SetConvolutionMonoKernel( struct NineDevice9Ex *This,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue