Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-08-14 20:11:30 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-08-18 22:30:10 +0300
commite8c48ce0752d656da1eb102a38029a0c54d7e7c4 (patch)
tree5d5729feb0395ae79024d40c956a41f3bbfd4391 /source/blender/draw/intern/DRW_render.h
parente43e9caf1b17a029efbead02cabeba9b2cf9dcc7 (diff)
GPUShader: Improve auto name
Use macro to get calling function name. Helps debugging shaders.
Diffstat (limited to 'source/blender/draw/intern/DRW_render.h')
-rw-r--r--source/blender/draw/intern/DRW_render.h48
1 files changed, 32 insertions, 16 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 956bddfb357..134fdc0ba7c 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -208,27 +208,44 @@ typedef void (*GPUMaterialEvalCallbackFn)(struct GPUMaterial *mat,
const char **defines);
#endif
-struct GPUShader *DRW_shader_create(const char *vert,
- const char *geom,
- const char *frag,
- 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_ex(
+ const char *vert, const char *geom, const char *frag, const char *defines, const char *func);
+struct GPUShader *DRW_shader_create_with_lib_ex(const char *vert,
+ const char *geom,
+ const char *frag,
+ const char *lib,
+ const char *defines,
+ const char *func);
+struct GPUShader *DRW_shader_create_with_shaderlib_ex(const char *vert,
+ const char *geom,
+ const char *frag,
+ const DRWShaderLibrary *lib,
+ const char *defines,
+ const char *func);
struct GPUShader *DRW_shader_create_with_transform_feedback(const char *vert,
const char *geom,
const char *defines,
const eGPUShaderTFBType prim_type,
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 GPUShader *DRW_shader_create_fullscreen_ex(const char *frag,
+ const char *defines,
+ const char *func);
+struct GPUShader *DRW_shader_create_fullscreen_with_shaderlib_ex(const char *frag,
+ const DRWShaderLibrary *lib,
+ const char *defines,
+ const char *func);
+#define DRW_shader_create(vert, geom, frag, defines) \
+ DRW_shader_create_ex(vert, geom, frag, defines, __func__)
+#define DRW_shader_create_with_lib(vert, geom, frag, lib, defines) \
+ DRW_shader_create_with_lib_ex(vert, geom, frag, lib, defines, __func__)
+#define DRW_shader_create_with_shaderlib(vert, geom, frag, lib, defines) \
+ DRW_shader_create_with_shaderlib_ex(vert, geom, frag, lib, defines, __func__)
+#define DRW_shader_create_fullscreen(frag, defines) \
+ DRW_shader_create_fullscreen_ex(frag, defines, __func__)
+#define DRW_shader_create_fullscreen_with_shaderlib(frag, lib, defines) \
+ DRW_shader_create_fullscreen_with_shaderlib_ex(frag, lib, defines, __func__)
+
struct GPUMaterial *DRW_shader_find_from_world(struct World *wo,
const void *engine_type,
const int options,
@@ -718,7 +735,6 @@ bool DRW_state_draw_background(void);
/* Avoid too many lookups while drawing */
typedef struct DRWContextState {
-
struct ARegion *region; /* 'CTX_wm_region(C)' */
struct RegionView3D *rv3d; /* 'CTX_wm_region_view3d(C)' */
struct View3D *v3d; /* 'CTX_wm_view3d(C)' */