ImfTiledOutputPart.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. //
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Copyright (c) Contributors to the OpenEXR Project.
  4. //
  5. #ifndef IMFTILEDOUTPUTPART_H_
  6. #define IMFTILEDOUTPUTPART_H_
  7. #include "ImfForward.h"
  8. #include "ImfTileDescription.h"
  9. #include <ImathBox.h>
  10. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
  11. //-------------------------------------------------------------------------------
  12. // class TiledOutputPart:
  13. //
  14. // Same interface as TiledOutputFile. Please have a reference to TiledOutputFile.
  15. //-------------------------------------------------------------------------------
  16. class TiledOutputPart
  17. {
  18. public:
  19. IMF_EXPORT
  20. TiledOutputPart(MultiPartOutputFile& multiPartFile, int partNumber);
  21. IMF_EXPORT
  22. const char * fileName () const;
  23. IMF_EXPORT
  24. const Header & header () const;
  25. IMF_EXPORT
  26. void setFrameBuffer (const FrameBuffer &frameBuffer);
  27. IMF_EXPORT
  28. const FrameBuffer & frameBuffer () const;
  29. IMF_EXPORT
  30. unsigned int tileXSize () const;
  31. IMF_EXPORT
  32. unsigned int tileYSize () const;
  33. IMF_EXPORT
  34. LevelMode levelMode () const;
  35. IMF_EXPORT
  36. LevelRoundingMode levelRoundingMode () const;
  37. IMF_EXPORT
  38. int numLevels () const;
  39. IMF_EXPORT
  40. int numXLevels () const;
  41. IMF_EXPORT
  42. int numYLevels () const;
  43. IMF_EXPORT
  44. bool isValidLevel (int lx, int ly) const;
  45. IMF_EXPORT
  46. int levelWidth (int lx) const;
  47. IMF_EXPORT
  48. int levelHeight (int ly) const;
  49. IMF_EXPORT
  50. int numXTiles (int lx = 0) const;
  51. IMF_EXPORT
  52. int numYTiles (int ly = 0) const;
  53. IMF_EXPORT
  54. IMATH_NAMESPACE::Box2i dataWindowForLevel (int l = 0) const;
  55. IMF_EXPORT
  56. IMATH_NAMESPACE::Box2i dataWindowForLevel (int lx, int ly) const;
  57. IMF_EXPORT
  58. IMATH_NAMESPACE::Box2i dataWindowForTile (int dx, int dy,
  59. int l = 0) const;
  60. IMF_EXPORT
  61. IMATH_NAMESPACE::Box2i dataWindowForTile (int dx, int dy,
  62. int lx, int ly) const;
  63. IMF_EXPORT
  64. void writeTile (int dx, int dy, int l = 0);
  65. IMF_EXPORT
  66. void writeTile (int dx, int dy, int lx, int ly);
  67. IMF_EXPORT
  68. void writeTiles (int dx1, int dx2, int dy1, int dy2,
  69. int lx, int ly);
  70. IMF_EXPORT
  71. void writeTiles (int dx1, int dx2, int dy1, int dy2,
  72. int l = 0);
  73. IMF_EXPORT
  74. void copyPixels (TiledInputFile &in);
  75. IMF_EXPORT
  76. void copyPixels (InputFile &in);
  77. IMF_EXPORT
  78. void copyPixels (TiledInputPart &in);
  79. IMF_EXPORT
  80. void copyPixels (InputPart &in);
  81. IMF_EXPORT
  82. void updatePreviewImage (const PreviewRgba newPixels[]);
  83. IMF_EXPORT
  84. void breakTile (int dx, int dy,
  85. int lx, int ly,
  86. int offset,
  87. int length,
  88. char c);
  89. private:
  90. TiledOutputFile* file;
  91. };
  92. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
  93. #endif /* IMFTILEDOUTPUTPART_H_ */