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  void setOffset(unsigned xoffset, unsigned yoffset)
94  {
95  myXoffset = xoffset;
96  myYoffset = yoffset;
97  }
98 
99  unsigned getXoffset() const { return myXoffset; }
100  unsigned getYoffset() const { return myYoffset; }
101 
102  /// @{
103  /// Pixel aspect ratio of the file (X/Y). Square pixels are 1.0 (default).
104  void setAspectRatio(fpreal aspect) { myAspectRatio=aspect; }
105  fpreal getAspectRatio() const { return myAspectRatio; }
106  /// @}
107 
108 
109  /// filename of the opened file. Files attached to streams may not have
110  /// a filename.
111  /// @{
112  void setFilename(const char *name){ myName.harden(name); }
113  const UT_String &getFilename() const { return myName; }
114  /// @}
115 
116  /// @{
117  /// @brief Returns the number of image planes in the image
118  /// a plane contains the actual structure of the image data. An image
119  /// needs at least one. Deep rasters can have multiple planes.
120  int getNumPlanes() const;
121  /// @brief Get an image plane by index
122  IMG_Plane *getPlane(int i = 0) const;
123 
124  /// @brief Get an image plane by name
125  /// Returns the plane with name 'name', or NULL if no matching plane is
126  /// found.
127  IMG_Plane *getPlaneName(const char *name) const;
128 
129  /// @brief Returns the index of the plane with 'name'
130  /// Returns the index of the plane with name 'name', or -1 if not found.
131  int getPlaneIndex(const char *name) const;
132  /// @}
133 
134  /// @{
135  /// @brief Add a plane to an image file.
136  /// Add a plane to the image file. This is only used when writing files.
137  /// Plane names must be unique. To write a file, at least one plane must be
138  /// present.
139  IMG_Plane *addPlane(const char *name,
140  IMG_DataType d,
141  IMG_ColorModel cm,
142  const char *c0name = 0,
143  const char *c1name = 0,
144  const char *c2name = 0,
145  const char *c3name = 0);
146  /// @private
147  IMG_Plane *addPlane(const IMG_Plane &pi);
148  /// @brief Add a default 8bit, RGBA plane to the image.
150  { return addPlane("C", IMG_UCHAR, IMG_RGBA, "r","g","b","a"); }
151  /// @}
152 
153  /// Adds 6 planes named Left, Right, Top, Bottom, Front and Back, all using
154  /// the same image format.
155  void addEnvMapPlanes(IMG_DataType dt, IMG_ColorModel cm);
156 
157  /// isEnvMap() will return true, only if the image is an environment map.
158  bool isEnvMap() const { return myEnvMapPlanes; }
159 
160  /// Sets the environment flag, if the image planes can be treated
161  /// as an environment map.
162  /// @return True if setting to the environment map was successful,
163  /// false otherwise.
164  bool setEnvMap();
165 
166  /// @private
167  void insertPlane(IMG_Plane *plane, int beforeindex);
168 
169  /// @{
170  /// Remove a plane by index from the stat. Used only for writing files.
171  void removePlane(int pindex);
172  /// Remove a plane by index from the stat. Used only for writing files.
173  void removePlane(const char *name);
174  /// Remove all planes from the stat. Used only for writing files.
175  void removeAllPlanes();
176  /// @}
177 
178  /// Alters the order of planes in the stat.
179  void reorderPlane(IMG_Plane *plane, int beforeindex);
180 
181  /// @{
182  /// Swap two planes
183  void swapPlaneOrder(int plane_a, int plane_b);
184  void swapPlaneOrder(const IMG_Plane *p, int plane_b)
185  { swapPlaneOrder(p->getPlaneIndex(), plane_b); }
186  /// @}
187 
188  /// @{
189  /// @brief Manipulate the data window of an image.
190  /// The data window is constant across all planes. It may be smaller than
191  /// the actual resolution (crop region) or larger. The data window is
192  /// inclusive in that x2 and y2 are part of the region. You can also use
193  /// the UT_DimRect versions for easier manipulations of the area.
194  /// Image data is only defined for the area contained by the data window.
195  /// By default, it is (0,0) - (xres-1, yres-1) (the entire image).
196  void setDataWindow(const UT_DimRect &win);
197  void setDataWindow(int x1, int y1, int x2, int y2);
198  void clearDataWindow();
199 
200  /// @brief Get the data window of an image.
201  void getDataWindow(UT_DimRect &r) const;
202  /// @brief Get the data window of an image.
203  void getDataWindow(int &x1, int &y1,
204  int &x2, int &y2) const;
205  /// @brief Return the data window for the image
206  const UT_DimRect &getDataWindow() const { return myDataWindow; }
207  /// @brief Returns true if the image has a data window
208  bool hasDataWindow() const;
209  /// @}
210 
211  /// The image data outside the data window can be represented one of two
212  /// ways: with a constant color, or by streaking the edges of the window.
213  /// @{
214  void setBackgroundColor(fpreal col[4]);
215  void getBackgroundColor(fpreal col[4]) const;
216 
217  void setBackgroundStreak(bool streak)
218  { myDataStreakFlag = streak; }
219  bool getBackgroundStreak() const {return myDataStreakFlag;}
220  /// @}
221 
222  /// This returns the width of the image. If no data window is
223  /// present, then this is Xres. If a data window is present, then
224  /// this is the width of the data window.
225  int getDataWidth() const;
226  /// This returns the height of the image. If no data window is
227  /// present, then this is Yres. If a data window is present, then
228  /// this is the height of the data window.
229  int getDataHeight() const;
230 
231  /// @deprecated
232  /// the number of frames in the file. Mostly for movie formats.
233  int getNumFrames() const { return myNumFrames; }
234  /// @deprecated
235  /// the number of frames in the file. Mostly for movie formats.
236  void setNumFrames(int nf) { myNumFrames = nf; }
237 
238  /// @deprecated the FPS for frame playback.
239  fpreal getFPS() const { return myFPS; }
240  /// @deprecated the FPS for frame playback.
241  void setFPS(fpreal fps) { myFPS = fps; }
242 
243  /// @{
244  /// Access metadata
245  IMG_Metadata &metadata() { return myMetadata; }
246  const IMG_Metadata &metadata() const { return myMetadata; }
247  bool findMetadata(const UT_StringRef &key,
248  IMG_MetadataItem &value) const
249  { return metadata().find(key, value, metadataKey()); }
250  /// @}
251 
252  /// Set the default metadata key for the format
253  void setMetadataKey(const UT_StringHolder &k) { myMetadataKey = k; }
254 
255  /// Get the format's default metadata key
256  const UT_StringHolder &metadataKey() const { return myMetadataKey; }
257 
258  /// @{
259  /// Metadata iterator
261  { return metadata().begin(); }
263  { return metadata().end(); }
264  /// @}
265 
266  /// @{
267  /// Import metadata
268  bool importMetadata(const UT_StringRef &key, bool &val) const
269  { return metadata().import(key, val, metadataKey()); }
270  bool importMetadata(const UT_StringRef &key, int32 &val) const
271  { return metadata().import(key, val, metadataKey()); }
272  bool importMetadata(const UT_StringRef &key, int64 &val) const
273  { return metadata().import(key, val, metadataKey()); }
274  bool importMetadata(const UT_StringRef &key, fpreal32 &val) const
275  { return metadata().import(key, val, metadataKey()); }
276  bool importMetadata(const UT_StringRef &key, fpreal64 &val) const
277  { return metadata().import(key, val, metadataKey()); }
278  bool importMetadata(const UT_StringRef &key, UT_Matrix4F &val) const
279  { return metadata().import(key, val, metadataKey()); }
280  bool importMetadata(const UT_StringRef &key, UT_Matrix4D &val) const
281  { return metadata().import(key, val, metadataKey()); }
283  { return metadata().import(key, val, metadataKey()); }
284  /// @}
285 
286  /// Convert metadata to a string value. When @c pretty_print is @c true:
287  /// - If there's a menu, the corresponding label will be returned
288  /// - If there's type information, it will be used (i.e. printing a time or
289  /// memory)
292  bool pretty_print) const
293  {
294  return metadata().toString(key, value, metadataKey(), pretty_print);
295  }
296 
297  /// @{
298  /// Set metadata
299  bool setMetadata(const UT_StringHolder &key, const IMG_MetadataItem &item)
300  { return metadata().add(key, item); }
301  bool setMetadata(const UT_StringHolder &key, const UT_JSONValue &val)
302  { return metadata().add(key, IMG_MetadataItem(val)); }
303  bool setMetadata(const UT_StringHolder &key, bool val)
304  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
306  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
308  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
310  { return metadata().add(key, IMG_MetadataItem(UT_JSONValue(val))); }
311  /// @}
312 
313 
314  /// Obsolete interface to set metadata based on a "typed" string
315  void setTypedMetadata(const UT_StringHolder &name, const char *val)
316  { metadata().addTypedString(name, val); }
317 
318  /// If the image file has a recorded render time, this
319  /// returns the render time, else it returns -1.
320  fpreal getRenderTime() const { return myRenderTime; }
321  /// Sets the render time from the image file.
322  void setRenderTime(fpreal t) { myRenderTime = t; }
323 
324  /// Import the texture wrap modes from image metadata
325  bool importTextureWrapModes(UT_StringHolder &swrap,
326  UT_StringHolder &twrap) const;
327  /// Parse the "wrapmodes" metadata into the constituent parts
328  static bool splitTextureWrapModes(const UT_StringRef &wrapmodes,
329  UT_StringHolder &swrap,
330  UT_StringHolder &twrap);
331 
332  /// If the image file has a recorded render memory, this
333  /// returns the render memory, else it returns 0.
334  int64 getRenderMemory() const { return myRenderMemory; }
335  /// Sets the render time from the image file.
336  void setRenderMemory(int64 mem) { myRenderMemory = mem; }
337 
338  /// @{
339  /// @brief Set how deep samples are interpolated.
340  void setDeepStat(const img_DeepStatPtr &deep)
341  { myDeepStat = deep; }
343  { return myDeepStat; }
344  /// @}
345 
346  // prints out the color model and data type.
347  static const char *getColorModel(IMG_ColorModel cm);
348  static const char *getDataType(IMG_DataType dt);
349 
350  /// Returns the total number of components across all planes.
351  int64 getComponentCount() const;
352 
353  /// Returns the number of components for the deep pixel image. This
354  /// excludes any pseudo-planes, such as "Depth-Complexity".
355  int64 getDeepPixelComponentCount() const;
356 
357 
358  /// Returns the number of bytes for a single pixel made up of all planes.
359  int64 bytesPerPixel() const;
360 
361  /// Returns the total number of bytes for the entire image. Returns -1 for
362  /// deep images, since the size is dependent on sample count.
363  int64 bytesPerImage() const;
364 
365  /// Returns the total number of bytes for a single scanline. Returns -1 for
366  /// deep images, since the size is dependent on sample count.
367  int64 bytesPerScanline() const;
368 
369  /// @{
370  /// Returns the number bytes for a single scanline. Returns -1 for
371  /// deep images, since the size is dependent on sample count.
372  int64 bytesPerPlaneScan(const IMG_Plane &pi) const;
373  int64 bytesPerPlaneScan(int i) const;
374  /// @}
375 
376  /// @{
377  /// For 2D images, returns the offset into the data for a plane in a given
378  /// scanline. Plane data is arranged consecutively by scanline.
379  /// For deep images, returns the offset into a pixel sample for a given
380  /// plane's data. Planes are interleaved by a pixel sample.
381  int planeOffset(const IMG_Plane &pi) const;
382  int planeOffset(int i) const;
383  /// @}
384 
385  /// Sets the color space for all planes. gamma is only needed for the
386  /// PXL_CS_CUSTOM_GAMMA space.
387  void setColorSpace(PXL_ColorSpace cs, fpreal gamma = 0.0);
388 
389  /// Set the color space on planes with an unknown color space to 'cs'.
390  /// gamma is only needed for the PXL_CS_CUSTOM_GAMMA space.
391  void setColorSpaceForUnknownPlanes(PXL_ColorSpace cs,
392  fpreal gamma = 0.0);
393 
394  /// Set the OCIO color space for all planes.
395  void setOCIOColorSpace(const UT_StringHolder &space);
396 
397  // Selected mip level when the file was opened (via selectMipLevel() in
398  // IMG_FileParms). 0 if unspecified or loaded original resolution.
399  int getMipLevel() const { return myMipLevel; }
400  void setMipLevel(int n) { myMipLevel = n; }
401 
402  // mipmap round mode (ie how next resolution down is calculated)
403  IMG_MipRoundMode getMipRoundMode() const { return myMipRoundMode; }
405  { myMipRoundMode = mode; }
406 
407  void dump() const;
408  void dump(UT_JSONWriter &w) const;
409 
410 protected:
411  friend class IMG_Plane;
412  void recomputeOffsets();
413 private:
414  void init(int xres, int yres);
415 
416  IMG_ImageType myImageType;
417  UT_String myName;
418  UT_ValArray<IMG_Plane *> myPlanes;
419  IMG_Metadata myMetadata; // Main image metadata
420  UT_StringHolder myMetadataKey; // metadata key for format
421  UT_IntArray myPlaneOffset;
422  fpreal myDataWindowColor[4];
423  UT_DimRect myDataWindow;
424  fpreal myAspectRatio;
425  fpreal myFPS;
426  fpreal myRenderTime;
427  int64 myRenderMemory;
428  img_DeepStatPtr myDeepStat;
429  unsigned myXres, myYres;
430  unsigned myXoffset, myYoffset;
431  int myNumFrames;
432  int myScanlineSize;
433  int myMipLevel;
434  IMG_MipRoundMode myMipRoundMode;
435  bool myDataStreakFlag;
436  bool myHasDataWindow;
437  bool myEnvMapPlanes;
438 };
439 
440 /////////////////////////////////////////////////////////////////////////////
441 //
442 // Inline Implementations
443 //
444 
447 {
448  return myPlanes.entries();
449 }
450 
451 inline IMG_Plane *
452 IMG_Stat::getPlane(int i) const
453 {
454  UT_ASSERT(i>=0 && i<myPlanes.entries());
455  return myPlanes(i);
456 }
457 
458 inline int64
460 {
461  return myScanlineSize;
462 }
463 
464 inline int64
466 {
467  return bytesPerScanline() * getDataHeight();
468 }
469 
470 #endif
GLint GLint GLint yoffset
Definition: glcorearb.h:412
const IMG_Metadata & metadata() const
Definition: IMG_Stat.h:246
int getMipLevel() const
Definition: IMG_Stat.h:399
bool importMetadata(const UT_StringRef &key, int64 &val) const
Definition: IMG_Stat.h:272
fpreal getRenderTime() const
Definition: IMG_Stat.h:320
fpreal getAspectRatio() const
Definition: IMG_Stat.h:105
int int32
Definition: SYS_Types.h:39
void setFPS(fpreal fps)
Definition: IMG_Stat.h:241
fpreal getFPS() const
Definition: IMG_Stat.h:239
IMG_ImageType
Type of image we want to create or have opened.
IMG_Metadata & metadata()
Definition: IMG_Stat.h:245
IMG_Plane * getPlane(int i=0) const
Get an image plane by index.
Definition: IMG_Stat.h:452
int64 getRenderMemory() const
Definition: IMG_Stat.h:334
int getNumFrames() const
Definition: IMG_Stat.h:233
GLsizei const GLfloat * value
Definition: glcorearb.h:824
bool importMetadata(const UT_StringRef &key, fpreal64 &val) const
Definition: IMG_Stat.h:276
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:39
IMG_MipRoundMode getMipRoundMode() const
Definition: IMG_Stat.h:403
bool importMetadata(const UT_StringRef &key, UT_StringHolder &val) const
Definition: IMG_Stat.h:282
IMG_ImageType getImageType() const
Definition: IMG_Stat.h:73
int64 bytesPerScanline() const
Definition: IMG_Stat.h:459
bool importMetadata(const UT_StringRef &key, UT_Matrix4D &val) const
Definition: IMG_Stat.h:280
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
unsigned getYoffset() const
Definition: IMG_Stat.h:100
void setRenderTime(fpreal t)
Sets the render time from the image file.
Definition: IMG_Stat.h:322
bool importMetadata(const UT_StringRef &key, fpreal32 &val) const
Definition: IMG_Stat.h:274
bool setMetadata(const UT_StringHolder &key, int64 val)
Definition: IMG_Stat.h:305
const img_DeepStatPtr & getDeepStat() const
Set how deep samples are interpolated.
Definition: IMG_Stat.h:342
GLdouble GLdouble x2
Definition: glad.h:2349
IMG_Metadata::const_iterator beginMetadata() const
Definition: IMG_Stat.h:260
void setAspectRatio(fpreal aspect)
Definition: IMG_Stat.h:104
double fpreal64
Definition: SYS_Types.h:201
void setMipRoundMode(IMG_MipRoundMode mode)
Definition: IMG_Stat.h:404
bool setMetadata(const UT_StringHolder &key, const UT_StringHolder &val)
Definition: IMG_Stat.h:309
#define IMG_API
Definition: IMG_API.h:10
UT_StringMap< IMG_MetadataItem >::const_iterator const_iterator
Definition: IMG_Metadata.h:334
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:446
bool isEnvMap() const
isEnvMap() will return true, only if the image is an environment map.
Definition: IMG_Stat.h:158
GLdouble n
Definition: glcorearb.h:2008
bool findMetadata(const UT_StringRef &key, IMG_MetadataItem &value) const
Definition: IMG_Stat.h:247
bool getBackgroundStreak() const
Definition: IMG_Stat.h:219
const UT_StringHolder & metadataKey() const
Get the format's default metadata key.
Definition: IMG_Stat.h:256
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:290
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:262
void setMipLevel(int n)
Definition: IMG_Stat.h:400
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:206
GLint GLint xoffset
Definition: glcorearb.h:411
GLuint const GLchar * name
Definition: glcorearb.h:786
bool importMetadata(const UT_StringRef &key, bool &val) const
Definition: IMG_Stat.h:268
IMG_Plane * addDefaultPlane()
Add a default 8bit, RGBA plane to the image.
Definition: IMG_Stat.h:149
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:336
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:669
bool setMetadata(const UT_StringHolder &key, const UT_JSONValue &val)
Definition: IMG_Stat.h:301
bool importMetadata(const UT_StringRef &key, UT_Matrix4F &val) const
Definition: IMG_Stat.h:278
bool setMetadata(const UT_StringHolder &key, const IMG_MetadataItem &item)
Definition: IMG_Stat.h:299
void swapPlaneOrder(const IMG_Plane *p, int plane_b)
Definition: IMG_Stat.h:184
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:303
void setMetadataKey(const UT_StringHolder &k)
Set the default metadata key for the format.
Definition: IMG_Stat.h:253
fpreal64 fpreal
Definition: SYS_Types.h:283
void setTypedMetadata(const UT_StringHolder &name, const char *val)
Obsolete interface to set metadata based on a "typed" string.
Definition: IMG_Stat.h:315
void setFilename(const char *name)
Definition: IMG_Stat.h:112
PXL_ColorSpace
Definition: PXL_Common.h:72
unsigned getXoffset() const
Definition: IMG_Stat.h:99
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:217
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:857
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:165
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:217
const UT_String & getFilename() const
Definition: IMG_Stat.h:113
bool setMetadata(const UT_StringHolder &key, fpreal64 val)
Definition: IMG_Stat.h:307
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:270
int64 bytesPerImage() const
Definition: IMG_Stat.h:465
void setOffset(unsigned xoffset, unsigned yoffset)
Definition: IMG_Stat.h:93
void setNumFrames(int nf)
Definition: IMG_Stat.h:236
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:340
GLenum src
Definition: glcorearb.h:1793