ImfForward.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Copyright (c) Contributors to the OpenEXR Project.
  4. //
  5. #ifndef INCLUDED_IMF_FORWARD_H
  6. #define INCLUDED_IMF_FORWARD_H
  7. ////////////////////////////////////////////////////////////////////
  8. //
  9. // Forward declarations for OpenEXR - correctly declares namespace
  10. //
  11. ////////////////////////////////////////////////////////////////////
  12. #include "ImfExport.h"
  13. #include "ImfNamespace.h"
  14. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
  15. // classes for basic types;
  16. template<class T> class IMF_EXPORT_TEMPLATE_TYPE Array;
  17. template<class T> class IMF_EXPORT_TEMPLATE_TYPE Array2D;
  18. struct IMF_EXPORT_TYPE Channel;
  19. class IMF_EXPORT_TYPE ChannelList;
  20. struct IMF_EXPORT_TYPE Chromaticities;
  21. // attributes used in headers are TypedAttributes
  22. class IMF_EXPORT_TYPE Attribute;
  23. class IMF_EXPORT_TYPE Header;
  24. // file handling classes
  25. class IMF_EXPORT_TYPE OutputFile;
  26. class IMF_EXPORT_TYPE TiledInputFile;
  27. class IMF_EXPORT_TYPE ScanLineInputFile;
  28. class IMF_EXPORT_TYPE InputFile;
  29. class IMF_EXPORT_TYPE TiledOutputFile;
  30. class IMF_EXPORT_TYPE DeepScanLineInputFile;
  31. class IMF_EXPORT_TYPE DeepScanLineOutputFile;
  32. class IMF_EXPORT_TYPE DeepTiledInputFile;
  33. class IMF_EXPORT_TYPE DeepTiledOutputFile;
  34. class IMF_EXPORT_TYPE AcesInputFile;
  35. class IMF_EXPORT_TYPE AcesOutputFile;
  36. class IMF_EXPORT_TYPE TiledInputPart;
  37. class IMF_EXPORT_TYPE TiledInputFile;
  38. class IMF_EXPORT_TYPE TileOffsets;
  39. // multipart file handling
  40. class IMF_EXPORT_TYPE GenericInputFile;
  41. class IMF_EXPORT_TYPE GenericOutputFile;
  42. class IMF_EXPORT_TYPE MultiPartInputFile;
  43. class IMF_EXPORT_TYPE MultiPartOutputFile;
  44. class IMF_EXPORT_TYPE InputPart;
  45. class IMF_EXPORT_TYPE TiledInputPart;
  46. class IMF_EXPORT_TYPE DeepScanLineInputPart;
  47. class IMF_EXPORT_TYPE DeepTiledInputPart;
  48. class IMF_EXPORT_TYPE OutputPart;
  49. class IMF_EXPORT_TYPE ScanLineOutputPart;
  50. class IMF_EXPORT_TYPE TiledOutputPart;
  51. class IMF_EXPORT_TYPE DeepScanLineOutputPart;
  52. class IMF_EXPORT_TYPE DeepTiledOutputPart;
  53. // internal use only
  54. struct InputPartData;
  55. struct OutputStreamMutex;
  56. struct OutputPartData;
  57. struct InputStreamMutex;
  58. // frame buffers
  59. class IMF_EXPORT_TYPE FrameBuffer;
  60. class IMF_EXPORT_TYPE DeepFrameBuffer;
  61. struct IMF_EXPORT_TYPE DeepSlice;
  62. // compositing
  63. class IMF_EXPORT_TYPE DeepCompositing;
  64. class IMF_EXPORT_TYPE CompositeDeepScanLine;
  65. // preview image
  66. class IMF_EXPORT_TYPE PreviewImage;
  67. struct IMF_EXPORT_TYPE PreviewRgba;
  68. // streams
  69. class IMF_EXPORT_TYPE OStream;
  70. class IMF_EXPORT_TYPE IStream;
  71. class IMF_EXPORT_TYPE IDManifest;
  72. class IMF_EXPORT_TYPE CompressedIDManifest;
  73. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
  74. #endif // include guard