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-10-08 18:58:38 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-10-08 18:58:38 +0300
commitf23bf4cb109cb8f39f873c4f80acbec3f33b098c (patch)
tree99e084e178236efd4458481b3ab4ab737a567835 /source/blender/gpu
parent479dc766b5f9eee29fe86b869ee0fa9edb95e5fc (diff)
Revert "BGL: Workaround broken bgl usage caused by GPU refactor"
This reverts commit f12b0373f322b710b9fa5cebb67bdf363ff90e9f.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/GPU_state.h5
-rw-r--r--source/blender/gpu/intern/gpu_state.cc35
-rw-r--r--source/blender/gpu/intern/gpu_state_private.hh1
-rw-r--r--source/blender/gpu/opengl/gl_debug.cc2
-rw-r--r--source/blender/gpu/opengl/gl_state.cc12
5 files changed, 9 insertions, 46 deletions
diff --git a/source/blender/gpu/GPU_state.h b/source/blender/gpu/GPU_state.h
index 471edfb7b8f..04cf7bc54ba 100644
--- a/source/blender/gpu/GPU_state.h
+++ b/source/blender/gpu/GPU_state.h
@@ -161,10 +161,7 @@ float GPU_line_width_get(void);
void GPU_flush(void);
void GPU_finish(void);
void GPU_apply_state(void);
-
-void GPU_bgl_start(void);
-void GPU_bgl_end(void);
-bool GPU_bgl_get(void);
+void GPU_force_state(void);
void GPU_memory_barrier(eGPUBarrier barrier);
diff --git a/source/blender/gpu/intern/gpu_state.cc b/source/blender/gpu/intern/gpu_state.cc
index 44cc11155bb..44ad9cc9a84 100644
--- a/source/blender/gpu/intern/gpu_state.cc
+++ b/source/blender/gpu/intern/gpu_state.cc
@@ -317,39 +317,10 @@ void GPU_apply_state(void)
Context::get()->state_manager->apply_state();
}
-/** \} */
-
-/* -------------------------------------------------------------------- */
-/** \name BGL workaround
- *
- * bgl makes direct GL calls that makes our state tracking out of date.
- * This flag make it so that the pyGPU calls will not override the state set by
- * bgl functions.
- * \{ */
-
-void GPU_bgl_start(void)
-{
- StateManager &state_manager = *(Context::get()->state_manager);
- if (state_manager.use_bgl == false) {
- /* Expected by many addons (see T80169, T81289).
- * This will reset the blend function. */
- GPU_blend(GPU_BLEND_NONE);
- state_manager.apply_state();
- state_manager.use_bgl = true;
- }
-}
-
-void GPU_bgl_end(void)
-{
- StateManager &state_manager = *(Context::get()->state_manager);
- state_manager.use_bgl = false;
- /* Resync state tracking. */
- state_manager.force_state();
-}
-
-bool GPU_bgl_get(void)
+/* Will set all the states regardless of the current ones. */
+void GPU_force_state(void)
{
- return Context::get()->state_manager->use_bgl;
+ Context::get()->state_manager->force_state();
}
/** \} */
diff --git a/source/blender/gpu/intern/gpu_state_private.hh b/source/blender/gpu/intern/gpu_state_private.hh
index db1747127d4..d93556a1058 100644
--- a/source/blender/gpu/intern/gpu_state_private.hh
+++ b/source/blender/gpu/intern/gpu_state_private.hh
@@ -153,7 +153,6 @@ class StateManager {
public:
GPUState state;
GPUStateMutable mutable_state;
- bool use_bgl = false;
public:
StateManager();
diff --git a/source/blender/gpu/opengl/gl_debug.cc b/source/blender/gpu/opengl/gl_debug.cc
index b2b05124463..797f9ff404c 100644
--- a/source/blender/gpu/opengl/gl_debug.cc
+++ b/source/blender/gpu/opengl/gl_debug.cc
@@ -200,7 +200,7 @@ void check_gl_error(const char *info)
void check_gl_resources(const char *info)
{
- if (!(G.debug & G_DEBUG_GPU) || GPU_bgl_get()) {
+ if (!(G.debug & G_DEBUG_GPU)) {
return;
}
diff --git a/source/blender/gpu/opengl/gl_state.cc b/source/blender/gpu/opengl/gl_state.cc
index 27c9b501add..cd24fa0e0e4 100644
--- a/source/blender/gpu/opengl/gl_state.cc
+++ b/source/blender/gpu/opengl/gl_state.cc
@@ -73,17 +73,13 @@ GLStateManager::GLStateManager(void) : StateManager()
void GLStateManager::apply_state(void)
{
- if (!this->use_bgl) {
- this->set_state(this->state);
- this->set_mutable_state(this->mutable_state);
- this->texture_bind_apply();
- this->image_bind_apply();
- }
- /* This is needed by gpu_py_offscreen. */
+ this->set_state(this->state);
+ this->set_mutable_state(this->mutable_state);
+ this->texture_bind_apply();
+ this->image_bind_apply();
active_fb->apply_state();
};
-/* Will set all the states regardless of the current ones. */
void GLStateManager::force_state(void)
{
/* Little exception for clip distances since they need to keep the old count correct. */