Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/GPU_material.h
| Show First 20 Lines • Show All 111 Lines • ▼ Show 20 Lines | |||||
| typedef enum eGPUMaterialStatus { | typedef enum eGPUMaterialStatus { | ||||
| GPU_MAT_FAILED = 0, | GPU_MAT_FAILED = 0, | ||||
| GPU_MAT_CREATED, | GPU_MAT_CREATED, | ||||
| GPU_MAT_QUEUED, | GPU_MAT_QUEUED, | ||||
| GPU_MAT_SUCCESS, | GPU_MAT_SUCCESS, | ||||
| } eGPUMaterialStatus; | } eGPUMaterialStatus; | ||||
| /* GPU_MAT_OPTIMIZATION_SKIP for cases where we do not | |||||
| * plan to perform optimization on a given material. */ | |||||
| typedef enum eGPUMaterialOptimizationStatus { | |||||
| GPU_MAT_OPTIMIZATION_SKIP = 0, | |||||
| GPU_MAT_OPTIMIZATION_READY, | |||||
| GPU_MAT_OPTIMIZATION_QUEUED, | |||||
| GPU_MAT_OPTIMIZATION_SUCCESS, | |||||
| } eGPUMaterialOptimizationStatus; | |||||
| typedef enum eGPUDefaultValue { | typedef enum eGPUDefaultValue { | ||||
| GPU_DEFAULT_0 = 0, | GPU_DEFAULT_0 = 0, | ||||
| GPU_DEFAULT_1, | GPU_DEFAULT_1, | ||||
| } eGPUDefaultValue; | } eGPUDefaultValue; | ||||
| typedef struct GPUCodegenOutput { | typedef struct GPUCodegenOutput { | ||||
| char *attr_load; | char *attr_load; | ||||
| /* Node-tree functions calls. */ | /* Node-tree functions calls. */ | ||||
| ▲ Show 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | |||||
| void GPU_material_release(GPUMaterial *mat); | void GPU_material_release(GPUMaterial *mat); | ||||
| void GPU_materials_free(struct Main *bmain); | void GPU_materials_free(struct Main *bmain); | ||||
| struct Scene *GPU_material_scene(GPUMaterial *material); | struct Scene *GPU_material_scene(GPUMaterial *material); | ||||
| struct GPUPass *GPU_material_get_pass(GPUMaterial *material); | struct GPUPass *GPU_material_get_pass(GPUMaterial *material); | ||||
| struct GPUShader *GPU_material_get_shader(GPUMaterial *material); | struct GPUShader *GPU_material_get_shader(GPUMaterial *material); | ||||
| const char *GPU_material_get_name(GPUMaterial *material); | const char *GPU_material_get_name(GPUMaterial *material); | ||||
| /** | |||||
| * Material Optimization. | |||||
| * \note Compiles optimal version of shader graph, populating mat->optimized_pass. | |||||
| * This operation should always be deferred until existing compilations have completed. | |||||
| * Default un-optimized materials will still exist for interactive material editing performance. | |||||
| */ | |||||
| void GPU_material_optimize(GPUMaterial *mat); | |||||
| /** | /** | ||||
| * Return can be NULL if it's a world material. | * Return can be NULL if it's a world material. | ||||
| */ | */ | ||||
| struct Material *GPU_material_get_material(GPUMaterial *material); | struct Material *GPU_material_get_material(GPUMaterial *material); | ||||
| /** | /** | ||||
| * Return true if the material compilation has not yet begin or begin. | * Return true if the material compilation has not yet begin or begin. | ||||
| */ | */ | ||||
| eGPUMaterialStatus GPU_material_status(GPUMaterial *mat); | eGPUMaterialStatus GPU_material_status(GPUMaterial *mat); | ||||
| void GPU_material_status_set(GPUMaterial *mat, eGPUMaterialStatus status); | void GPU_material_status_set(GPUMaterial *mat, eGPUMaterialStatus status); | ||||
| /** | |||||
| * Return status for async optimization jobs. | |||||
| */ | |||||
| eGPUMaterialOptimizationStatus GPU_material_optimization_status(GPUMaterial *mat); | |||||
| void GPU_material_optimization_status_set(GPUMaterial *mat, eGPUMaterialOptimizationStatus status); | |||||
| bool GPU_material_optimization_ready(GPUMaterial *mat); | |||||
| struct GPUUniformBuf *GPU_material_uniform_buffer_get(GPUMaterial *material); | struct GPUUniformBuf *GPU_material_uniform_buffer_get(GPUMaterial *material); | ||||
| /** | /** | ||||
| * Create dynamic UBO from parameters | * Create dynamic UBO from parameters | ||||
| * | * | ||||
| * \param inputs: Items are #LinkData, data is #GPUInput (`BLI_genericNodeN(GPUInput)`). | * \param inputs: Items are #LinkData, data is #GPUInput (`BLI_genericNodeN(GPUInput)`). | ||||
| */ | */ | ||||
| void GPU_material_uniform_buffer_create(GPUMaterial *material, ListBase *inputs); | void GPU_material_uniform_buffer_create(GPUMaterial *material, ListBase *inputs); | ||||
| struct GPUUniformBuf *GPU_material_create_sss_profile_ubo(void); | struct GPUUniformBuf *GPU_material_create_sss_profile_ubo(void); | ||||
| ▲ Show 20 Lines • Show All 91 Lines • Show Last 20 Lines | |||||