mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
- only handle memory allocation for non-already loaded textures
- implement GetCaps for D3DDevice7
This commit is contained in:
parent
d77294a8ec
commit
5261f031a4
2 changed files with 24 additions and 8 deletions
|
@ -180,7 +180,7 @@ static void fill_opengl_caps(D3DDEVICEDESC *d1)
|
|||
d1->dlcLightingCaps.dwNumLights = 16; /* glGetIntegerv(GL_MAX_LIGHTS, &maxlight); d1->dlcLightingCaps.dwNumLights = maxlight; */
|
||||
fill_opengl_primcaps(&(d1->dpcLineCaps));
|
||||
fill_opengl_primcaps(&(d1->dpcTriCaps));
|
||||
d1->dwDeviceRenderBitDepth = DDBD_16|DDBD_24;
|
||||
d1->dwDeviceRenderBitDepth = DDBD_16|DDBD_24|DDBD_32;
|
||||
d1->dwDeviceZBufferBitDepth = DDBD_16;
|
||||
d1->dwMaxBufferSize = 0;
|
||||
d1->dwMaxVertexCount = 65536;
|
||||
|
@ -1188,6 +1188,19 @@ GL_IDirect3DDeviceImpl_3_SetTexture(LPDIRECT3DDEVICE3 iface,
|
|||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
GL_IDirect3DDeviceImpl_7_GetCaps(LPDIRECT3DDEVICE7 iface,
|
||||
LPD3DDEVICEDESC7 lpD3DHELDevDesc)
|
||||
{
|
||||
ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
|
||||
TRACE("(%p/%p)->(%p)\n", This, iface, lpD3DHELDevDesc);
|
||||
|
||||
fill_opengl_caps_7(lpD3DHELDevDesc);
|
||||
|
||||
TRACE(" returning caps : no dump function yet.\n");
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
|
||||
# define XCAST(fun) (typeof(VTABLE_IDirect3DDevice7.fun))
|
||||
|
@ -1201,7 +1214,7 @@ ICOM_VTABLE(IDirect3DDevice7) VTABLE_IDirect3DDevice7 =
|
|||
XCAST(QueryInterface) Main_IDirect3DDeviceImpl_7_3T_2T_1T_QueryInterface,
|
||||
XCAST(AddRef) Main_IDirect3DDeviceImpl_7_3T_2T_1T_AddRef,
|
||||
XCAST(Release) GL_IDirect3DDeviceImpl_7_3T_2T_1T_Release,
|
||||
XCAST(GetCaps) Main_IDirect3DDeviceImpl_7_GetCaps,
|
||||
XCAST(GetCaps) GL_IDirect3DDeviceImpl_7_GetCaps,
|
||||
XCAST(EnumTextureFormats) GL_IDirect3DDeviceImpl_7_3T_EnumTextureFormats,
|
||||
XCAST(BeginScene) Main_IDirect3DDeviceImpl_7_3T_2T_1T_BeginScene,
|
||||
XCAST(EndScene) Main_IDirect3DDeviceImpl_7_3T_2T_1T_EndScene,
|
||||
|
|
|
@ -407,12 +407,15 @@ GL_IDirect3DTextureImpl_2_1T_Load(LPDIRECT3DTEXTURE2 iface,
|
|||
|
||||
TRACE("(%p/%p)->(%p)\n", This, iface, lpD3DTexture2);
|
||||
|
||||
mem_used = This->surface->surface_desc.dwHeight *
|
||||
This->surface->surface_desc.dwHeight *
|
||||
This->surface->surface_desc.u4.ddpfPixelFormat.u1.dwRGBBitCount;
|
||||
if (This->surface->ddraw_owner->allocate_memory(This->surface->ddraw_owner, mem_used) < 0) {
|
||||
TRACE(" out of virtual memory... Warning application.\n");
|
||||
return D3DERR_TEXTURE_LOAD_FAILED;
|
||||
if (This->loaded == FALSE) {
|
||||
/* Only check memory for not already loaded texture... */
|
||||
mem_used = This->surface->surface_desc.dwHeight *
|
||||
This->surface->surface_desc.dwHeight *
|
||||
This->surface->surface_desc.u4.ddpfPixelFormat.u1.dwRGBBitCount;
|
||||
if (This->surface->ddraw_owner->allocate_memory(This->surface->ddraw_owner, mem_used) < 0) {
|
||||
TRACE(" out of virtual memory... Warning application.\n");
|
||||
return D3DERR_TEXTURE_LOAD_FAILED;
|
||||
}
|
||||
}
|
||||
This->loaded = TRUE;
|
||||
|
||||
|
|
Loading…
Reference in a new issue