[Bf-blender-cvs] [5d84d9b0d6a] master: Cleanup: Simplify job custom data query API

Sergey Sharybin noreply at git.blender.org
Fri Apr 29 16:49:55 CEST 2022


Commit: 5d84d9b0d6ad114109d60cf3d0ddcd9bb1a5de13
Author: Sergey Sharybin
Date:   Fri Apr 29 16:41:02 2022 +0200
Branches: master
https://developer.blender.org/rB5d84d9b0d6ad114109d60cf3d0ddcd9bb1a5de13

Cleanup: Simplify job custom data query API

There were two calls to access job's custom data. One of them
ignored job type, the other one ignored job owner.

Now there is a single function to access job's custom data.
If the job type or owner is not relevant NULL or WM_JOB_TYPE_ANY
can be passes explicitly.

Differential Revision: https://developer.blender.org/D14803

===================================================================

M	source/blender/editors/render/render_internal.cc
M	source/blender/editors/render/render_preview.cc
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_jobs.c

===================================================================

diff --git a/source/blender/editors/render/render_internal.cc b/source/blender/editors/render/render_internal.cc
index e5d2a765ca1..157c9bc7222 100644
--- a/source/blender/editors/render/render_internal.cc
+++ b/source/blender/editors/render/render_internal.cc
@@ -1146,7 +1146,8 @@ void RENDER_OT_render(wmOperatorType *ot)
 Scene *ED_render_job_get_scene(const bContext *C)
 {
   wmWindowManager *wm = CTX_wm_manager(C);
-  RenderJob *rj = (RenderJob *)WM_jobs_customdata_from_type(wm, WM_JOB_TYPE_RENDER);
+  RenderJob *rj = (RenderJob *)WM_jobs_customdata_from_type(
+      wm, CTX_data_scene(C), WM_JOB_TYPE_RENDER);
 
   if (rj) {
     return rj->scene;
@@ -1158,7 +1159,8 @@ Scene *ED_render_job_get_scene(const bContext *C)
 Scene *ED_render_job_get_current_scene(const bContext *C)
 {
   wmWindowManager *wm = CTX_wm_manager(C);
-  RenderJob *rj = (RenderJob *)WM_jobs_customdata_from_type(wm, WM_JOB_TYPE_RENDER);
+  RenderJob *rj = (RenderJob *)WM_jobs_customdata_from_type(
+      wm, CTX_data_scene(C), WM_JOB_TYPE_RENDER);
   if (rj) {
     return rj->current_scene;
   }
diff --git a/source/blender/editors/render/render_preview.cc b/source/blender/editors/render/render_preview.cc
index 78e786a2130..a56f513e98f 100644
--- a/source/blender/editors/render/render_preview.cc
+++ b/source/blender/editors/render/render_preview.cc
@@ -713,7 +713,8 @@ void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, r
     ID *parent = (ID *)parentp;
     MTex *slot = (MTex *)slotp;
     SpaceProperties *sbuts = CTX_wm_space_properties(C);
-    ShaderPreview *sp = static_cast<ShaderPreview *>(WM_jobs_customdata(wm, area));
+    ShaderPreview *sp = static_cast<ShaderPreview *>(
+        WM_jobs_customdata_from_type(wm, area, WM_JOB_TYPE_LOAD_PREVIEW));
     rcti newrect;
     bool ok;
     int newx = BLI_rcti_size_x(rect);
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 9a4d024328a..525301d4393 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -1322,8 +1322,7 @@ const char *WM_jobs_name(const struct wmWindowManager *wm, const void *owner);
  * Time that job started.
  */
 double WM_jobs_starttime(const struct wmWindowManager *wm, const void *owner);
-void *WM_jobs_customdata(struct wmWindowManager *wm, const void *owner);
-void *WM_jobs_customdata_from_type(struct wmWindowManager *wm, int job_type);
+void *WM_jobs_customdata_from_type(struct wmWindowManager *wm, const void *owner, int job_type);
 
 bool WM_jobs_is_running(const struct wmJob *wm_job);
 bool WM_jobs_is_stopped(const wmWindowManager *wm, const void *owner);
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index 701a93c7e21..b44cf9e48b8 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -280,20 +280,9 @@ const char *WM_jobs_name(const wmWindowManager *wm, const void *owner)
   return NULL;
 }
 
-void *WM_jobs_customdata(wmWindowManager *wm, const void *owner)
+void *WM_jobs_customdata_from_type(wmWindowManager *wm, const void *owner, int job_type)
 {
-  wmJob *wm_job = wm_job_find(wm, owner, WM_JOB_TYPE_ANY);
-
-  if (wm_job) {
-    return WM_jobs_customdata_get(wm_job);
-  }
-
-  return NULL;
-}
-
-void *WM_jobs_customdata_from_type(wmWindowManager *wm, int job_type)
-{
-  wmJob *wm_job = wm_job_find(wm, NULL, job_type);
+  wmJob *wm_job = wm_job_find(wm, owner, job_type);
 
   if (wm_job) {
     return WM_jobs_customdata_get(wm_job);



More information about the Bf-blender-cvs mailing list