DRW: Shader: Add DRW_shader_create(_fullscreen)_with_shaderlib
Some convenience function for using DRWShaderLibrary.
This commit is contained in:
parent
5dcf60e053
commit
8e16873086
|
@ -204,6 +204,11 @@ struct GPUShader *DRW_shader_create(const char *vert,
|
|||
const char *defines);
|
||||
struct GPUShader *DRW_shader_create_with_lib(
|
||||
const char *vert, const char *geom, const char *frag, const char *lib, const char *defines);
|
||||
struct GPUShader *DRW_shader_create_with_shaderlib(const char *vert,
|
||||
const char *geom,
|
||||
const char *frag,
|
||||
const DRWShaderLibrary *lib,
|
||||
const char *defines);
|
||||
struct GPUShader *DRW_shader_create_with_transform_feedback(const char *vert,
|
||||
const char *geom,
|
||||
const char *defines,
|
||||
|
@ -211,6 +216,9 @@ struct GPUShader *DRW_shader_create_with_transform_feedback(const char *vert,
|
|||
const char **varying_names,
|
||||
const int varying_count);
|
||||
struct GPUShader *DRW_shader_create_fullscreen(const char *frag, const char *defines);
|
||||
struct GPUShader *DRW_shader_create_fullscreen_with_shaderlib(const char *frag,
|
||||
const DRWShaderLibrary *lib,
|
||||
const char *defines);
|
||||
struct GPUMaterial *DRW_shader_find_from_world(struct World *wo,
|
||||
const void *engine_type,
|
||||
const int options,
|
||||
|
|
|
@ -328,6 +328,26 @@ GPUShader *DRW_shader_create_with_lib(
|
|||
return sh;
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_with_shaderlib(const char *vert,
|
||||
const char *geom,
|
||||
const char *frag,
|
||||
const DRWShaderLibrary *lib,
|
||||
const char *defines)
|
||||
{
|
||||
GPUShader *sh;
|
||||
char *vert_with_lib = DRW_shader_library_create_shader_string(lib, vert);
|
||||
char *frag_with_lib = DRW_shader_library_create_shader_string(lib, frag);
|
||||
char *geom_with_lib = (geom) ? DRW_shader_library_create_shader_string(lib, geom) : NULL;
|
||||
|
||||
sh = GPU_shader_create(vert_with_lib, frag_with_lib, geom_with_lib, NULL, defines, __func__);
|
||||
|
||||
MEM_SAFE_FREE(vert_with_lib);
|
||||
MEM_SAFE_FREE(frag_with_lib);
|
||||
MEM_SAFE_FREE(geom_with_lib);
|
||||
|
||||
return sh;
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_with_transform_feedback(const char *vert,
|
||||
const char *geom,
|
||||
const char *defines,
|
||||
|
@ -352,6 +372,22 @@ GPUShader *DRW_shader_create_fullscreen(const char *frag, const char *defines)
|
|||
datatoc_common_fullscreen_vert_glsl, frag, NULL, NULL, defines, __func__);
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_fullscreen_with_shaderlib(const char *frag,
|
||||
const DRWShaderLibrary *lib,
|
||||
const char *defines)
|
||||
{
|
||||
|
||||
GPUShader *sh;
|
||||
char *vert = datatoc_common_fullscreen_vert_glsl;
|
||||
char *frag_with_lib = DRW_shader_library_create_shader_string(lib, frag);
|
||||
|
||||
sh = GPU_shader_create(vert, frag_with_lib, NULL, NULL, defines, __func__);
|
||||
|
||||
MEM_SAFE_FREE(frag_with_lib);
|
||||
|
||||
return sh;
|
||||
}
|
||||
|
||||
GPUMaterial *DRW_shader_find_from_world(World *wo,
|
||||
const void *engine_type,
|
||||
const int options,
|
||||
|
|
Loading…
Reference in New Issue