コード例 #1
0
ファイル: d3dadapter9.c プロジェクト: x5f3759df/wine-d3d9
static ULONG WINAPI
d3dadapter9_Release( struct d3dadapter9 *This )
{
    ULONG refs = InterlockedDecrement(&This->refs);
    TRACE("%p decreasing refcount to %u.\n", This, refs);
    if (refs == 0) {
        /* dtor */
        if (This->map) {
            HeapFree(GetProcessHeap(), 0, This->map);
        }

        if (This->groups) {
            int i, j;
            for (i = 0; i < This->ngroups; ++i) {
                if (This->groups[i].outputs) {
                    for (j = 0; j < This->groups[i].noutputs; ++j) {
                        if (This->groups[i].outputs[j].modes) {
                            HeapFree(GetProcessHeap(), 0,
                                     This->groups[i].outputs[j].modes);
                        }
                    }
                    HeapFree(GetProcessHeap(), 0, This->groups[i].outputs);
                }

                if (This->groups[i].adapter) {
                    ID3DAdapter9_Release(This->groups[i].adapter);
                }
            }
            HeapFree(GetProcessHeap(), 0, This->groups);
        }

        HeapFree(GetProcessHeap(), 0, This);
    }
    return refs;
}
コード例 #2
0
ファイル: SDL_nine.c プロジェクト: EoD/Xnine
static ULONG WINAPI
d3dadapter9_Release( struct d3dadapter9 *This )
{
    ULONG refs = InterlockedDecrement(&This->refs);
    TRACE("%p decreasing refcount to %u.\n", This, refs);
    if (refs == 0) {
        /* dtor */
        if (This->adapter){
            ID3DAdapter9_Release(This->adapter);
        }

        free(This);
    }
    return refs;
}
コード例 #3
0
ULONG D3DAdapter9_Release(ID3DAdapter9 *This)
{
    return ID3DAdapter9_Release(This);
}