Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_info/info_stats.c
| Show First 20 Lines • Show All 339 Lines • ▼ Show 20 Lines | |||||
| static bool stats_is_object_dynamic_topology_sculpt(Object *ob) | static bool stats_is_object_dynamic_topology_sculpt(Object *ob) | ||||
| { | { | ||||
| return (ob && (ob->mode & OB_MODE_SCULPT) && | return (ob && (ob->mode & OB_MODE_SCULPT) && | ||||
| ob->sculpt && ob->sculpt->bm); | ob->sculpt && ob->sculpt->bm); | ||||
| } | } | ||||
| /* Statistics displayed in info header. Called regularly on scene changes. */ | /* Statistics displayed in info header. Called regularly on scene changes. */ | ||||
| static void stats_update(Scene *scene, SceneLayer *sl) | static void stats_update(Scene *scene, ViewLayer *sl) | ||||
| { | { | ||||
| SceneStats stats = {0}; | SceneStats stats = {0}; | ||||
| Object *ob = (sl->basact) ? sl->basact->object : NULL; | Object *ob = (sl->basact) ? sl->basact->object : NULL; | ||||
| Base *base; | Base *base; | ||||
| if (scene->obedit) { | if (scene->obedit) { | ||||
| /* Edit Mode */ | /* Edit Mode */ | ||||
| stats_object_edit(scene->obedit, &stats); | stats_object_edit(scene->obedit, &stats); | ||||
| Show All 16 Lines | static void stats_update(Scene *scene, ViewLayer *sl) | ||||
| if (!sl->stats) { | if (!sl->stats) { | ||||
| sl->stats = MEM_callocN(sizeof(SceneStats), "SceneStats"); | sl->stats = MEM_callocN(sizeof(SceneStats), "SceneStats"); | ||||
| } | } | ||||
| *(sl->stats) = stats; | *(sl->stats) = stats; | ||||
| } | } | ||||
| static void stats_string(Scene *scene, SceneLayer *sl) | static void stats_string(Scene *scene, ViewLayer *sl) | ||||
| { | { | ||||
| #define MAX_INFO_MEM_LEN 64 | #define MAX_INFO_MEM_LEN 64 | ||||
| SceneStats *stats = sl->stats; | SceneStats *stats = sl->stats; | ||||
| SceneStatsFmt stats_fmt; | SceneStatsFmt stats_fmt; | ||||
| Object *ob = (sl->basact) ? sl->basact->object : NULL; | Object *ob = (sl->basact) ? sl->basact->object : NULL; | ||||
| uintptr_t mem_in_use, mmap_in_use; | uintptr_t mem_in_use, mmap_in_use; | ||||
| char memstr[MAX_INFO_MEM_LEN]; | char memstr[MAX_INFO_MEM_LEN]; | ||||
| char gpumemstr[MAX_INFO_MEM_LEN] = ""; | char gpumemstr[MAX_INFO_MEM_LEN] = ""; | ||||
| ▲ Show 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | #undef SCENE_STATS_FMT_INT | ||||
| if (ob) | if (ob) | ||||
| BLI_snprintf(s + ofs, MAX_INFO_LEN - ofs, " | %s", ob->id.name + 2); | BLI_snprintf(s + ofs, MAX_INFO_LEN - ofs, " | %s", ob->id.name + 2); | ||||
| #undef MAX_INFO_MEM_LEN | #undef MAX_INFO_MEM_LEN | ||||
| } | } | ||||
| #undef MAX_INFO_LEN | #undef MAX_INFO_LEN | ||||
| void ED_info_stats_clear(SceneLayer *sl) | void ED_info_stats_clear(ViewLayer *sl) | ||||
| { | { | ||||
| if (sl->stats) { | if (sl->stats) { | ||||
| MEM_freeN(sl->stats); | MEM_freeN(sl->stats); | ||||
| sl->stats = NULL; | sl->stats = NULL; | ||||
| } | } | ||||
| } | } | ||||
| const char *ED_info_stats_string(Scene *scene, SceneLayer *sl) | const char *ED_info_stats_string(Scene *scene, ViewLayer *sl) | ||||
| { | { | ||||
| if (!sl->stats) { | if (!sl->stats) { | ||||
| stats_update(scene, sl); | stats_update(scene, sl); | ||||
| } | } | ||||
| stats_string(scene, sl); | stats_string(scene, sl); | ||||
| return sl->stats->infostr; | return sl->stats->infostr; | ||||
| } | } | ||||