Blender  V2.93
Classes | Typedefs | Enumerations | Functions
gpu_node_graph.h File Reference
#include "DNA_customdata_types.h"
#include "DNA_listBase.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  GPUNodeGraph
 

Typedefs

typedef enum eGPUDataSource eGPUDataSource
 
typedef struct GPUOutput GPUOutput
 
typedef struct GPUInput GPUInput
 
typedef struct GPUNodeGraphOutputLink GPUNodeGraphOutputLink
 
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_BUILTIN , GPU_SOURCE_STRUCT , GPU_SOURCE_TEX ,
  GPU_SOURCE_TEX_TILED_MAPPING , GPU_SOURCE_VOLUME_GRID , GPU_SOURCE_VOLUME_GRID_TRANSFORM
}
 
enum  GPUNodeLinkType {
  GPU_NODE_LINK_NONE = 0 , GPU_NODE_LINK_ATTR , GPU_NODE_LINK_UNIFORM_ATTR , GPU_NODE_LINK_BUILTIN ,
  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_VOLUME_GRID , GPU_NODE_LINK_VOLUME_GRID_TRANSFORM , GPU_NODE_LINK_OUTPUT ,
  GPU_NODE_LINK_UNIFORM
}
 

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 GPUNodeGraphgpu_material_node_graph (struct GPUMaterial *material)
 
struct GPUTexture ** gpu_material_ramp_texture_row_set (struct GPUMaterial *mat, int size, float *pixels, float *row)
 
struct GSetgpu_material_used_libraries (struct GPUMaterial *material)
 

Detailed Description

Intermediate node graph for generating GLSL shaders.

Definition in file gpu_node_graph.h.

Typedef Documentation

◆ eGPUDataSource

◆ GPUInput

typedef struct GPUInput GPUInput

◆ GPUNodeGraph

typedef struct GPUNodeGraph GPUNodeGraph

◆ GPUNodeGraphOutputLink

◆ GPUOutput

typedef struct GPUOutput GPUOutput

Enumeration Type Documentation

◆ eGPUDataSource

Enumerator
GPU_SOURCE_OUTPUT 
GPU_SOURCE_CONSTANT 
GPU_SOURCE_UNIFORM 
GPU_SOURCE_ATTR 
GPU_SOURCE_UNIFORM_ATTR 
GPU_SOURCE_BUILTIN 
GPU_SOURCE_STRUCT 
GPU_SOURCE_TEX 
GPU_SOURCE_TEX_TILED_MAPPING 
GPU_SOURCE_VOLUME_GRID 
GPU_SOURCE_VOLUME_GRID_TRANSFORM 

Definition at line 38 of file gpu_node_graph.h.

◆ GPUNodeLinkType

Enumerator
GPU_NODE_LINK_NONE 
GPU_NODE_LINK_ATTR 
GPU_NODE_LINK_UNIFORM_ATTR 
GPU_NODE_LINK_BUILTIN 
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_VOLUME_GRID 
GPU_NODE_LINK_VOLUME_GRID_TRANSFORM 
GPU_NODE_LINK_OUTPUT 
GPU_NODE_LINK_UNIFORM 

Definition at line 52 of file gpu_node_graph.h.

Function Documentation

◆ gpu_material_node_graph()

struct GPUNodeGraph* gpu_material_node_graph ( struct GPUMaterial material)

◆ gpu_material_ramp_texture_row_set()

struct GPUTexture** gpu_material_ramp_texture_row_set ( struct GPUMaterial mat,
int  size,
float pixels,
float row 
)

◆ gpu_material_used_libraries()

struct GSet* gpu_material_used_libraries ( struct GPUMaterial material)

Definition at line 613 of file gpu_material.c.

References material.

Referenced by GPU_generate_pass(), GPU_link(), and GPU_stack_link().

◆ gpu_node_graph_finalize_uniform_attrs()

void gpu_node_graph_finalize_uniform_attrs ( GPUNodeGraph graph)

◆ gpu_node_graph_free()

void gpu_node_graph_free ( GPUNodeGraph graph)

◆ gpu_node_graph_free_nodes()

void gpu_node_graph_free_nodes ( GPUNodeGraph graph)

◆ gpu_node_graph_prune_unused()

void gpu_node_graph_prune_unused ( GPUNodeGraph graph)