23struct GPUShaderCreateInfo;
29#define GPU_MAX_ATTR 15
32#define GPU_MAX_UNIFORM_ATTR 8
60 GPUShaderCreateInfo &r_info);
165 GPUShader *shader,
int location,
int length,
int array_size,
const float *value);
167 GPUShader *shader,
int location,
int length,
int array_size,
const int *value);
270 const char *fragcode,
271 const char *geomcode,
280 const char *fragcode,
281 const char *geomcode,
286 const char *fragcode,
287 const char *geomcode,
288 const char *computecode,
292 const char **tf_names,
382#define GPU_NUM_UNIFORMS (GPU_UNIFORM_SRGB_TRANSFORM + 1)
int GPU_shader_get_sampler_binding(GPUShader *shader, const char *name)
int GPU_shader_get_uniform(GPUShader *shader, const char *name)
void GPU_shader_constant_int(GPUShader *sh, const char *name, int value)
GPUShader * GPU_shader_create(const char *vertcode, const char *fragcode, const char *geomcode, const char *libcode, const char *defines, const char *shname)
void GPU_shader_uniform_2fv(GPUShader *sh, const char *name, const float data[2])
bool GPU_shader_get_attribute_info(const GPUShader *shader, int attr_location, char r_name[256], int *r_type)
const char * GPU_shader_get_name(GPUShader *shader)
void GPU_shader_uniform_1i(GPUShader *sh, const char *name, int value)
int GPU_shader_get_ubo_binding(GPUShader *shader, const char *name)
void GPU_shader_uniform_3f(GPUShader *sh, const char *name, float x, float y, float z)
blender::Vector< GPUShader * > GPU_shader_batch_finalize(BatchHandle &handle)
void GPU_shader_uniform_2f(GPUShader *sh, const char *name, float x, float y)
void GPU_shader_uniform_2fv_array(GPUShader *sh, const char *name, int len, const float(*val)[2])
void GPU_shader_uniform_int_ex(GPUShader *shader, int location, int length, int array_size, const int *value)
SpecializationBatchHandle GPU_shader_batch_specializations(blender::Span< ShaderSpecialization > specializations)
GPUShader * GPU_shader_create_from_info_name(const char *info_name)
int GPU_shader_get_ssbo_vertex_fetch_num_verts_per_prim(GPUShader *shader)
bool GPU_shader_uses_ssbo_vertex_fetch(GPUShader *shader)
void GPU_shader_cache_dir_clear_old()
void GPU_shader_uniform_1f(GPUShader *sh, const char *name, float value)
GPUShader * GPU_shader_create_from_python(const char *vertcode, const char *fragcode, const char *geomcode, const char *libcode, const char *defines, const char *name)
void GPU_shader_uniform_mat3_as_mat4(GPUShader *sh, const char *name, const float data[3][3])
void GPU_shader_uniform_3fv(GPUShader *sh, const char *name, const float data[3])
void GPU_shader_constant_uint(GPUShader *sh, const char *name, unsigned int value)
void GPU_shader_uniform_1f_array(GPUShader *sh, const char *name, int len, const float *val)
int GPU_shader_get_ssbo_binding(GPUShader *shader, const char *name)
unsigned int GPU_shader_get_attribute_len(const GPUShader *shader)
int GPU_shader_get_attribute(const GPUShader *shader, const char *name)
bool GPU_shader_transform_feedback_enable(GPUShader *shader, blender::gpu::VertBuf *vertbuf)
void GPU_shader_uniform_2iv(GPUShader *sh, const char *name, const int data[2])
void GPU_shader_uniform_4fv_array(GPUShader *sh, const char *name, int len, const float(*val)[4])
void GPU_shader_constant_bool_ex(GPUShader *sh, int location, bool value)
void GPU_shader_constant_int_ex(GPUShader *sh, int location, int value)
void GPU_shader_set_parent(GPUShader *shader, GPUShader *parent)
bool GPU_shader_batch_is_ready(BatchHandle handle)
int GPU_shader_get_builtin_block(GPUShader *shader, int builtin)
void GPU_shader_uniform_float_ex(GPUShader *shader, int location, int length, int array_size, const float *value)
@ GPU_SHADER_TFB_TRIANGLES
const GPUShaderCreateInfo * GPU_shader_create_info_get(const char *info_name)
void GPU_shader_transform_feedback_disable(GPUShader *shader)
int GPU_shader_get_program(GPUShader *shader)
void GPU_shader_bind(GPUShader *shader)
void GPU_shader_constant_float_ex(GPUShader *sh, int location, float value)
void GPU_shader_uniform_1b(GPUShader *sh, const char *name, bool value)
@ GPU_UNIFORM_VIEWPROJECTION_INV
@ GPU_UNIFORM_RESOURCE_ID
@ GPU_UNIFORM_VIEWPROJECTION
@ GPU_UNIFORM_SRGB_TRANSFORM
@ GPU_UNIFORM_BASE_INSTANCE
@ GPU_UNIFORM_PROJECTION_INV
@ GPU_UNIFORM_MODELVIEW_INV
@ GPU_UNIFORM_RESOURCE_CHUNK
GPUShader * GPU_shader_create_from_info(const GPUShaderCreateInfo *_info)
void GPU_shader_uniform_4fv(GPUShader *sh, const char *name, const float data[4])
void GPU_shader_uniform_4f(GPUShader *sh, const char *name, float x, float y, float z, float w)
void GPU_shader_constant_uint_ex(GPUShader *sh, int location, unsigned int value)
int GPU_shader_get_uniform_block(GPUShader *shader, const char *name)
int64_t SpecializationBatchHandle
BatchHandle GPU_shader_batch_create_from_infos(blender::Span< const GPUShaderCreateInfo * > infos)
void GPU_shader_uniform_mat4(GPUShader *sh, const char *name, const float data[4][4])
int GPU_shader_get_constant(GPUShader *shader, const char *name)
void GPU_shader_constant_bool(GPUShader *sh, const char *name, bool value)
int GPU_shader_get_builtin_uniform(GPUShader *shader, int builtin)
void GPU_shader_free(GPUShader *shader)
GPUShader * GPU_shader_create_compute(const char *computecode, const char *libcode, const char *defines, const char *shname)
bool GPU_shader_create_info_check_error(const GPUShaderCreateInfo *_info, char r_error[128])
void GPU_shader_create_info_get_unfinalized_copy(const char *info_name, GPUShaderCreateInfo &r_info)
GPUShader * GPU_shader_create_ex(const char *vertcode, const char *fragcode, const char *geomcode, const char *computecode, const char *libcode, const char *defines, eGPUShaderTFBType tf_type, const char **tf_names, int tf_count, const char *shname)
GPUShader * GPU_shader_get_bound()
void GPU_shader_warm_cache(GPUShader *shader, int limit)
@ GPU_UNIFORM_BLOCK_DRW_VIEW
@ GPU_UNIFORM_BLOCK_DRW_MODEL
@ GPU_UNIFORM_BLOCK_MODEL
@ GPU_UNIFORM_BLOCK_DRW_CLIPPING
@ GPU_UNIFORM_BLOCK_DRW_INFOS
bool GPU_shader_batch_specializations_is_ready(SpecializationBatchHandle &handle)
void GPU_shader_constant_float(GPUShader *sh, const char *name, float value)
void GPU_shader_compile_static()
struct GPUShader GPUShader
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
blender::Vector< blender::gpu::shader::SpecializationConstant > constants