MDL SDK API nvidia_logo_transpbg.gif Up
itexture.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_ITEXTURE_H
8#define MI_NEURAYLIB_ITEXTURE_H
9
12
13namespace mi {
14
15namespace neuraylib {
16
17class IImage;
18
25{
29 TEXTURE_COMPRESSION_FORCE_32_BIT = 0xffffffffU
30};
31
32mi_static_assert( sizeof( Texture_compression) == sizeof( Uint32));
33
41{
48 FILTER_FORCE_32_BIT = 0xffffffffU
49};
50
51mi_static_assert( sizeof( Filter_type) == sizeof( Uint32));
52
65class ITexture :
66 public base::Interface_declare<0x012c847c,0xaf47,0x4338,0xb7,0xc4,0x78,0x67,0xa3,0x55,0x47,0x18,
67 neuraylib::IScene_element>
68{
69public:
71
72
82 virtual Sint32 set_image( const char* name) = 0;
83
87 virtual const char* get_image() const = 0;
88
90
93
94
106 virtual Sint32 set_volume( const char* name) = 0;
107
113 virtual const char* get_volume() const = 0;
114
116
118
133 virtual void set_gamma( Float32 gamma) = 0;
134
138 virtual Float32 get_gamma() const = 0;
139
152 virtual Float32 get_effective_gamma( Size frame_id, Size uvtile_id) const = 0;
153
154#ifdef MI_NEURAYLIB_DEPRECATED_12_1
155 inline Float32 get_effective_gamma( Uint32 uvtile_id = 0) const
156 { return get_effective_gamma( 0, uvtile_id); }
157#endif // MI_NEURAYLIB_DEPRECATED_12_1
158
160
162
164 virtual const char* get_selector() const = 0;
165
173 virtual void set_compression( Texture_compression compression) = 0;
174
183
185};
186 // end group mi_neuray_misc
188
189} // namespace neuraylib
190
191} // namespace mi
192
193#endif // MI_NEURAYLIB_ITEXTURE_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Textures add image processing options to images.
Definition: itexture.h:68
virtual const char * get_volume() const =0
virtual const char * get_image() const =0
Returns the referenced image.
virtual Sint32 set_image(const char *name)=0
Sets the referenced image.
virtual void set_compression(Texture_compression compression)=0
Sets the texture compression method.
virtual const char * get_selector() const =0
Returns the selector (or NULL).
virtual Texture_compression get_compression() const =0
Returns the texture compression method.
virtual Sint32 set_volume(const char *name)=0
virtual Float32 get_gamma() const =0
Returns the gamma value of this texture.
virtual void set_gamma(Float32 gamma)=0
Sets the gamma value of this texture.
virtual Float32 get_effective_gamma(Size frame_id, Size uvtile_id) const =0
Returns the effective gamma value.
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:58
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
float Float32
32-bit float.
Definition: types.h:51
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Texture_compression
Texture compression method.
Definition: itexture.h:25
Filter_type
Supported filter types.
Definition: itexture.h:41
@ TEXTURE_HIGH_COMPRESSION
high compression ratio
Definition: itexture.h:28
@ TEXTURE_MEDIUM_COMPRESSION
medium compression ratio
Definition: itexture.h:27
@ TEXTURE_NO_COMPRESSION
no compression
Definition: itexture.h:26
@ FILTER_CLANCZOS
clipped Lanczos filter
Definition: itexture.h:46
@ FILTER_TRIANGLE
triangle filter
Definition: itexture.h:43
@ FILTER_BOX
box filter
Definition: itexture.h:42
@ FILTER_FAST
a fast filter, could be GPU anti-aliasing, or any
Definition: itexture.h:47
@ FILTER_CMITCHELL
clipped Mitchell filter
Definition: itexture.h:45
@ FILTER_GAUSS
Gaussian filter.
Definition: itexture.h:44
Base class for all scene elements.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5
Typedefs for types from the math API.