iimage_plugin.h File Reference
Description
Image plugin API.
Code Example
iimage_plugin.h
/***************************************************************************************************
* Copyright 2024 NVIDIA Corporation. All rights reserved.
**************************************************************************************************/
#ifndef MI_NEURAYLIB_IIMAGE_PLUGIN_H
#define MI_NEURAYLIB_IIMAGE_PLUGIN_H
#include <mi/base/interface_declare.h>
#include <mi/base/plugin.h>
#include <mi/base/types.h>
#include <mi/neuraylib/iimpexp_base.h>
namespace mi {
class IMap;
namespace neuraylib {
class IImage_file;
class IPlugin_api;
class IReader;
class ITile;
class IWriter;
#define MI_NEURAY_IMAGE_PLUGIN_TYPE "image v38"
class IImage_plugin : public base::Plugin
{
public:
virtual const char* get_name() const = 0;
virtual bool init( IPlugin_api* plugin_api) = 0;
virtual bool exit( IPlugin_api* plugin_api) = 0;
virtual const char* get_file_extension( Uint32 index) const = 0;
virtual const char* get_supported_type( Uint32 index) const = 0;
virtual Impexp_priority
get_priority() const = 0;
virtual bool supports_selectors() const = 0;
virtual bool test( IReader* reader) const = 0;
virtual IImage_file* open_for_reading( IReader* reader, const char* selector) const = 0;
virtual IImage_file* open_for_writing(
IWriter* writer,
const char* pixel_type,
Uint32 resolution_x,
Uint32 resolution_y,
Uint32 nr_of_layers,
Uint32 miplevels,
bool is_cubemap,
Float32 gamma,
const IMap* export_options) const = 0;
};
class IImage_file
: public base::Interface_declare<0x26db4186,0xace2,0x42e8,0xa0,0x3d,0xe0,0xfa,0xfc,0xed,0x05,0xf3>
{
public:
virtual const char* get_type() const = 0;
virtual Uint32
get_resolution_x( Uint32 level) const = 0;
virtual Uint32
get_resolution_y( Uint32 level) const = 0;
virtual Uint32
get_layers_size( Uint32 level) const = 0;
virtual Uint32
get_miplevels() const = 0;
virtual bool get_is_cubemap() const = 0;
virtual Float32
get_gamma() const = 0;
virtual ITile* read( Uint32 z, Uint32 level) const = 0;
virtual bool write( const ITile* tile, Uint32 z, Uint32 level) = 0;
};
// end group mi_neuray_plugins
} // namespace neuraylib
} // namespace mi
#endif // MI_NEURAYLIB_IIMAGE_PLUGIN_H
Namespaces
- namespace
- Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
- namespace
- Namespace for the neuray API. More...
Classes
- class
- Abstract interface for image files. More...
- class
- Abstract interface for image plugins. More...
Defines
- #define "image v38"
- Type of image plugins. More...