2 * IWineD3DBaseTexture Implementation
4 * Copyright 2002-2004 Jason Edmeades
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #include "wined3d_private.h"
25 WINE_DEFAULT_DEBUG_CHANNEL(d3d
);
26 #define GLINFO_LOCATION ((IWineD3DImpl *)(((IWineD3DDeviceImpl *)This->resource.wineD3DDevice)->wineD3D))->gl_info
28 /* *******************************************
29 IWineD3DBaseTexture IUnknown parts follow
30 ******************************************* */
31 HRESULT WINAPI
IWineD3DBaseTextureImpl_QueryInterface(IWineD3DBaseTexture
*iface
, REFIID riid
, LPVOID
*ppobj
)
33 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
34 WARN("(%p)->(%s,%p) should not be called\n",This
,debugstr_guid(riid
),ppobj
);
38 ULONG WINAPI
IWineD3DBaseTextureImpl_AddRef(IWineD3DBaseTexture
*iface
) {
39 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
40 TRACE("(%p) : AddRef increasing from %ld\n", This
, This
->resource
.ref
);
41 IUnknown_AddRef(This
->resource
.parent
);
42 return InterlockedIncrement(&This
->resource
.ref
);
45 ULONG WINAPI
IWineD3DBaseTextureImpl_Release(IWineD3DBaseTexture
*iface
) {
46 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
48 TRACE("(%p) : Releasing from %ld\n", This
, This
->resource
.ref
);
49 ref
= InterlockedDecrement(&This
->resource
.ref
);
51 IWineD3DDevice_Release(This
->resource
.wineD3DDevice
);
52 HeapFree(GetProcessHeap(), 0, This
);
54 IUnknown_Release(This
->resource
.parent
); /* Released the reference to the d3dx object */
59 /* ****************************************************
60 IWineD3DBaseTexture IWineD3DResource parts follow
61 **************************************************** */
62 HRESULT WINAPI
IWineD3DBaseTextureImpl_GetDevice(IWineD3DBaseTexture
*iface
, IWineD3DDevice
** ppDevice
) {
63 return IWineD3DResource_GetDevice((IWineD3DResource
*)iface
, ppDevice
);
66 HRESULT WINAPI
IWineD3DBaseTextureImpl_SetPrivateData(IWineD3DBaseTexture
*iface
, REFGUID refguid
, CONST
void* pData
, DWORD SizeOfData
, DWORD Flags
) {
67 return IWineD3DResource_SetPrivateData((IWineD3DResource
*)iface
, refguid
, pData
, SizeOfData
, Flags
);
70 HRESULT WINAPI
IWineD3DBaseTextureImpl_GetPrivateData(IWineD3DBaseTexture
*iface
, REFGUID refguid
, void* pData
, DWORD
* pSizeOfData
) {
71 return IWineD3DResource_GetPrivateData((IWineD3DResource
*)iface
, refguid
, pData
, pSizeOfData
);
74 HRESULT WINAPI
IWineD3DBaseTextureImpl_FreePrivateData(IWineD3DBaseTexture
*iface
, REFGUID refguid
) {
75 return IWineD3DResource_FreePrivateData((IWineD3DResource
*)iface
, refguid
);
78 DWORD WINAPI
IWineD3DBaseTextureImpl_SetPriority(IWineD3DBaseTexture
*iface
, DWORD PriorityNew
) {
79 return IWineD3DResource_SetPriority((IWineD3DResource
*)iface
, PriorityNew
);
82 DWORD WINAPI
IWineD3DBaseTextureImpl_GetPriority(IWineD3DBaseTexture
*iface
) {
83 return IWineD3DResource_GetPriority((IWineD3DResource
*)iface
);
86 void WINAPI
IWineD3DBaseTextureImpl_PreLoad(IWineD3DBaseTexture
*iface
) {
87 return IWineD3DResource_PreLoad((IWineD3DResource
*)iface
);
90 D3DRESOURCETYPE WINAPI
IWineD3DBaseTextureImpl_GetType(IWineD3DBaseTexture
*iface
) {
91 return IWineD3DResource_GetType((IWineD3DResource
*)iface
);
94 HRESULT WINAPI
IWineD3DBaseTextureImpl_GetParent(IWineD3DBaseTexture
*iface
, IUnknown
**pParent
) {
95 return IWineD3DResource_GetParent((IWineD3DResource
*)iface
, pParent
);
98 /* ******************************************************
99 IWineD3DBaseTexture IWineD3DBaseTexture parts follow
100 ****************************************************** */
101 DWORD WINAPI
IWineD3DBaseTextureImpl_SetLOD(IWineD3DBaseTexture
*iface
, DWORD LODNew
) {
102 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
103 FIXME("(%p) : stub\n", This
);
107 DWORD WINAPI
IWineD3DBaseTextureImpl_GetLOD(IWineD3DBaseTexture
*iface
) {
108 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
109 FIXME("(%p) : stub\n", This
);
113 DWORD WINAPI
IWineD3DBaseTextureImpl_GetLevelCount(IWineD3DBaseTexture
*iface
) {
114 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
115 TRACE("(%p) : returning %d\n", This
, This
->baseTexture
.levels
);
116 return This
->baseTexture
.levels
;
119 HRESULT WINAPI
IWineD3DBaseTextureImpl_SetAutoGenFilterType(IWineD3DBaseTexture
*iface
, D3DTEXTUREFILTERTYPE FilterType
) {
120 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
121 FIXME("(%p) : stub\n", This
);
125 D3DTEXTUREFILTERTYPE WINAPI
IWineD3DBaseTextureImpl_GetAutoGenFilterType(IWineD3DBaseTexture
*iface
) {
126 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
127 FIXME("(%p) : stub\n", This
);
131 void WINAPI
IWineD3DBaseTextureImpl_GenerateMipSubLevels(IWineD3DBaseTexture
*iface
) {
132 IWineD3DBaseTextureImpl
*This
= (IWineD3DBaseTextureImpl
*)iface
;
133 FIXME("(%p) : stub\n", This
);
137 IWineD3DBaseTextureVtbl IWineD3DBaseTexture_Vtbl
=
139 IWineD3DBaseTextureImpl_QueryInterface
,
140 IWineD3DBaseTextureImpl_AddRef
,
141 IWineD3DBaseTextureImpl_Release
,
142 IWineD3DBaseTextureImpl_GetParent
,
143 IWineD3DBaseTextureImpl_GetDevice
,
144 IWineD3DBaseTextureImpl_SetPrivateData
,
145 IWineD3DBaseTextureImpl_GetPrivateData
,
146 IWineD3DBaseTextureImpl_FreePrivateData
,
147 IWineD3DBaseTextureImpl_SetPriority
,
148 IWineD3DBaseTextureImpl_GetPriority
,
149 IWineD3DBaseTextureImpl_PreLoad
,
150 IWineD3DBaseTextureImpl_GetType
,
151 IWineD3DBaseTextureImpl_SetLOD
,
152 IWineD3DBaseTextureImpl_GetLOD
,
153 IWineD3DBaseTextureImpl_GetLevelCount
,
154 IWineD3DBaseTextureImpl_SetAutoGenFilterType
,
155 IWineD3DBaseTextureImpl_GetAutoGenFilterType
,
156 IWineD3DBaseTextureImpl_GenerateMipSubLevels