6#include <nv/index/irendering_kernel_programs.h>
12 mi::neuraylib::Tag session_tag_,
13 mi::neuraylib::IDice_transaction* transaction_)
14 : transaction(transaction_)
31 mi::base::Handle<nv::index::IScene_group> group;
32 if (transformed_group) {
33 group =
scene->create_scene_group<nv::index::ITransformed_scene_group>();
36 group =
scene->create_scene_group<nv::index::IStatic_scene_group>();
38 mi::neuraylib::Tag group_tag =
transaction->store_for_reference_counting(group.get());
49 if (group_.is_valid()) {
60inline mi::base::Handle<nv::index::IRendering_kernel_program>
63 mi::base::Handle<T> program;
65 mi::base::Handle<nv::index::IRendering_kernel_program> rprog;
67 rprog = program->
template get_interface<nv::index::IRendering_kernel_program>();
74std::pair<mi::neuraylib::Tag, std::string>
78 const std::string& user_text,
81 const char* extra_pgr_methods)
85 return std::pair<mi::neuraylib::Tag, std::string>();
89 mi::base::Handle<nv::index::IRendering_kernel_program> sampling_program;
92 sampling_program = create_kernel_program<nv::index::ISurface_sample_program>(scene_tool);
96 sampling_program = create_kernel_program<nv::index::IVolume_sample_program>(scene_tool);
99 default:
return std::make_pair(mi::neuraylib:
:NULL_TAG, std::string());
102 std::string program_src = user_text;
103 if (program_src.empty()) {
105 if (extra_pgr_methods) program_src.append(extra_pgr_methods);
112 sampling_program->set_program_source(program_src.c_str());
116 return std::make_pair(prog_tag, program_src);
XAC compute example scenes.
std::pair< mi::neuraylib::Tag, std::string > add_user_program(Sample_program_kind prg_kind, int user_prg, const std::string &user_text, const Program_source &prg_text, Scene_tool &scene_tool, const char *extra_pgr_methods)
mi::base::Handle< nv::index::IRendering_kernel_program > create_kernel_program(Scene_tool &scene_tool)
#define check_success(expr)
const char * compute_program
const char * program_begin
const char * color_program