neuray API Programmer's Manual

itexture.h File Reference

Description

Scene element Texture.

Code Example

itexture.h

‎/***************************************************************************************************
 * Copyright 2023 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_ITEXTURE_H
#define MI_NEURAYLIB_ITEXTURE_H

#include <mi/neuraylib/iscene_element.h>
#include <mi/neuraylib/typedefs.h>

namespace mi {

namespace neuraylib {

class IImage;


enum Texture_compression
{
    TEXTURE_NO_COMPRESSION     = 0, 
    TEXTURE_MEDIUM_COMPRESSION = 1, 
    TEXTURE_HIGH_COMPRESSION   = 2, 
    TEXTURE_COMPRESSION_FORCE_32_BIT = 0xffffffffU
};

mi_static_assert( sizeof( Texture_compression) == sizeof( Uint32));

enum Filter_type
{
    FILTER_BOX          = 0,    
    FILTER_TRIANGLE     = 1,    
    FILTER_GAUSS        = 2,    
    FILTER_CMITCHELL    = 3,    
    FILTER_CLANCZOS     = 4,    
    FILTER_FAST         = 5,    
    FILTER_FORCE_32_BIT = 0xffffffffU
};

mi_static_assert( sizeof( Filter_type) == sizeof( Uint32));

class ITexture :
    public base::Interface_declare<0x012c847c,0xaf47,0x4338,0xb7,0xc4,0x78,0x67,0xa3,0x55,0x47,0x18,
                                   neuraylib::IScene_element>
{
public:


    virtual Sint32 
               set_image( const char* name) = 0;

    virtual const char* get_image() const = 0;






    virtual Sint32 set_volume( const char* name) = 0;

    virtual const char* get_volume() const = 0;




    virtual void set_gamma( Float32 gamma) = 0;

    virtual Float32 
               get_gamma() const = 0;

    virtual Float32 
               get_effective_gamma( Size frame_id, Size uvtile_id) const = 0;

#ifdef MI_NEURAYLIB_DEPRECATED_12_1
    inline  Float32 
               get_effective_gamma( Uint32 uvtile_id = 0) const
    { return get_effective_gamma( 0, uvtile_id); }
#endif // MI_NEURAYLIB_DEPRECATED_12_1




    virtual const char* get_selector() const = 0;

    virtual void set_compression( Texture_compression compression) = 0;

    virtual Texture_compression 
               get_compression() const = 0;

};
 // end group mi_neuray_misc

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_ITEXTURE_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
Textures add image processing options to images. More...

Enumerations

enum  {FILTER_BOX = 0, FILTER_TRIANGLE = 1, FILTER_GAUSS = 2, FILTER_CMITCHELL = 3, FILTER_CLANCZOS = 4, FILTER_FAST = 5, FILTER_FORCE_32_BIT = 0xffffffffU }
Supported filter types. More...
enum  {TEXTURE_NO_COMPRESSION = 0, TEXTURE_MEDIUM_COMPRESSION = 1, TEXTURE_HIGH_COMPRESSION = 2, TEXTURE_COMPRESSION_FORCE_32_BIT = 0xffffffffU }
Texture compression method. More...