NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iimage_api.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_IIMAGE_API_H
9 #define MI_NEURAYLIB_IIMAGE_API_H
10 
12 
13 namespace mi {
14 
15 class IBuffer;
16 
17 namespace neuraylib {
18 
19 class ICanvas;
20 class ITile;
21 
26 class IImage_api : public
33  mi::base::Interface_declare<0x4c25a4f0,0x2bac,0x4ce6,0xb0,0xab,0x4d,0x94,0xbf,0xfd,0x97,0xa5>
34 {
35 public:
37 
38 
60  virtual ICanvas* create_canvas(
61  const char* pixel_type,
62  Uint32 width,
63  Uint32 height,
64  Uint32 tile_width = 0,
65  Uint32 tile_height = 0,
66  Uint32 layers = 1,
67  bool is_cubemap = false,
68  Float32 gamma = 0.0f) const = 0;
69 
83  virtual ITile* create_tile(
84  const char* pixel_type,
85  Uint32 width,
86  Uint32 height) const = 0;
87 
89 
91 
117  virtual Sint32 read_raw_pixels(
118  Uint32 width,
119  Uint32 height,
120  const ICanvas* canvas,
121  Uint32 canvas_x,
122  Uint32 canvas_y,
123  Uint32 canvas_layer,
124  void* buffer,
125  bool buffer_topdown,
126  const char* buffer_pixel_type,
127  Uint32 buffer_padding = 0) const = 0;
128 
154  virtual Sint32 write_raw_pixels(
155  Uint32 width,
156  Uint32 height,
157  ICanvas* canvas,
158  Uint32 canvas_x,
159  Uint32 canvas_y,
160  Uint32 canvas_layer,
161  const void* buffer,
162  bool buffer_topdown,
163  const char* buffer_pixel_type,
164  Uint32 buffer_padding = 0) const = 0;
165 
167 
169 
184  virtual IBuffer* create_buffer_from_canvas(
185  const ICanvas* canvas,
186  const char* image_format,
187  const char* pixel_type,
188  const char* quality) const = 0;
189 
197  virtual ICanvas* create_canvas_from_buffer(
198  const IBuffer* buffer,
199  const char* image_format) const = 0;
200 
202 
204 
234  virtual ICanvas* convert( const ICanvas* canvas, const char* pixel_type) const = 0;
235 
244  virtual void adjust_gamma( ICanvas* canvas, Float32 new_gamma) const = 0;
245 
247 
249 
256  virtual Uint32 get_components_per_pixel( const char* pixel_type) const = 0;
257 
264  virtual Uint32 get_bytes_per_component( const char* pixel_type) const = 0;
265 
267 };
268  // end group mi_neuray_rendering
270 
271 } // namespace neuraylib
272 
273 } // namespace mi
274 
275 #endif // MI_NEURAYLIB_IIMAGE_API_H