MDL SDK API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
imdl_backend_api.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2022 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IMDL_BACKEND_API_H
8 #define MI_NEURAYLIB_IMDL_BACKEND_API_H
9 
11 
12 namespace mi {
13 
14 namespace neuraylib {
15 
16 class IMdl_backend;
17 
36 enum Df_data_kind {
38  DFK_NONE,
39  DFK_INVALID,
40  DFK_SIMPLE_GLOSSY_MULTISCATTER,
41  DFK_BACKSCATTERING_GLOSSY_MULTISCATTER,
42  DFK_BECKMANN_SMITH_MULTISCATTER,
43  DFK_BECKMANN_VC_MULTISCATTER,
44  DFK_GGX_SMITH_MULTISCATTER,
45  DFK_GGX_VC_MULTISCATTER,
46  DFK_WARD_GEISLER_MORODER_MULTISCATTER,
47  DFK_SHEEN_MULTISCATTER,
48  DFK_FORCE_32_BIT = 0xffffffffU
49 };
50 
51 mi_static_assert(sizeof(Df_data_kind) == sizeof(Uint32));
52 
54 class IMdl_backend_api : public
55  mi::base::Interface_declare<0x425559dd,0xbf91,0x459a,0xaa,0xaf,0xc3,0x14,0x8a,0x5a,0x2f,0x99>
56 {
57 public:
58 
66  MB_FORCE_32_BIT = 0xffffffffU // Undocumented, for alignment only
67  };
68 
74  virtual IMdl_backend* get_backend(Mdl_backend_kind kind) = 0;
75 
77 
86  virtual const Float32* get_df_data_texture(
87  Df_data_kind kind,
88  Size &rx,
89  Size &ry,
90  Size &rz) const = 0;
91 };
92  // end group mi_neuray_mdl_misc
94 
95 } // namespace neuraylib
96 
97 } // namespace mi
98 
99 #endif // MI_NEURAYLIB_IMDL_BACKEND_API_H