source-engine/common/quicktime_win32/CVDirect3DTextureCache.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

97 lines
3.8 KiB
C

/*
* CVDirect3DTextureCache.h
* CoreVideo
*
* Copyright 2004 Apple Computer, Inc. All rights reserved.
*
*/
#if !defined(__COREVIDEO__CVDIRECT3DTEXTURECACHE_H__)
#define __COREVIDEO__CVDIRECT3DTEXTURECACHE_H__ 1
#include <CVBase.h>
#include <CVReturn.h>
#include <CVBuffer.h>
#include <CVDirect3DTexture.h>
#if defined(__cplusplus)
extern "C" {
#endif
/*!
@typedef CVDirect3DTextureCacheRef
@abstract CoreVideo Direct3D Texture Cache
*/
typedef struct __CVDirect3DTextureCache *CVDirect3DTextureCacheRef;
CV_EXPORT CFTypeID CVDirect3DTextureCacheGetTypeID();
/*!
@function CVDirect3DTextureCacheRetain
@abstract Retains a CVDirect3DTextureCache object
@discussion Equivalent to CFRetain, but NULL safe
@param buffer A CVDirect3DTextureCache object that you want to retain.
@result A CVDirect3DTextureCache object that is the same as the passed in buffer.
*/
CV_EXPORT CVDirect3DTextureCacheRef CVDirect3DTextureCacheRetain( CVDirect3DTextureCacheRef textureCache ); // NULL-safe
/*!
@function CVDirect3DTextureCacheRelease
@abstract Releases a CVDirect3DTextureCache object
@discussion Equivalent to CFRelease, but NULL safe
@param buffer A CVDirect3DTextureCache object that you want to release.
*/
CV_EXPORT void CVDirect3DTextureCacheRelease( CVDirect3DTextureCacheRef textureCache ); // NULL-safe
/*!
@function CVDirect3DTextureCacheCreate
@abstract Creates a new Texture Cache.
@param allocator The CFAllocatorRef to use for allocating the cache. May be NULL.
@param cacheAttributes A CFDictionaryRef containing the attributes of the cache itself. May be NULL.
@param cglContext The D3D context into which the texture objects will be created
@param cglPixelFormat The D3D pixel format object used to create the passed in D3D context
@param textureAttributes A CFDictionaryRef containing the attributes to be used for creating the CVDirect3DTexture objects. May be NULL.
@param cacheOut The newly created texture cache will be placed here
@result Returns kCVReturnSuccess on success
*/
CV_EXPORT CVReturn CVDirect3DTextureCacheCreate(
CFAllocatorRef allocator,
CFDictionaryRef cacheAttributes,
void *d3dDevice, /*CVDIRECT3DDEVICE*/
UInt32 d3dFormat, /*D3DFORMAT*/
CFDictionaryRef textureAttributes,
CVDirect3DTextureCacheRef *cacheOut);
/*!
@function CVDirect3DTextureCacheCreateTextureFromImage
@abstract Creates a CVDirect3DTexture object from an existing CVImageBuffer
@param allocator The CFAllocatorRef to use for allocating the CVDirect3DTexture object. May be NULL.
@param sourceImage The CVImageBuffer that you want to create a CVDirect3DTexture from.
@param attribuse The desired buffer attributes for the CVDirect3DTexture.
@param textureOut The newly created texture object will be placed here.
@result Returns kCVReturnSuccess on success
*/
CV_EXPORT CVReturn CVDirect3DTextureCacheCreateTextureFromImage(CFAllocatorRef allocator,
CVDirect3DTextureCacheRef textureCache,
CVImageBufferRef sourceImage,
CFDictionaryRef *attribs,
CVDirect3DTextureRef *textureOut);
/*!
@function CVDirect3DTextureCacheFlush
@abstract Performs internal housekeeping/recycling operations
@discussion This call must be made periodically to give the texture cache a chance to make D3D calls
on the Direct3D context used to create it in order to do housekeeping operations.
@param textureCache The texture cache object to flush
@param options Currently unused, set to 0.
@result Returns kCVReturnSuccess on success
*/
CV_EXPORT void CVDirect3DTextureCacheFlush(CVDirect3DTextureCacheRef textureCache, CVOptionFlags options);
#if defined(__cplusplus)
}
#endif
#endif