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:
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/CMakeLists.txt1
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h2
-rw-r--r--source/blender/render/intern/include/render_result.h2
-rw-r--r--source/blender/render/intern/include/render_types.h2
-rw-r--r--source/blender/render/intern/source/external_engine.c9
-rw-r--r--source/blender/render/intern/source/pipeline.c18
6 files changed, 22 insertions, 12 deletions
diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt
index d3fef51e9e9..8f921d7850a 100644
--- a/source/blender/render/CMakeLists.txt
+++ b/source/blender/render/CMakeLists.txt
@@ -37,6 +37,7 @@ set(INC
../nodes
../physics
../draw
+ ../gpu
../../../intern/atomic
../../../intern/guardedalloc
../../../intern/mikktspace
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index cb32efb0b0f..df8953857ee 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -315,7 +315,7 @@ void RE_current_scene_update_cb(struct Render *re, void *handle, void (*f)(void
void RE_gl_context_create(Render *re);
void RE_gl_context_destroy(Render *re);
void *RE_gl_context_get(Render *re);
-void *RE_gwn_context_get(Render *re);
+void *RE_gpu_context_get(Render *re);
/* should move to kernel once... still unsure on how/where */
float RE_filter_value(int type, float x);
diff --git a/source/blender/render/intern/include/render_result.h b/source/blender/render/intern/include/render_result.h
index 3096949b49f..ab7eee128f0 100644
--- a/source/blender/render/intern/include/render_result.h
+++ b/source/blender/render/intern/include/render_result.h
@@ -123,7 +123,7 @@ bool render_result_has_views(struct RenderResult *rr);
iter_ != NULL; \
iter_ = iter_->next, nr_++) \
{ \
- if ((re_)->r.scemode & R_SINGLE_LAYER) { \
+ if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
if (nr_ != re->active_view_layer) { \
continue; \
} \
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index 117b82570e7..5d5d12f028a 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -160,7 +160,7 @@ struct Render {
/* TODO replace by a whole draw manager. */
void *gl_context;
- void *gwn_context;
+ void *gpu_context;
};
/* **************** defines ********************* */
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 5c3f510ffca..09ab3e39d5f 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -739,7 +739,16 @@ int RE_engine_render(Render *re, int do_all)
type->render(engine, engine->depsgraph);
+ /* grease pencil render over previous render result */
+ if (!RE_engine_test_break(engine)) {
+ DRW_render_gpencil(engine, engine->depsgraph);
+ }
+
engine_depsgraph_free(engine);
+
+ if (RE_engine_test_break(engine)) {
+ break;
+ }
}
FOREACH_VIEW_LAYER_TO_RENDER_END;
}
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 82595527d30..510a4aa4685 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -97,7 +97,7 @@
#include "../../../windowmanager/WM_api.h" /* XXX */
#include "../../../windowmanager/wm_window.h" /* XXX */
-#include "../../../intern/gawain/gawain/gwn_context.h"
+#include "GPU_context.h"
#ifdef WITH_FREESTYLE
# include "FRS_freestyle.h"
@@ -1043,10 +1043,10 @@ void RE_gl_context_create(Render *re)
void RE_gl_context_destroy(Render *re)
{
/* Needs to be called from the thread which used the ogl context for rendering. */
- if (re->gwn_context) {
- GWN_context_active_set(re->gwn_context);
- GWN_context_discard(re->gwn_context);
- re->gwn_context = NULL;
+ if (re->gpu_context) {
+ GPU_context_active_set(re->gpu_context);
+ GPU_context_discard(re->gpu_context);
+ re->gpu_context = NULL;
}
if (re->gl_context) {
WM_opengl_context_dispose(re->gl_context);
@@ -1059,12 +1059,12 @@ void *RE_gl_context_get(Render *re)
return re->gl_context;
}
-void *RE_gwn_context_get(Render *re)
+void *RE_gpu_context_get(Render *re)
{
- if (re->gwn_context == NULL) {
- re->gwn_context = GWN_context_create();
+ if (re->gpu_context == NULL) {
+ re->gpu_context = GPU_context_create();
}
- return re->gwn_context;
+ return re->gpu_context;
}
/* ********* add object data (later) ******** */