Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB

  1. /*
  2. * CVDirect3DBuffer.h
  3. * CoreVideo
  4. *
  5. * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
  6. *
  7. */
  8. /*! @header CVDirect3DBuffer.h
  9. @copyright 2004 Apple Computer, Inc. All rights reserved.
  10. @discussion A CoreVideo buffer derives from a generic buffer and can be an ImageBuffer or PixelBuffer.
  11. */
  12. #if !defined(__COREVIDEO_CVDIRECT3DBUFFER_H__)
  13. #define __COREVIDEO_CVDIRECT3DBUFFER_H__ 1
  14. #include <CVImageBuffer.h>
  15. #if defined(__cplusplus)
  16. extern "C" {
  17. #endif
  18. #define kCVDirect3DBufferWidth CFSTR("Width")
  19. #define kCVDirect3DBufferHeight CFSTR("Height")
  20. #define kCVDirect3DBufferTarget CFSTR("Direct3DTarget")
  21. #define kCVDirect3DBufferInternalFormat CFSTR("Direct3DInternalFormat")
  22. #define kCVDirect3DBufferMaximumMipmapLevel CFSTR("MaximumMipmapLevel")
  23. typedef CVImageBufferRef CVDirect3DBufferRef;
  24. CV_EXPORT CFTypeID CVDirect3DBufferGetTypeID();
  25. /*!
  26. @function CVDirect3DBufferRetain
  27. @abstract Retains a CVDirect3DBuffer object
  28. @discussion Equivalent to CFRetain, but NULL safe
  29. @param buffer A CVDirect3DBuffer object that you want to retain.
  30. @result A CVDirect3DBuffer object that is the same as the passed in buffer.
  31. */
  32. CV_EXPORT CVDirect3DBufferRef CVDirect3DBufferRetain( CVDirect3DBufferRef texture );
  33. /*!
  34. @function CVDirect3DBufferRelease
  35. @abstract Releases a CVDirect3DBuffer object
  36. @discussion Equivalent to CFRelease, but NULL safe
  37. @param buffer A CVDirect3DBuffer object that you want to release.
  38. */
  39. CV_EXPORT void CVDirect3DBufferRelease( CVDirect3DBufferRef texture );
  40. /*!
  41. @function CVDirect3DBufferCreate
  42. @abstract Create a new CVDirect3DBuffer that may be used for D3D rendering purposes
  43. @param width The width of the buffer in pixels
  44. @param height The height of the buffer in pixels
  45. @param attributes A CFDictionaryRef containing other desired attributes of the buffer (texture format, max mipmap level, etc.).
  46. May be NULL.
  47. @param bufferOut The newly created buffer will be placed here.
  48. @result kCVReturnSuccess if the attachment succeeded
  49. */
  50. CV_EXPORT CVReturn CVDirect3DBufferCreate(CFAllocatorRef allocator, size_t width, size_t height, void *d3dDevice, CFDictionaryRef attributes, CVDirect3DBufferRef *bufferOut);
  51. /*!
  52. @function CVDirect3DBufferGetAttributes
  53. @param openGLBuffer Target D3D Buffer.
  54. @result CVDirect3DBuffer attributes dictionary, NULL if not set.
  55. */
  56. CV_EXPORT CFDictionaryRef CVDirect3DBufferGetAttributes(CVDirect3DBufferRef d3DBuffer);
  57. #if defined(__cplusplus)
  58. }
  59. #endif
  60. #endif