texture.c revision 4237d5a79f48789aacc67dc43378d2d7813a39f4
/*
* Copyright 2002-2005 Jason Edmeades
* Copyright 2002-2005 Raphael Junqueira
* Copyright 2005 Oliver Stieber
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#include "config.h"
#include "d3d9_private.h"
{
}
{
}
static inline struct d3d9_texture *impl_from_IDirect3DVolumeTexture9(IDirect3DVolumeTexture9 *iface)
{
}
static HRESULT WINAPI d3d9_texture_2d_QueryInterface(IDirect3DTexture9 *iface, REFIID riid, void **out)
{
{
return S_OK;
}
return E_NOINTERFACE;
}
{
if (ref == 1)
{
}
return ref;
}
{
if (!ref)
{
/* Release the device last, as it may cause the device to be destroyed. */
}
return ref;
}
static HRESULT WINAPI d3d9_texture_2d_GetDevice(IDirect3DTexture9 *iface, IDirect3DDevice9 **device)
{
return D3D_OK;
}
{
struct wined3d_resource *resource;
TRACE("iface %p, guid %s, data %p, data_size %u, flags %#x.\n",
return hr;
}
{
struct wined3d_resource *resource;
TRACE("iface %p, guid %s, data %p, data_size %p.\n",
return hr;
}
{
struct wined3d_resource *resource;
return hr;
}
{
return ret;
}
{
return ret;
}
{
}
{
return D3DRTYPE_TEXTURE;
}
{
return ret;
}
{
return ret;
}
{
return ret;
}
static HRESULT WINAPI d3d9_texture_2d_SetAutoGenFilterType(IDirect3DTexture9 *iface, D3DTEXTUREFILTERTYPE filter_type)
{
return hr;
}
{
return ret;
}
{
}
static HRESULT WINAPI d3d9_texture_2d_GetLevelDesc(IDirect3DTexture9 *iface, UINT level, D3DSURFACE_DESC *desc)
{
struct wined3d_resource *sub_resource;
else
{
struct wined3d_resource_desc wined3d_desc;
}
return hr;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_surface *surface_impl;
{
return D3DERR_INVALIDCALL;
}
return D3D_OK;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_surface *surface_impl;
TRACE("iface %p, level %u, locked_rect %p, rect %p, flags %#x.\n",
else
{
}
return hr;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_surface *surface_impl;
else
{
}
return hr;
}
static HRESULT WINAPI d3d9_texture_2d_AddDirtyRect(IDirect3DTexture9 *iface, const RECT *dirty_rect)
{
TRACE("iface %p, dirty_rect %s.\n",
if (!dirty_rect)
else
{
struct wined3d_box dirty_region;
dirty_region.front = 0;
}
return hr;
}
static const IDirect3DTexture9Vtbl d3d9_texture_2d_vtbl =
{
/* IUnknown */
/* IDirect3DResource9 */
/* IDirect3dBaseTexture9 */
/* IDirect3DTexture9 */
};
static HRESULT WINAPI d3d9_texture_cube_QueryInterface(IDirect3DCubeTexture9 *iface, REFIID riid, void **out)
{
{
return S_OK;
}
return E_NOINTERFACE;
}
{
if (ref == 1)
{
}
return ref;
}
{
if (!ref)
{
/* Release the device last, as it may cause the device to be destroyed. */
}
return ref;
}
static HRESULT WINAPI d3d9_texture_cube_GetDevice(IDirect3DCubeTexture9 *iface, IDirect3DDevice9 **device)
{
return D3D_OK;
}
{
struct wined3d_resource *resource;
TRACE("iface %p, guid %s, data %p, data_size %u, flags %#x.\n",
return hr;
}
{
struct wined3d_resource *resource;
TRACE("iface %p, guid %s, data %p, data_size %p.\n",
return hr;
}
{
struct wined3d_resource *resource;
return hr;
}
{
return ret;
}
{
return ret;
}
{
}
{
return D3DRTYPE_CUBETEXTURE;
}
{
return ret;
}
{
return ret;
}
{
return ret;
}
{
return hr;
}
static D3DTEXTUREFILTERTYPE WINAPI d3d9_texture_cube_GetAutoGenFilterType(IDirect3DCubeTexture9 *iface)
{
return ret;
}
{
}
static HRESULT WINAPI d3d9_texture_cube_GetLevelDesc(IDirect3DCubeTexture9 *iface, UINT level, D3DSURFACE_DESC *desc)
{
struct wined3d_resource *sub_resource;
if (level >= level_count)
{
return D3DERR_INVALIDCALL;
}
else
{
struct wined3d_resource_desc wined3d_desc;
}
return hr;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_surface *surface_impl;
if (level >= level_count)
{
return D3DERR_INVALIDCALL;
}
{
return D3DERR_INVALIDCALL;
}
return D3D_OK;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_surface *surface_impl;
TRACE("iface %p, face %#x, level %u, locked_rect %p, rect %p, flags %#x.\n",
else
{
}
return hr;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_surface *surface_impl;
else
{
}
return hr;
}
{
TRACE("iface %p, face %#x, dirty_rect %s.\n",
if (!dirty_rect)
else
{
struct wined3d_box dirty_region;
dirty_region.front = 0;
}
return hr;
}
static const IDirect3DCubeTexture9Vtbl d3d9_texture_cube_vtbl =
{
/* IUnknown */
/* IDirect3DResource9 */
/* IDirect3DBaseTexture9 */
/* IDirect3DCubeTexture9 */
};
static HRESULT WINAPI d3d9_texture_3d_QueryInterface(IDirect3DVolumeTexture9 *iface, REFIID riid, void **out)
{
{
return S_OK;
}
return E_NOINTERFACE;
}
{
if (ref == 1)
{
}
return ref;
}
{
if (!ref)
{
/* Release the device last, as it may cause the device to be destroyed. */
}
return ref;
}
static HRESULT WINAPI d3d9_texture_3d_GetDevice(IDirect3DVolumeTexture9 *iface, IDirect3DDevice9 **device)
{
return D3D_OK;
}
{
struct wined3d_resource *resource;
TRACE("iface %p, guid %s, data %p, data_size %u, flags %#x.\n",
return hr;
}
{
struct wined3d_resource *resource;
TRACE("iface %p, guid %s, data %p, data_size %p.\n",
return hr;
}
{
struct wined3d_resource *resource;
return hr;
}
{
return ret;
}
{
return ret;
}
{
}
{
return D3DRTYPE_VOLUMETEXTURE;
}
{
return ret;
}
{
return ret;
}
{
return ret;
}
{
return hr;
}
static D3DTEXTUREFILTERTYPE WINAPI d3d9_texture_3d_GetAutoGenFilterType(IDirect3DVolumeTexture9 *iface)
{
filter_type = (D3DTEXTUREFILTERTYPE)wined3d_texture_get_autogen_filter_type(texture->wined3d_texture);
return filter_type;
}
{
}
static HRESULT WINAPI d3d9_texture_3d_GetLevelDesc(IDirect3DVolumeTexture9 *iface, UINT level, D3DVOLUME_DESC *desc)
{
struct wined3d_resource *sub_resource;
else
{
struct wined3d_resource_desc wined3d_desc;
}
return hr;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_volume *volume_impl;
{
return D3DERR_INVALIDCALL;
}
return D3D_OK;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_volume *volume_impl;
TRACE("iface %p, level %u, locked_box %p, box %p, flags %#x.\n",
else
{
}
return hr;
}
{
struct wined3d_resource *sub_resource;
struct d3d9_volume *volume_impl;
else
{
}
return hr;
}
static HRESULT WINAPI d3d9_texture_3d_AddDirtyBox(IDirect3DVolumeTexture9 *iface, const D3DBOX *dirty_box)
{
hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, (const struct wined3d_box *)dirty_box);
return hr;
}
static const IDirect3DVolumeTexture9Vtbl d3d9_texture_3d_vtbl =
{
/* IUnknown */
/* IDirect3DResource9 */
/* IDirect3DBaseTexture9 */
/* IDirect3DVolumeTexture9 */
};
{
if (!iface)
return NULL;
}
{
}
static const struct wined3d_parent_ops d3d9_texture_wined3d_parent_ops =
{
};
#ifdef VBOX_WITH_WDDM
, void **pavClientMem
#endif
)
{
struct wined3d_resource_desc desc;
DWORD surface_flags = 0;
texture->IDirect3DBaseTexture9_iface.lpVtbl = (const IDirect3DBaseTexture9Vtbl *)&d3d9_texture_2d_vtbl;
desc.multisample_quality = 0;
#ifdef VBOX_WITH_WDDM
#endif
);
{
return hr;
}
return D3D_OK;
}
#ifdef VBOX_WITH_WDDM
, void **pavClientMem
#endif
)
{
struct wined3d_resource_desc desc;
DWORD surface_flags = 0;
texture->IDirect3DBaseTexture9_iface.lpVtbl = (const IDirect3DBaseTexture9Vtbl *)&d3d9_texture_cube_vtbl;
desc.multisample_quality = 0;
#ifdef VBOX_WITH_WDDM
#endif
);
{
return hr;
}
return D3D_OK;
}
#ifdef VBOX_WITH_WDDM
, void **pavClientMem
#endif
)
{
struct wined3d_resource_desc desc;
texture->IDirect3DBaseTexture9_iface.lpVtbl = (const IDirect3DBaseTexture9Vtbl *)&d3d9_texture_3d_vtbl;
desc.multisample_quality = 0;
#ifdef VBOX_WITH_WDDM
#endif
);
{
return hr;
}
return D3D_OK;
}