void NineSurface9_Dump( struct NineSurface9 *This ) { struct NineBaseTexture9 *tex; GUID id = IID_IDirect3DBaseTexture9; REFIID ref = &id; DBG("\nNineSurface9(%p->%p/%p): Pool=%s Type=%s Usage=%s\n" "Dims=%ux%u Format=%s Stride=%u Lockable=%i\n" "Level=%u(%u), Layer=%u\n", This, This->base.resource, This->data, nine_D3DPOOL_to_str(This->desc.Pool), nine_D3DRTYPE_to_str(This->desc.Type), nine_D3DUSAGE_to_str(This->desc.Usage), This->desc.Width, This->desc.Height, d3dformat_to_string(This->desc.Format), This->stride, This->base.resource && (This->base.resource->flags & NINE_RESOURCE_FLAG_LOCKABLE), This->level, This->level_actual, This->layer); if (!This->base.base.container) return; NineUnknown_QueryInterface(This->base.base.container, ref, (void **)&tex); if (tex) { NineBaseTexture9_Dump(tex); NineUnknown_Release(NineUnknown(tex)); } }
HRESULT NINE_WINAPI NineSurface9_GetContainer( struct NineSurface9 *This, REFIID riid, void **ppContainer ) { HRESULT hr; char guid_str[64]; DBG("This=%p riid=%p id=%s ppContainer=%p\n", This, riid, riid ? GUID_sprintf(guid_str, riid) : "", ppContainer); if (!ppContainer) return E_POINTER; /* Return device for OffscreenPlainSurface, DepthStencilSurface and RenderTarget */ if (!NineUnknown(This)->container) { *ppContainer = NineUnknown(This)->device; NineUnknown_AddRef(NineUnknown(*ppContainer)); return D3D_OK; } hr = NineUnknown_QueryInterface(NineUnknown(This)->container, riid, ppContainer); if (FAILED(hr)) DBG("QueryInterface FAILED!\n"); return hr; }
HRESULT WINAPI NineVolume9_GetContainer( struct NineVolume9 *This, REFIID riid, void **ppContainer ) { if (!NineUnknown(This)->container) return E_NOINTERFACE; return NineUnknown_QueryInterface(NineUnknown(This)->container, riid, ppContainer); }
HRESULT WINAPI NineSurface9_GetContainer( struct NineSurface9 *This, REFIID riid, void **ppContainer ) { HRESULT hr; if (!NineUnknown(This)->container) return E_NOINTERFACE; hr = NineUnknown_QueryInterface(NineUnknown(This)->container, riid, ppContainer); if (FAILED(hr)) DBG("QueryInterface FAILED!\n"); return hr; }
HRESULT NINE_WINAPI NineVolume9_GetContainer( struct NineVolume9 *This, REFIID riid, void **ppContainer ) { char guid_str[64]; DBG("This=%p riid=%p id=%s ppContainer=%p\n", This, riid, riid ? GUID_sprintf(guid_str, riid) : "", ppContainer); if (!NineUnknown(This)->container) return E_NOINTERFACE; return NineUnknown_QueryInterface(NineUnknown(This)->container, riid, ppContainer); }
static inline void NineVolume9_MarkContainerDirty( struct NineVolume9 *This ) { struct NineBaseTexture9 *tex; #ifdef DEBUG /* This is always contained by a NineVolumeTexture9. */ GUID id = IID_IDirect3DVolumeTexture9; REFIID ref = &id; assert(NineUnknown_QueryInterface(This->base.container, ref, (void **)&tex) == S_OK); assert(NineUnknown_Release(NineUnknown(tex)) != 0); #endif tex = NineBaseTexture9(This->base.container); assert(tex); if (This->desc.Pool == D3DPOOL_MANAGED) tex->managed.dirty = TRUE; BASETEX_REGISTER_UPDATE(tex); }