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>2017-04-03 20:32:05 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-04-03 22:52:42 +0300
commit4a8aaab0b2ab84455450fcdd1e39e190862b0bb6 (patch)
tree8980b25eae7e18bcae6931d08a2848e7c0de1661
parentccd8353d58d769d435822e7dac25d8fdf317d6df (diff)
Draw Manager: Use engine type pointer instead of engine name.
Faster search
-rw-r--r--source/blender/draw/engines/clay/clay.c2
-rw-r--r--source/blender/draw/engines/eevee/eevee_private.h2
-rw-r--r--source/blender/draw/intern/DRW_render.h1
-rw-r--r--source/blender/draw/intern/draw_manager.c22
-rw-r--r--source/blender/draw/modes/edit_armature_mode.c2
-rw-r--r--source/blender/draw/modes/edit_curve_mode.c2
-rw-r--r--source/blender/draw/modes/edit_lattice_mode.c2
-rw-r--r--source/blender/draw/modes/edit_mesh_mode.c2
-rw-r--r--source/blender/draw/modes/edit_metaball_mode.c2
-rw-r--r--source/blender/draw/modes/edit_surface_mode.c2
-rw-r--r--source/blender/draw/modes/edit_text_mode.c2
-rw-r--r--source/blender/draw/modes/object_mode.c2
-rw-r--r--source/blender/draw/modes/paint_texture_mode.c2
-rw-r--r--source/blender/draw/modes/paint_vertex_mode.c2
-rw-r--r--source/blender/draw/modes/paint_weight_mode.c2
-rw-r--r--source/blender/draw/modes/particle_mode.c2
-rw-r--r--source/blender/draw/modes/pose_mode.c2
-rw-r--r--source/blender/draw/modes/sculpt_mode.c2
-rw-r--r--source/blender/gpu/GPU_viewport.h6
-rw-r--r--source/blender/gpu/intern/gpu_viewport.c8
20 files changed, 34 insertions, 35 deletions
diff --git a/source/blender/draw/engines/clay/clay.c b/source/blender/draw/engines/clay/clay.c
index 6294715e01c..23cfe82276f 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -106,7 +106,7 @@ typedef struct CLAY_PassList {
} CLAY_PassList;
typedef struct CLAY_Data {
- char engine_name[32];
+ void *engine_type;
CLAY_FramebufferList *fbl;
CLAY_TextureList *txl;
CLAY_PassList *psl;
diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h
index b81731a9188..401b39fbd3e 100644
--- a/source/blender/draw/engines/eevee/eevee_private.h
+++ b/source/blender/draw/engines/eevee/eevee_private.h
@@ -58,7 +58,7 @@ typedef struct EEVEE_LightsInfo {
} EEVEE_LightsInfo;
typedef struct EEVEE_Data {
- char engine_name[32];
+ void *engine_type;
EEVEE_FramebufferList *fbl;
EEVEE_TextureList *txl;
EEVEE_PassList *psl;
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index dcef328e4ce..8a6f0b4511a 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -237,7 +237,6 @@ typedef enum {
void DRW_viewport_init(const bContext *C);
void DRW_viewport_matrix_get(float mat[4][4], DRWViewportMatrixType type);
-void *DRW_viewport_engine_data_get(const char *engine_name);
float *DRW_viewport_size_get(void);
float *DRW_viewport_screenvecs_get(void);
float *DRW_viewport_pixelsize_get(void);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index a674c532310..c8828fad745 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1292,12 +1292,12 @@ void DRW_framebuffer_blit(struct GPUFrameBuffer *fb_read, struct GPUFrameBuffer
}
/* ****************************************** Viewport ******************************************/
-void *DRW_viewport_engine_data_get(const char *engine_name)
+static void *DRW_viewport_engine_data_get(void *engine_type)
{
- void *data = GPU_viewport_engine_data_get(DST.viewport, engine_name);
+ void *data = GPU_viewport_engine_data_get(DST.viewport, engine_type);
if (data == NULL) {
- data = GPU_viewport_engine_data_create(DST.viewport, engine_name);
+ data = GPU_viewport_engine_data_create(DST.viewport, engine_type);
}
return data;
}
@@ -1421,7 +1421,7 @@ static void DRW_engines_init(void)
{
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
double stime = PIL_check_seconds_timer();
if (engine->engine_init) {
@@ -1437,7 +1437,7 @@ static void DRW_engines_cache_init(void)
{
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
double stime = PIL_check_seconds_timer();
data->cache_time = 0.0;
@@ -1453,7 +1453,7 @@ static void DRW_engines_cache_populate(Object *ob)
{
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
double stime = PIL_check_seconds_timer();
if (engine->cache_populate) {
@@ -1468,7 +1468,7 @@ static void DRW_engines_cache_finish(void)
{
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
double stime = PIL_check_seconds_timer();
if (engine->cache_finish) {
@@ -1483,7 +1483,7 @@ static void DRW_engines_draw_background(void)
{
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
double stime = PIL_check_seconds_timer();
if (engine->draw_background) {
@@ -1503,7 +1503,7 @@ static void DRW_engines_draw_scene(void)
{
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
double stime = PIL_check_seconds_timer();
if (engine->draw_scene) {
@@ -1642,7 +1642,7 @@ static void DRW_debug_cpu_stats(void)
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
u = 0;
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
draw_stat(&rect, u++, v, engine->idname, sizeof(engine->idname));
@@ -1702,7 +1702,7 @@ static void DRW_debug_gpu_stats(void)
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
GLuint64 engine_time = 0;
DrawEngineType *engine = link->data;
- ViewportEngineData *data = DRW_viewport_engine_data_get(engine->idname);
+ ViewportEngineData *data = DRW_viewport_engine_data_get(engine);
int vsta = v;
draw_stat(&rect, 0, v, engine->idname, sizeof(engine->idname));
diff --git a/source/blender/draw/modes/edit_armature_mode.c b/source/blender/draw/modes/edit_armature_mode.c
index 5361bd1c89f..6111b9b160b 100644
--- a/source/blender/draw/modes/edit_armature_mode.c
+++ b/source/blender/draw/modes/edit_armature_mode.c
@@ -48,7 +48,7 @@ typedef struct EDIT_ARMATURE_StorageList {
} EDIT_ARMATURE_StorageList;
typedef struct EDIT_ARMATURE_Data {
- char engine_name[32];
+ void *engine_type;
void *fbl;
void *txl;
EDIT_ARMATURE_PassList *psl;
diff --git a/source/blender/draw/modes/edit_curve_mode.c b/source/blender/draw/modes/edit_curve_mode.c
index f8010fbd570..d70db64d946 100644
--- a/source/blender/draw/modes/edit_curve_mode.c
+++ b/source/blender/draw/modes/edit_curve_mode.c
@@ -83,7 +83,7 @@ typedef struct EDIT_CURVE_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
EDIT_CURVE_FramebufferList *fbl;
EDIT_CURVE_TextureList *txl;
EDIT_CURVE_PassList *psl;
diff --git a/source/blender/draw/modes/edit_lattice_mode.c b/source/blender/draw/modes/edit_lattice_mode.c
index 27ea05650cb..79d43c73378 100644
--- a/source/blender/draw/modes/edit_lattice_mode.c
+++ b/source/blender/draw/modes/edit_lattice_mode.c
@@ -83,7 +83,7 @@ typedef struct EDIT_LATTICE_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
EDIT_LATTICE_FramebufferList *fbl;
EDIT_LATTICE_TextureList *txl;
EDIT_LATTICE_PassList *psl;
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index 713ae607ef4..2991d212efa 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -81,7 +81,7 @@ typedef struct EDIT_MESH_StorageList {
} EDIT_MESH_StorageList;
typedef struct EDIT_MESH_Data {
- char engine_name[32];
+ void *engine_type;
EDIT_MESH_FramebufferList *fbl;
EDIT_MESH_TextureList *txl;
EDIT_MESH_PassList *psl;
diff --git a/source/blender/draw/modes/edit_metaball_mode.c b/source/blender/draw/modes/edit_metaball_mode.c
index f993537369f..098dca7ac38 100644
--- a/source/blender/draw/modes/edit_metaball_mode.c
+++ b/source/blender/draw/modes/edit_metaball_mode.c
@@ -83,7 +83,7 @@ typedef struct EDIT_METABALL_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
EDIT_METABALL_FramebufferList *fbl;
EDIT_METABALL_TextureList *txl;
EDIT_METABALL_PassList *psl;
diff --git a/source/blender/draw/modes/edit_surface_mode.c b/source/blender/draw/modes/edit_surface_mode.c
index 6cfe0f1344b..fcae505a673 100644
--- a/source/blender/draw/modes/edit_surface_mode.c
+++ b/source/blender/draw/modes/edit_surface_mode.c
@@ -83,7 +83,7 @@ typedef struct EDIT_SURFACE_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
EDIT_SURFACE_FramebufferList *fbl;
EDIT_SURFACE_TextureList *txl;
EDIT_SURFACE_PassList *psl;
diff --git a/source/blender/draw/modes/edit_text_mode.c b/source/blender/draw/modes/edit_text_mode.c
index 4f48448f108..2a1b0d4e4ae 100644
--- a/source/blender/draw/modes/edit_text_mode.c
+++ b/source/blender/draw/modes/edit_text_mode.c
@@ -83,7 +83,7 @@ typedef struct EDIT_TEXT_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
EDIT_TEXT_FramebufferList *fbl;
EDIT_TEXT_TextureList *txl;
EDIT_TEXT_PassList *psl;
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 5920889a453..0656485f792 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -93,7 +93,7 @@ typedef struct OBJECT_StorageList {
} OBJECT_StorageList;
typedef struct OBJECT_Data {
- char engine_name[32];
+ void *engine_type;
void *fbl;
void *txl;
OBJECT_PassList *psl;
diff --git a/source/blender/draw/modes/paint_texture_mode.c b/source/blender/draw/modes/paint_texture_mode.c
index e6221c4efc3..9d620e0ce25 100644
--- a/source/blender/draw/modes/paint_texture_mode.c
+++ b/source/blender/draw/modes/paint_texture_mode.c
@@ -83,7 +83,7 @@ typedef struct PAINT_TEXTURE_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
PAINT_TEXTURE_FramebufferList *fbl;
PAINT_TEXTURE_TextureList *txl;
PAINT_TEXTURE_PassList *psl;
diff --git a/source/blender/draw/modes/paint_vertex_mode.c b/source/blender/draw/modes/paint_vertex_mode.c
index 15c08a7d415..b3b32a4d6e9 100644
--- a/source/blender/draw/modes/paint_vertex_mode.c
+++ b/source/blender/draw/modes/paint_vertex_mode.c
@@ -83,7 +83,7 @@ typedef struct PAINT_VERTEX_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
PAINT_VERTEX_FramebufferList *fbl;
PAINT_VERTEX_TextureList *txl;
PAINT_VERTEX_PassList *psl;
diff --git a/source/blender/draw/modes/paint_weight_mode.c b/source/blender/draw/modes/paint_weight_mode.c
index 3063e685149..2d189e07fd2 100644
--- a/source/blender/draw/modes/paint_weight_mode.c
+++ b/source/blender/draw/modes/paint_weight_mode.c
@@ -83,7 +83,7 @@ typedef struct PAINT_WEIGHT_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
PAINT_WEIGHT_FramebufferList *fbl;
PAINT_WEIGHT_TextureList *txl;
PAINT_WEIGHT_PassList *psl;
diff --git a/source/blender/draw/modes/particle_mode.c b/source/blender/draw/modes/particle_mode.c
index 84426b28752..aab9c41a233 100644
--- a/source/blender/draw/modes/particle_mode.c
+++ b/source/blender/draw/modes/particle_mode.c
@@ -77,7 +77,7 @@ typedef struct PARTICLE_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
PARTICLE_FramebufferList *fbl;
PARTICLE_TextureList *txl;
PARTICLE_PassList *psl;
diff --git a/source/blender/draw/modes/pose_mode.c b/source/blender/draw/modes/pose_mode.c
index 0c880130cfc..93514701010 100644
--- a/source/blender/draw/modes/pose_mode.c
+++ b/source/blender/draw/modes/pose_mode.c
@@ -77,7 +77,7 @@ typedef struct POSE_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
POSE_FramebufferList *fbl;
POSE_TextureList *txl;
POSE_PassList *psl;
diff --git a/source/blender/draw/modes/sculpt_mode.c b/source/blender/draw/modes/sculpt_mode.c
index 4ed03668796..4b500c4d6fd 100644
--- a/source/blender/draw/modes/sculpt_mode.c
+++ b/source/blender/draw/modes/sculpt_mode.c
@@ -77,7 +77,7 @@ typedef struct SCULPT_Data {
/* Struct returned by DRW_viewport_engine_data_get.
* If you don't use one of these, just make it a (void *) */
// void *fbl;
- char engine_name[32]; /* Required */
+ void *engine_type; /* Required */
SCULPT_FramebufferList *fbl;
SCULPT_TextureList *txl;
SCULPT_PassList *psl;
diff --git a/source/blender/gpu/GPU_viewport.h b/source/blender/gpu/GPU_viewport.h
index 06102a5c07e..2411fe755af 100644
--- a/source/blender/gpu/GPU_viewport.h
+++ b/source/blender/gpu/GPU_viewport.h
@@ -64,7 +64,7 @@ typedef struct StorageList {
} StorageList;
typedef struct ViewportEngineData {
- char engine_name[32];
+ void *engine_type;
FramebufferList *fbl;
TextureList *txl;
@@ -83,8 +83,8 @@ void GPU_viewport_bind(GPUViewport *viewport, const rcti *rect);
void GPU_viewport_unbind(GPUViewport *viewport);
void GPU_viewport_free(GPUViewport *viewport);
-void *GPU_viewport_engine_data_create(GPUViewport *viewport, const char *engine_name);
-void *GPU_viewport_engine_data_get(GPUViewport *viewport, const char *engine_name);
+void *GPU_viewport_engine_data_create(GPUViewport *viewport, void *engine_type);
+void *GPU_viewport_engine_data_get(GPUViewport *viewport, void *engine_type);
void *GPU_viewport_framebuffer_list_get(GPUViewport *viewport);
void *GPU_viewport_texture_list_get(GPUViewport *viewport);
void GPU_viewport_size_get(GPUViewport *viewport, int *size);
diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c
index 659a9cea825..7c2cb8cd4bb 100644
--- a/source/blender/gpu/intern/gpu_viewport.c
+++ b/source/blender/gpu/intern/gpu_viewport.c
@@ -79,11 +79,11 @@ GPUViewport *GPU_viewport_create(void)
return viewport;
}
-void *GPU_viewport_engine_data_create(GPUViewport *viewport, const char *engine_name)
+void *GPU_viewport_engine_data_create(GPUViewport *viewport, void *engine_type)
{
LinkData *ld = MEM_callocN(sizeof(LinkData), "LinkData");
ViewportEngineData *data = MEM_callocN(sizeof(ViewportEngineData), "ViewportEngineData");
- BLI_strncpy(data->engine_name, engine_name, 32);
+ data->engine_type = engine_type;
data->fbl = MEM_callocN(sizeof(FramebufferList), "FramebufferList");
data->txl = MEM_callocN(sizeof(TextureList), "TextureList");
@@ -119,11 +119,11 @@ static void GPU_viewport_engines_data_free(GPUViewport *viewport)
}
}
-void *GPU_viewport_engine_data_get(GPUViewport *viewport, const char *engine_name)
+void *GPU_viewport_engine_data_get(GPUViewport *viewport, void *engine_type)
{
for (LinkData *link = viewport->data.first; link; link = link->next) {
ViewportEngineData *vdata = link->data;
- if (STREQ(engine_name, vdata->engine_name)) {
+ if (vdata->engine_type == engine_type) {
return vdata;
}
}