13 const int type_int =
static_cast<int>(
type);
17 if (!type_enum->
exists(type_int)) {
18 LOG(DFATAL) <<
"Unhandled pass type " <<
static_cast<int>(
type) <<
", not supposed to happen.";
22 return (*type_enum)[type_int].c_str();
34 LOG(DFATAL) <<
"Unhandled pass mode " <<
static_cast<int>(mode) <<
", should never happen.";
48 if (pass_type_enum.
empty()) {
101 return &pass_type_enum;
108 if (pass_mode_enum.
empty()) {
113 return &pass_mode_enum;
120 const NodeEnum *pass_type_enum = get_type_enum();
121 const NodeEnum *pass_mode_enum = get_mode_enum();
138 return get_info(
type, include_albedo, !lightgroup.empty());
341 LOG(DFATAL) <<
"Unexpected pass type is used " <<
type;
351 for (
const Pass *pass : passes) {
352 if (pass->get_type() !=
type) {
364 for (
const Pass *pass : passes) {
365 if (pass->get_name() ==
name) {
376 const ustring &lightgroup)
378 for (
const Pass *pass : passes) {
379 if (pass->get_type() !=
type || pass->get_mode() != mode ||
380 pass->get_lightgroup() != lightgroup) {
393 for (
const Pass *current_pass : passes) {
395 if (current_pass->get_type() == pass->get_type() &&
396 current_pass->get_mode() == pass->get_mode() &&
397 current_pass->get_name() == pass->get_name()) {
398 if (current_pass->is_written()) {
405 if (current_pass->is_written()) {
406 pass_offset += current_pass->get_info().num_components;
416 os <<
", name: \"" << pass.get_name() <<
"\"";
417 os <<
", mode: " << pass.get_mode();
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
PassInfo get_info() const
static const NodeEnum * get_type_enum()
static const NodeEnum * get_mode_enum()
static const Pass * find(const vector< Pass * > &passes, const string &name)
static bool contains(const vector< Pass * > &passes, PassType type)
static int get_offset(const vector< Pass * > &passes, const Pass *pass)
#define CCL_NAMESPACE_END
@ PASS_SHADOW_CATCHER_SAMPLE_COUNT
@ PASS_TRANSMISSION_DIRECT
@ PASS_TRANSMISSION_COLOR
@ PASS_SHADOW_CATCHER_MATTE
@ PASS_TRANSMISSION_INDIRECT
@ PASS_ADAPTIVE_AUX_BUFFER
@ PASS_DENOISING_PREVIOUS
@ PASS_CATEGORY_LIGHT_END
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull prop_name, int32_t value)
Allocate a new IDProperty of type IDP_INT, set its name and value.
#define SOCKET_BOOLEAN(name, ui_name, default_value,...)
#define SOCKET_STRING(name, ui_name, default_value,...)
#define SOCKET_ENUM(name, ui_name, values, default_value,...)
const char * pass_mode_as_string(PassMode mode)
std::ostream & operator<<(std::ostream &os, PassMode mode)
CCL_NAMESPACE_BEGIN const char * pass_type_as_string(const PassType type)
string string_from_bool(bool var)
void insert(const char *x, int y)
bool exists(ustring x) const
static NodeType * add(const char *name, CreateFunc create, Type type=NONE, const NodeType *base=NULL)
bool use_denoising_albedo