|
Blender
V3.3
|
#include "DNA_customdata_types.h"#include "DNA_listBase.h"#include "BLI_ghash.h"#include "GPU_material.h"#include "GPU_shader.h"Go to the source code of this file.
Classes | |
| struct | GPUNode |
| struct | GPUNodeLink |
| struct | GPUOutput |
| struct | GPUInput |
| struct | GPUNodeGraphOutputLink |
| struct | GPUNodeGraphFunctionLink |
| struct | GPUNodeGraph |
Typedefs | |
| typedef enum eGPUDataSource | eGPUDataSource |
| typedef struct GPUOutput | GPUOutput |
| typedef struct GPUInput | GPUInput |
| typedef struct GPUNodeGraphOutputLink | GPUNodeGraphOutputLink |
| typedef struct GPUNodeGraphFunctionLink | GPUNodeGraphFunctionLink |
| typedef struct GPUNodeGraph | GPUNodeGraph |
Enumerations | |
| enum | eGPUDataSource { GPU_SOURCE_OUTPUT , GPU_SOURCE_CONSTANT , GPU_SOURCE_UNIFORM , GPU_SOURCE_ATTR , GPU_SOURCE_UNIFORM_ATTR , GPU_SOURCE_STRUCT , GPU_SOURCE_TEX , GPU_SOURCE_TEX_TILED_MAPPING , GPU_SOURCE_FUNCTION_CALL } |
| enum | GPUNodeLinkType { GPU_NODE_LINK_NONE = 0 , GPU_NODE_LINK_ATTR , GPU_NODE_LINK_UNIFORM_ATTR , GPU_NODE_LINK_COLORBAND , GPU_NODE_LINK_CONSTANT , GPU_NODE_LINK_IMAGE , GPU_NODE_LINK_IMAGE_TILED , GPU_NODE_LINK_IMAGE_TILED_MAPPING , GPU_NODE_LINK_OUTPUT , GPU_NODE_LINK_UNIFORM , GPU_NODE_LINK_DIFFERENTIATE_FLOAT_FN } |
| enum | eGPUNodeTag { GPU_NODE_TAG_NONE = 0 , GPU_NODE_TAG_SURFACE = (1 << 0) , GPU_NODE_TAG_VOLUME = (1 << 1) , GPU_NODE_TAG_DISPLACEMENT = (1 << 2) , GPU_NODE_TAG_THICKNESS = (1 << 3) , GPU_NODE_TAG_AOV = (1 << 4) , GPU_NODE_TAG_FUNCTION = (1 << 5) } |
Functions | |
| void | gpu_node_graph_prune_unused (GPUNodeGraph *graph) |
| void | gpu_node_graph_finalize_uniform_attrs (GPUNodeGraph *graph) |
| void | gpu_node_graph_free_nodes (GPUNodeGraph *graph) |
| void | gpu_node_graph_free (GPUNodeGraph *graph) |
| struct GPUNodeGraph * | gpu_material_node_graph (struct GPUMaterial *material) |
| struct GPUTexture ** | gpu_material_ramp_texture_row_set (struct GPUMaterial *mat, int size, float *pixels, float *row) |
Intermediate node graph for generating GLSL shaders.
Definition in file gpu_node_graph.h.
| typedef enum eGPUDataSource eGPUDataSource |
| typedef struct GPUNodeGraph GPUNodeGraph |
| typedef struct GPUNodeGraphFunctionLink GPUNodeGraphFunctionLink |
| typedef struct GPUNodeGraphOutputLink GPUNodeGraphOutputLink |
| enum eGPUDataSource |
| Enumerator | |
|---|---|
| GPU_SOURCE_OUTPUT | |
| GPU_SOURCE_CONSTANT | |
| GPU_SOURCE_UNIFORM | |
| GPU_SOURCE_ATTR | |
| GPU_SOURCE_UNIFORM_ATTR | |
| GPU_SOURCE_STRUCT | |
| GPU_SOURCE_TEX | |
| GPU_SOURCE_TEX_TILED_MAPPING | |
| GPU_SOURCE_FUNCTION_CALL | |
Definition at line 28 of file gpu_node_graph.h.
| enum eGPUNodeTag |
| Enumerator | |
|---|---|
| GPU_NODE_TAG_NONE | |
| GPU_NODE_TAG_SURFACE | |
| GPU_NODE_TAG_VOLUME | |
| GPU_NODE_TAG_DISPLACEMENT | |
| GPU_NODE_TAG_THICKNESS | |
| GPU_NODE_TAG_AOV | |
| GPU_NODE_TAG_FUNCTION | |
Definition at line 54 of file gpu_node_graph.h.
| enum GPUNodeLinkType |
Definition at line 40 of file gpu_node_graph.h.
| struct GPUNodeGraph* gpu_material_node_graph | ( | struct GPUMaterial * | material | ) |
Definition at line 569 of file gpu_material.c.
References material.
Referenced by GPU_attribute(), GPU_attribute_default_color(), GPU_color_band(), GPU_image(), GPU_image_tiled(), GPU_image_tiled_mapping(), GPU_link(), gpu_stack_link_v(), and GPU_uniform_attribute().
| struct GPUTexture** gpu_material_ramp_texture_row_set | ( | struct GPUMaterial * | mat, |
| int | size, | ||
| float * | pixels, | ||
| float * | row | ||
| ) |
Returns the address of the future pointer to coba_tex.
Definition at line 99 of file gpu_material.c.
References BLI_assert, CM_TABLE, GPUMaterial::coba_builder, GPUMaterial::coba_tex, GPUColorBandBuilder::current_layer, float(), MAX_COLOR_BAND, MEM_mallocN, NULL, GPUColorBandBuilder::pixels, size(), and UNUSED_VARS_NDEBUG.
Referenced by GPU_color_band().
| void gpu_node_graph_finalize_uniform_attrs | ( | GPUNodeGraph * | graph | ) |
Definition at line 306 of file gpu_node_graph.c.
References BLI_assert, BLI_ghashutil_strhash_p(), BLI_ghashutil_uinthash(), BLI_listbase_count(), BLI_listbase_sort(), GPUUniformAttrList::count, graph, GPUUniformAttrList::hash_code, GPUUniformAttrList::list, LISTBASE_FOREACH, blender::threading::enumerable_thread_specific_utils::next_id, and uniform_attr_sort_cmp().
Referenced by GPU_generate_pass().
| void gpu_node_graph_free | ( | GPUNodeGraph * | graph | ) |
Free both node graph and requested attributes and textures.
Definition at line 802 of file gpu_node_graph.c.
References BLI_freelistN(), BLI_gset_free(), gpu_node_graph_free_nodes(), GPU_uniform_attr_list_free(), graph, and NULL.
Referenced by GPU_material_compile(), gpu_material_free_single(), and GPU_material_from_nodetree().
| void gpu_node_graph_free_nodes | ( | GPUNodeGraph * | graph | ) |
Free intermediate node graph.
Definition at line 788 of file gpu_node_graph.c.
References BLI_pophead(), gpu_node_free(), graph, node, and NULL.
Referenced by GPU_material_compile(), GPU_material_from_nodetree(), and gpu_node_graph_free().
| void gpu_node_graph_prune_unused | ( | GPUNodeGraph * | graph | ) |
Definition at line 841 of file gpu_node_graph.c.
References BLI_freelinkN(), BLI_remlink(), GPUUniformAttrList::count, gpu_node_free(), GPU_NODE_TAG_AOV, GPU_NODE_TAG_DISPLACEMENT, GPU_NODE_TAG_FUNCTION, GPU_NODE_TAG_NONE, GPU_NODE_TAG_SURFACE, GPU_NODE_TAG_THICKNESS, GPU_NODE_TAG_VOLUME, gpu_nodes_tag(), graph, GPUUniformAttrList::list, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, next, node, NULL, and tex.
Referenced by GPU_generate_pass().