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-09-08 04:18:49 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-09-08 05:15:50 +0300
commitccc512cc619dc9f0e6fd79270a7a96ece34d23b5 (patch)
treeda728c4f3745fc352a5e223502ca8734c3c1f01b /source/blender/windowmanager/intern
parentca8ffc523e3d08fc55c5cf000fa9fc3888950bf7 (diff)
GPUImmediate: Make activation / deactivation implicit
This avoids unecessary complexity. Also makes the GPUImmediate threadsafe by using a threadlocal imm variable.
Diffstat (limited to 'source/blender/windowmanager/intern')
-rw-r--r--source/blender/windowmanager/intern/wm_playanim.c3
-rw-r--r--source/blender/windowmanager/intern/wm_surface.c3
-rw-r--r--source/blender/windowmanager/intern/wm_window.c2
3 files changed, 0 insertions, 8 deletions
diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c
index 86d3f7f35dc..e3c763930c0 100644
--- a/source/blender/windowmanager/intern/wm_playanim.c
+++ b/source/blender/windowmanager/intern/wm_playanim.c
@@ -1292,7 +1292,6 @@ static char *wm_main_playanim_intern(int argc, const char **argv)
/* initialize OpenGL immediate mode */
g_WS.gpu_context = GPU_context_create(g_WS.ghost_window);
GPU_init();
- immActivate();
/* initialize the font */
BLF_init();
@@ -1579,8 +1578,6 @@ static char *wm_main_playanim_intern(int argc, const char **argv)
GPU_shader_free_builtin_shaders();
- immDeactivate();
-
if (g_WS.gpu_context) {
GPU_context_active_set(g_WS.gpu_context);
GPU_context_discard(g_WS.gpu_context);
diff --git a/source/blender/windowmanager/intern/wm_surface.c b/source/blender/windowmanager/intern/wm_surface.c
index e8cb5d9cd7d..4139574460b 100644
--- a/source/blender/windowmanager/intern/wm_surface.c
+++ b/source/blender/windowmanager/intern/wm_surface.c
@@ -56,8 +56,6 @@ void wm_surface_clear_drawable(void)
WM_opengl_context_release(g_drawable->ghost_ctx);
GPU_context_active_set(NULL);
- immDeactivate();
-
if (g_drawable->deactivate) {
g_drawable->deactivate();
}
@@ -79,7 +77,6 @@ void wm_surface_set_drawable(wmSurface *surface, bool activate)
}
GPU_context_active_set(surface->gpu_ctx);
- immActivate();
}
void wm_surface_make_drawable(wmSurface *surface)
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 0e19f79e659..795205b8200 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -1099,13 +1099,11 @@ static void wm_window_set_drawable(wmWindowManager *wm, wmWindow *win, bool acti
GHOST_ActivateWindowDrawingContext(win->ghostwin);
}
GPU_context_active_set(win->gpuctx);
- immActivate();
}
void wm_window_clear_drawable(wmWindowManager *wm)
{
if (wm->windrawable) {
- immDeactivate();
wm->windrawable = NULL;
}
}