HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IMG_Stat.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: IMG_Stat.h ( IMG Library, C++)
7  *
8  * COMMENTS: Information about a raster IO stream. This is what's passed
9  * around to read/write the raster. It's virtual so that each
10  * Format can define it's on private information to stash and keep
11  * around.
12  */
13 
14 #ifndef __IMG_Stat__
15 #define __IMG_Stat__
16 
17 #include "IMG_API.h"
18 
19 #include "IMG_FileTypes.h"
20 #include "IMG_Plane.h"
21 #include "IMG_Metadata.h"
22 
23 #include <UT/UT_String.h>
24 #include <UT/UT_Rect.h>
25 #include <UT/UT_ValArray.h>
26 #include <UT/UT_IntArray.h>
27 #include <UT/UT_SharedPtr.h>
28 #include <SYS/SYS_Inline.h>
29 
30 class IMG_DeepStat;
31 
32 /// @brief Contains the details of a specific image file, used by IMG_File.
33 /// This class contains all the high-level details needed to save an image file,
34 /// or query a loaded image file's statistics. It contains such data as the
35 /// resolution, pixel aspect ratios, data formats and image planes. The set()
36 /// methods are used when creating a new IMG_Stat for writing an image file,
37 /// while the get() methods are generally used when reading.
39 {
40 public:
42 
43  IMG_Stat();
44  /// Sets up the resolution of the image. addPlane() or addDefaultPlane()
45  /// must be called to fill out the AOVs.
46  IMG_Stat(unsigned xres, unsigned yres);
47 
48  /// sets up a single image plane format, without requiring addPlane().
49  /// Don't use this for deep raster images.
50  IMG_Stat(unsigned xres, unsigned yres, IMG_DataType dt, IMG_ColorModel cm);
51 
52  // Copy c-tor
53  IMG_Stat(const IMG_Stat &s);
54 
55  ~IMG_Stat();
56 
57  int64 getMemoryUsage(bool inclusive) const;
58 
60  {
61  copy(s);
62  return *this;
63  }
64  void copy(const IMG_Stat &src);
65 
66  /// @{
67  /// Read/write image a specific mode. If the format does not support
68  /// it, or the image being read is not of that type, IMG_File::open or
69  /// IMG_File::create calls will fail.
70  /// The default value is IMG_TYPE_2D.
71  void setImageType(IMG_ImageType it);
72 
73  IMG_ImageType getImageType() const { return myImageType; }
74  /// @}
75 
76  /// @{
77  /// Sets the resolution for the image, if not specified by the constructor.
78  void setResolution(unsigned xres, unsigned yres)
79  {
80  myXres = xres;
81  myYres = yres;
82  recomputeOffsets();
83  }
84 
85  /// Returns the resolution of the image to be written or the one that was
86  /// read.
87  /// @sa getDataWidth
88  /// @sa getDataHeight
89  unsigned getXres() const { return myXres; }
90  unsigned getYres() const { return myYres; }
91  /// @}
92 
93  /// @{
94  /// Pixel aspect ratio of the file (X/Y). Square pixels are 1.0 (default).
95  void setAspectRatio(fpreal aspect) { myAspectRatio=aspect; }
96  fpreal getAspectRatio() const { return myAspectRatio; }
97  /// @}
98 
99 
100  /// filename of the opened file. Files attached to streams may not have
101  /// a filename.
102  /// @{
103  void setFilename(const char *name){ myName.harden(name); }
104  const UT_String &getFilename() const { return myName; }
105  /// @}
106 
107  /// @{
108  /// @brief Returns the number of image planes in the image
109  /// a plane contains the actual structure of the image data. An image
110  /// needs at least one. Deep rasters can have multiple planes.
111  int getNumPlanes() const;
112  /// @brief Get an image plane by index
113  IMG_Plane *getPlane(int i = 0) const;
114 
115  /// @brief Get an image plane by name
116  /// Returns the plane with name 'name', or NULL if no matching plane is
117  /// found.
118  IMG_Plane *getPlaneName(const char *name) const;
119 
120  /// @brief Returns the index of the plane with 'name'
121  /// Returns the index of the plane with name 'name', or -1 if not found.
122  int getPlaneIndex(const char *name) const;
123  /// @}
124 
125  /// @{
126  /// @brief Add a plane to an image file.
127  /// Add a plane to the image file. This is only used when writing files.
128  /// Plane names must be unique. To write a file, at least one plane must be
129  /// present.
130  IMG_Plane *addPlane(const char *name,
131  IMG_DataType d,
132  IMG_ColorModel cm,
133  const char *c0name = 0,
134  const char *c1name = 0,
135  const char *c2name = 0,
136  const char *c3name = 0);
137  /// @private
138  IMG_Plane *addPlane(const IMG_Plane &pi);
139  /// @brief Add a default 8bit, RGBA plane to the image.
141  { return addPlane("C", IMG_UCHAR, IMG_RGBA, "r","g","b","a"); }
142  /// @}
143 
144  /// Adds 6 planes named Left, Right, Top, Bottom, Front and Back, all using
145  /// the same image format.
146  void addEnvMapPlanes(IMG_DataType dt, IMG_ColorModel cm);
147 
148  /// isEnvMap() will return true, only if the image is an environment map.
149  bool isEnvMap() const { return myEnvMapPlanes; }
150 
151  /// Sets the environment flag, if the image planes can be treated
152  /// as an environment map.
153  /// @return True if setting to the environment map was successful,
154  /// false otherwise.
155  bool setEnvMap();
156 
157  /// @private
158  void insertPlane(IMG_Plane *plane, int beforeindex);
159 
160  /// @{
161  /// Remove a plane by index from the stat. Used only for writing files.
162  void removePlane(int pindex);
163  /// Remove a plane by index from the stat. Used only for writing files.
164  void removePlane(const char *name);
165  /// Remove all planes from the stat. Used only for writing files.
166  void removeAllPlanes();
167  /// @}
168 
169  /// Alters the order of planes in the stat.
170  void reorderPlane(IMG_Plane *plane, int beforeindex);
171 
172  /// @{
173  /// Swap two planes
174  void swapPlaneOrder(int plane_a, int plane_b);
175  void swapPlaneOrder(const IMG_Plane *p, int plane_b)
176  { swapPlaneOrder(p->getPlaneIndex(), plane_b); }
177  /// @}
178 
179  /// @{
180  /// @brief Manipulate the data window of an image.
181  /// The data window is constant across all planes. It may be smaller than
182  /// the actual resolution (crop region) or larger. The data window is
183  /// inclusive in that x2 and y2 are part of the region. You can also use
184  /// the UT_DimRect versions for easier manipulations of the area.
185  /// Image data is only defined for the area contained by the data window.
186  /// By default, it is (0,0) - (xres-1, yres-1) (the entire image).
187  void setDataWindow(const UT_DimRect &win);
188  void setDataWindow(int x1, int y1, int x2, int y2);
189  void clearDataWindow();
190 
191  /// @brief Get the data window of an image.
192  void getDataWindow(UT_DimRect &r) const;
193  /// @brief Get the data window of an image.
194  void getDataWindow(int &x1, int &y1,
195  int &x2, int &y2) const;
196  /// @brief Return the data window for the image
197  const UT_DimRect &getDataWindow() const { return myDataWindow; }
198  /// @brief Returns true if the image has a data window
199  bool hasDataWindow() const;
200  /// @}
201 
202  /// The image data outside the data window can be represented one of two
203  /// ways: with a constant color, or by streaking the edges of the window.
204  /// @{
205  void setBackgroundColor(fpreal col[4]);
206  void getBackgroundColor(fpreal col[4]) const;
207 
208  void setBackgroundStreak(bool streak)
209  { myDataStreakFlag = streak; }
210  bool getBackgroundStreak() const {return myDataStreakFlag;}
211  /// @}
212 
213  /// This returns the width of the image. If no data window is
214  /// present, then this is Xres. If a data window is present, then
215  /// this is the width of the data window.
216  int getDataWidth() const;
217  /// This returns the height of the image. If no data window is
218  /// present, then this is Yres. If a data window is present, then
219  /// this is the height of the data window.
220  int getDataHeight() const;
221 
222  /// @deprecated
223  /// the number of frames in the file. Mostly for movie formats.
224  int getNumFrames() const { return myNumFrames; }
225  /// @deprecated
226  /// the number of frames in the file. Mostly for movie formats.
227  void setNumFrames(int nf) { myNumFrames = nf; }
228 
229  /// @deprecated the FPS for frame playback.
230  fpreal getFPS() const { return myFPS; }
231  /// @deprecated the FPS for frame playback.
232  void setFPS(fpreal fps) { myFPS = fps; }
233 
234  /// @{
235  /// Access metadata
236  IMG_Metadata &metadata() { return myMetadata; }
237  const IMG_Metadata &metadata() const { return myMetadata; }
238  bool findMetadata(const UT_StringRef &key,
239  IMG_MetadataItem &value) const
240  { return metadata().find(key, value, metadataKey()); }
241  /// @}
242 
243  /// Set the default metadata key for the format
244  void setMetadataKey(const UT_StringHolder &k) { myMetadataKey = k; }
245 
246  /// Get the format's default metadata key
247  const UT_StringHolder &metadataKey() const { return myMetadataKey; }
248 
249  /// @{
250  /// Metadata iterator
252  { return metadata().begin(); }
254  { return metadata().end(); }
255  /// @}
256 
257  /// @{
258  /// Import metadata
259  bool importMetadata(const UT_StringRef &key, bool &val) const
260  { return metadata().import(key, val, metadataKey()); }
261  bool importMetadata(const UT_StringRef &key, int32 &val) const
262  { return metadata().import(key, val, metadataKey()); }
263  bool importMetadata(const UT_StringRef &key, int64 &val) const
264  { return metadata().import(key, val, metadataKey()); }
265  bool importMetadata(const UT_StringRef &key, fpreal32 &val) const
266  { return metadata().import(key, val, metadataKey()); }
267  bool importMetadata(const UT_StringRef &key, fpreal64 &val) const
268  { return metadata().import(key, val, metadataKey()); }
269  bool importMetadata(const UT_StringRef &key, UT_Matrix4F &val) const
270  { return metadata().import(key, val, metadataKey()); }
271  bool importMetadata(const UT_StringRef &key, UT_Matrix4D &val) const
272  { return metadata().import(key, val, metadataKey()); }
274  { return metadata().import(key, val, metadataKey()); }
275  /// @}
276 
277  /// Convert metadata to a string value. When @c pretty_print is @c true:
278  /// - If there's a menu, the corresponding label will be returned
279  /// - If there's type information, it will be used (i.e. printing a time or
280  /// memory)
283  bool pretty_print) const
284  {
285  return metadata().toString(key, value, metadataKey(), pretty_print);
286  }
287 
288  /// @{
289  /// Set metadata
290  bool setMetadata(const UT_StringHolder &key, const IMG_MetadataItem &item)
291  { return metadata().add(key, item); }
292  bool setMetadata(const UT_StringHolder &key, const UT_JSONValue &val)
293  { return metadata().add(key, IMG_MetadataItem(val)); }
294  bool setMetadata(const UT_StringHolder &key, bool val)
295  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
297  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
299  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
301  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
302  /// @}
303 
304 
305  /// Obsolete interface to set metadata based on a "typed" string
306  void setTypedMetadata(const UT_StringHolder &name, const char *val)
307  { metadata().addTypedString(name, val); }
308 
309  /// If the image file has a recorded render time, this
310  /// returns the render time, else it returns -1.
311  fpreal getRenderTime() const { return myRenderTime; }
312  /// Sets the render time from the image file.
313  void setRenderTime(fpreal t) { myRenderTime = t; }
314 
315  /// Import the texture wrap modes from image metadata
316  bool importTextureWrapModes(UT_StringHolder &swrap,
317  UT_StringHolder &twrap) const;
318  /// Parse the "wrapmodes" metadata into the constituent parts
319  static bool splitTextureWrapModes(const UT_StringRef &wrapmodes,
320  UT_StringHolder &swrap,
321  UT_StringHolder &twrap);
322 
323  /// If the image file has a recorded render memory, this
324  /// returns the render memory, else it returns 0.
325  int64 getRenderMemory() const { return myRenderMemory; }
326  /// Sets the render time from the image file.
327  void setRenderMemory(int64 mem) { myRenderMemory = mem; }
328 
329  /// @{
330  /// @brief Set how deep samples are interpolated.
331  void setDeepStat(const img_DeepStatPtr &deep)
332  { myDeepStat = deep; }
334  { return myDeepStat; }
335  /// @}
336 
337  // prints out the color model and data type.
338  static const char *getColorModel(IMG_ColorModel cm);
339  static const char *getDataType(IMG_DataType dt);
340 
341  /// Returns the total number of components across all planes.
342  int64 getComponentCount() const;
343 
344  /// Returns the number of components for the deep pixel image. This
345  /// excludes any pseudo-planes, such as "Depth-Complexity".
346  int64 getDeepPixelComponentCount() const;
347 
348 
349  /// Returns the number of bytes for a single pixel made up of all planes.
350  int64 bytesPerPixel() const;
351 
352  /// Returns the total number of bytes for the entire image. Returns -1 for
353  /// deep images, since the size is dependent on sample count.
354  int64 bytesPerImage() const;
355 
356  /// Returns the total number of bytes for a single scanline. Returns -1 for
357  /// deep images, since the size is dependent on sample count.
358  int64 bytesPerScanline() const;
359 
360  /// @{
361  /// Returns the number bytes for a single scanline. Returns -1 for
362  /// deep images, since the size is dependent on sample count.
363  int64 bytesPerPlaneScan(const IMG_Plane &pi) const;
364  int64 bytesPerPlaneScan(int i) const;
365  /// @}
366 
367  /// @{
368  /// For 2D images, returns the offset into the data for a plane in a given
369  /// scanline. Plane data is arranged consecutively by scanline.
370  /// For deep images, returns the offset into a pixel sample for a given
371  /// plane's data. Planes are interleaved by a pixel sample.
372  int planeOffset(const IMG_Plane &pi) const;
373  int planeOffset(int i) const;
374  /// @}
375 
376  /// Sets the color space for all planes. gamma is only needed for the
377  /// PXL_CS_CUSTOM_GAMMA space.
378  void setColorSpace(PXL_ColorSpace cs, fpreal gamma = 0.0);
379 
380  /// Set the color space on planes with an unknown color space to 'cs'.
381  /// gamma is only needed for the PXL_CS_CUSTOM_GAMMA space.
382  void setColorSpaceForUnknownPlanes(PXL_ColorSpace cs,
383  fpreal gamma = 0.0);
384 
385  /// Set the OCIO color space for all planes.
386  void setOCIOColorSpace(const UT_StringHolder &space);
387 
388  // Selected mip level when the file was opened (via selectMipLevel() in
389  // IMG_FileParms). 0 if unspecified or loaded original resolution.
390  int getMipLevel() const { return myMipLevel; }
391  void setMipLevel(int n) { myMipLevel = n; }
392 
393  // mipmap round mode (ie how next resolution down is calculated)
394  IMG_MipRoundMode getMipRoundMode() const { return myMipRoundMode; }
396  { myMipRoundMode = mode; }
397 
398  void dump() const;
399  void dump(UT_JSONWriter &w) const;
400 
401 protected:
402  friend class IMG_Plane;
403  void recomputeOffsets();
404 private:
405  void init(int xres, int yres);
406 
407  IMG_ImageType myImageType;
408  UT_String myName;
409  UT_ValArray<IMG_Plane *> myPlanes;
410  IMG_Metadata myMetadata; // Main image metadata
411  UT_StringHolder myMetadataKey; // metadata key for format
412  UT_IntArray myPlaneOffset;
413  fpreal myDataWindowColor[4];
414  UT_DimRect myDataWindow;
415  fpreal myAspectRatio;
416  fpreal myFPS;
417  fpreal myRenderTime;
418  int64 myRenderMemory;
419  img_DeepStatPtr myDeepStat;
420  unsigned myXres, myYres;
421  int myNumFrames;
422  int myScanlineSize;
423  int myMipLevel;
424  IMG_MipRoundMode myMipRoundMode;
425  bool myDataStreakFlag;
426  bool myHasDataWindow;
427  bool myEnvMapPlanes;
428 };
429 
430 /////////////////////////////////////////////////////////////////////////////
431 //
432 // Inline Implementations
433 //
434 
437 {
438  return myPlanes.entries();
439 }
440 
441 inline IMG_Plane *
442 IMG_Stat::getPlane(int i) const
443 {
444  UT_ASSERT(i>=0 && i<myPlanes.entries());
445  return myPlanes(i);
446 }
447 
448 inline int64
450 {
451  return myScanlineSize;
452 }
453 
454 inline int64
456 {
457  return bytesPerScanline() * getDataHeight();
458 }
459 
460 #endif
const IMG_Metadata & metadata() const
Definition: IMG_Stat.h:237
int getMipLevel() const
Definition: IMG_Stat.h:390
bool importMetadata(const UT_StringRef &key, int64 &val) const
Definition: IMG_Stat.h:263
fpreal getRenderTime() const
Definition: IMG_Stat.h:311
fpreal getAspectRatio() const
Definition: IMG_Stat.h:96
int int32
Definition: SYS_Types.h:39
void setFPS(fpreal fps)
Definition: IMG_Stat.h:232
fpreal getFPS() const
Definition: IMG_Stat.h:230
IMG_ImageType
Type of image we want to create or have opened.
IMG_Metadata & metadata()
Definition: IMG_Stat.h:236
IMG_Plane * getPlane(int i=0) const
Get an image plane by index.
Definition: IMG_Stat.h:442
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
int64 getRenderMemory() const
Definition: IMG_Stat.h:325
int getNumFrames() const
Definition: IMG_Stat.h:224
bool importMetadata(const UT_StringRef &key, fpreal64 &val) const
Definition: IMG_Stat.h:267
IMG_MipRoundMode
GLdouble s
Definition: glad.h:3009
void setResolution(unsigned xres, unsigned yres)
Definition: IMG_Stat.h:78
Class which writes ASCII or binary JSON streams.
Definition: UT_JSONWriter.h:37
IMG_MipRoundMode getMipRoundMode() const
Definition: IMG_Stat.h:394
bool importMetadata(const UT_StringRef &key, UT_StringHolder &val) const
Definition: IMG_Stat.h:273
IMG_ImageType getImageType() const
Definition: IMG_Stat.h:73
int64 bytesPerScanline() const
Definition: IMG_Stat.h:449
bool importMetadata(const UT_StringRef &key, UT_Matrix4D &val) const
Definition: IMG_Stat.h:271
Describes the format and layout of a single plane in an image The plane specifies the format and name...
Definition: IMG_Plane.h:48
float fpreal32
Definition: SYS_Types.h:200
void setRenderTime(fpreal t)
Sets the render time from the image file.
Definition: IMG_Stat.h:313
bool importMetadata(const UT_StringRef &key, fpreal32 &val) const
Definition: IMG_Stat.h:265
bool setMetadata(const UT_StringHolder &key, int64 val)
Definition: IMG_Stat.h:296
const img_DeepStatPtr & getDeepStat() const
Set how deep samples are interpolated.
Definition: IMG_Stat.h:333
GLdouble GLdouble x2
Definition: glad.h:2349
IMG_Metadata::const_iterator beginMetadata() const
Definition: IMG_Stat.h:251
void setAspectRatio(fpreal aspect)
Definition: IMG_Stat.h:95
double fpreal64
Definition: SYS_Types.h:201
void setMipRoundMode(IMG_MipRoundMode mode)
Definition: IMG_Stat.h:395
bool setMetadata(const UT_StringHolder &key, const UT_StringHolder &val)
Definition: IMG_Stat.h:300
#define IMG_API
Definition: IMG_API.h:10
UT_StringMap< IMG_MetadataItem >::const_iterator const_iterator
Definition: IMG_Metadata.h:325
int getNumPlanes() const
Returns the number of image planes in the image a plane contains the actual structure of the image da...
Definition: IMG_Stat.h:436
bool isEnvMap() const
isEnvMap() will return true, only if the image is an environment map.
Definition: IMG_Stat.h:149
GLdouble n
Definition: glcorearb.h:2008
bool findMetadata(const UT_StringRef &key, IMG_MetadataItem &value) const
Definition: IMG_Stat.h:238
bool getBackgroundStreak() const
Definition: IMG_Stat.h:210
const UT_StringHolder & metadataKey() const
Get the format's default metadata key.
Definition: IMG_Stat.h:247
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
bool metadataAsString(const UT_StringRef &key, UT_StringHolder &value, bool pretty_print) const
Definition: IMG_Stat.h:281
IMG_DataType
Definition: IMG_FileTypes.h:17
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
GLdouble y1
Definition: glad.h:2349
long long int64
Definition: SYS_Types.h:116
IMG_Metadata::const_iterator endMetadata() const
Definition: IMG_Stat.h:253
void setMipLevel(int n)
Definition: IMG_Stat.h:391
unsigned getYres() const
Definition: IMG_Stat.h:90
unsigned getXres() const
Definition: IMG_Stat.h:89
const UT_DimRect & getDataWindow() const
Return the data window for the image.
Definition: IMG_Stat.h:197
GLuint const GLchar * name
Definition: glcorearb.h:786
bool importMetadata(const UT_StringRef &key, bool &val) const
Definition: IMG_Stat.h:259
IMG_Plane * addDefaultPlane()
Add a default 8bit, RGBA plane to the image.
Definition: IMG_Stat.h:140
IMG_Stat information used when creating deep images.
Definition: IMG_DeepStat.h:56
GLdouble t
Definition: glad.h:2397
GLenum mode
Definition: glcorearb.h:99
void setRenderMemory(int64 mem)
Sets the render time from the image file.
Definition: IMG_Stat.h:327
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:648
bool setMetadata(const UT_StringHolder &key, const UT_JSONValue &val)
Definition: IMG_Stat.h:292
bool importMetadata(const UT_StringRef &key, UT_Matrix4F &val) const
Definition: IMG_Stat.h:269
bool setMetadata(const UT_StringHolder &key, const IMG_MetadataItem &item)
Definition: IMG_Stat.h:290
void swapPlaneOrder(const IMG_Plane *p, int plane_b)
Definition: IMG_Stat.h:175
int getDataHeight() const
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour.
Definition: NanoVDB.h:976
bool setMetadata(const UT_StringHolder &key, bool val)
Definition: IMG_Stat.h:294
void setMetadataKey(const UT_StringHolder &k)
Set the default metadata key for the format.
Definition: IMG_Stat.h:244
fpreal64 fpreal
Definition: SYS_Types.h:277
void setTypedMetadata(const UT_StringHolder &name, const char *val)
Obsolete interface to set metadata based on a "typed" string.
Definition: IMG_Stat.h:306
void setFilename(const char *name)
Definition: IMG_Stat.h:103
PXL_ColorSpace
Definition: PXL_Common.h:72
IMG_ColorModel
Definition: IMG_FileTypes.h:52
GLuint GLfloat * val
Definition: glcorearb.h:1608
Class to store JSON objects as C++ objects.
Definition: UT_JSONValue.h:99
Contains the details of a specific image file, used by IMG_File. This class contains all the high-lev...
Definition: IMG_Stat.h:38
Map of metadata items.
Definition: IMG_Metadata.h:208
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:857
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
int getPlaneIndex() const
Definition: IMG_Plane.h:145
GLboolean r
Definition: glcorearb.h:1222
GLdouble GLdouble GLdouble y2
Definition: glad.h:2349
void setBackgroundStreak(bool streak)
Definition: IMG_Stat.h:208
const UT_String & getFilename() const
Definition: IMG_Stat.h:104
bool setMetadata(const UT_StringHolder &key, fpreal64 val)
Definition: IMG_Stat.h:298
IMG_Stat & operator=(const IMG_Stat &s)
Definition: IMG_Stat.h:59
bool importMetadata(const UT_StringRef &key, int32 &val) const
Definition: IMG_Stat.h:261
int64 bytesPerImage() const
Definition: IMG_Stat.h:455
void setNumFrames(int nf)
Definition: IMG_Stat.h:227
UT_SharedPtr< IMG_DeepStat > img_DeepStatPtr
Definition: IMG_Stat.h:41
void setDeepStat(const img_DeepStatPtr &deep)
Set how deep samples are interpolated.
Definition: IMG_Stat.h:331
GLenum src
Definition: glcorearb.h:1793