[Bf-blender-cvs] [1cf325ac9a6] temp-workspace-changes: Use workspace -> engine in the opengl render
Dalai Felinto
noreply at git.blender.org
Thu Sep 14 12:09:58 CEST 2017
Commit: 1cf325ac9a651b019fe5fe2629d0d813ddb14593
Author: Dalai Felinto
Date: Fri Sep 8 23:41:03 2017 +0200
Branches: temp-workspace-changes
https://developer.blender.org/rB1cf325ac9a651b019fe5fe2629d0d813ddb14593
Use workspace -> engine in the opengl render
===================================================================
M source/blender/blenkernel/BKE_sequencer.h
M source/blender/blenkernel/intern/sequencer.c
M source/blender/draw/DRW_engine.h
M source/blender/draw/intern/draw_manager.c
M source/blender/editors/include/ED_view3d.h
M source/blender/editors/render/render_opengl.c
M source/blender/editors/sculpt_paint/paint_image_proj.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_draw_legacy.c
M source/blender/windowmanager/intern/wm_files.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index bcc06a4ab25..5b269fc4aad 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -46,8 +46,8 @@ struct SequenceModifierData;
struct Stereo3dFormat;
struct StripElem;
struct bSound;
-
struct SeqIndexBuildContext;
+struct WorkSpace;
#define EARLY_NO_INPUT -1
#define EARLY_DO_EFFECT 0
@@ -422,7 +422,8 @@ struct Sequence *BKE_sequencer_add_movie_strip(struct bContext *C, ListBase *seq
/* view3d draw callback, run when not in background view */
typedef struct ImBuf *(*SequencerDrawView)(
- const struct EvaluationContext *eval_ctx, struct Scene *, struct SceneLayer *sl, struct Object *, int, int,
+ const struct EvaluationContext *eval_ctx, struct Scene *, const struct WorkSpace *,
+ struct SceneLayer *sl, struct Object *, int, int,
unsigned int, int, bool, bool, bool,
int, int, bool, const char *,
struct GPUFX *, struct GPUOffScreen *, char[256]);
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 4818c7a0217..d4f392fe126 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -3311,7 +3311,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
BKE_scene_update_for_newframe(context->eval_ctx, context->bmain, scene);
ibuf = sequencer_view3d_cb(
/* set for OpenGL render (NULL when scrubbing) */
- context->eval_ctx, scene, BKE_scene_layer_from_scene_get(scene), camera, width, height, IB_rect,
+ context->eval_ctx, scene, NULL, BKE_scene_layer_from_scene_get(scene), camera, width, height, IB_rect,
context->scene->r.seq_prev_type,
(context->scene->r.seq_flag & R_SEQ_SOLID_TEX) != 0,
use_gpencil, use_background, scene->r.alphamode,
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index 190c5c0f8f6..7d827e12f99 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -67,7 +67,7 @@ void DRW_engine_viewport_data_size_get(
void DRW_draw_view(const struct bContext *C);
void DRW_draw_render_loop_ex(
- struct WorkSpace *workspace,
+ const struct WorkSpace *workspace,
struct Depsgraph *graph,
struct ARegion *ar, struct View3D *v3d,
const struct bContext *evil_C);
@@ -75,6 +75,7 @@ void DRW_draw_render_loop(
struct Depsgraph *graph,
struct ARegion *ar, struct View3D *v3d);
void DRW_draw_render_loop_offscreen(
+ const struct WorkSpace *workspace,
struct Depsgraph *graph,
struct ARegion *ar, struct View3D *v3d,
struct GPUOffScreen *ofs);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 42895979be9..b543868a81c 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -3149,7 +3149,7 @@ void DRW_draw_view(const bContext *C)
* Need to reset DST before calling this function
*/
void DRW_draw_render_loop_ex(
- struct WorkSpace *workspace,
+ const struct WorkSpace *workspace,
struct Depsgraph *graph,
ARegion *ar, View3D *v3d,
const bContext *evil_C)
@@ -3260,6 +3260,7 @@ void DRW_draw_render_loop(
}
void DRW_draw_render_loop_offscreen(
+ const struct WorkSpace *workspace,
struct Depsgraph *graph,
ARegion *ar, View3D *v3d, GPUOffScreen *ofs)
{
@@ -3275,7 +3276,7 @@ void DRW_draw_render_loop_offscreen(
/* Reset before using it. */
memset(&DST, 0x0, sizeof(DST));
DST.options.is_image_render = true;
- DRW_draw_render_loop_ex(NULL, graph, ar, v3d, NULL);
+ DRW_draw_render_loop_ex(workspace, graph, ar, v3d, NULL);
/* restore */
{
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index 0dcfd68c0f1..767e4c91212 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -68,6 +68,7 @@ struct wmWindowManager;
struct GPUFX;
struct GPUOffScreen;
struct GPUFXSettings;
+struct WorkSpace;
enum eGPUFXFlags;
/* for derivedmesh drawing callbacks, for view3d_select, .... */
@@ -371,7 +372,8 @@ bool ED_view3d_context_activate(struct bContext *C);
void ED_view3d_draw_offscreen_init(
const struct EvaluationContext *eval_ctx, struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d);
void ED_view3d_draw_offscreen(
- const struct EvaluationContext *eval_ctx, struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4],
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, const struct WorkSpace *workspace,
+ struct SceneLayer *sl, struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4],
float winmat[4][4], bool do_bgpic, bool do_sky, bool is_persp, const char *viewname,
struct GPUFX *fx, struct GPUFXSettings *fx_settings,
struct GPUOffScreen *ofs);
@@ -380,12 +382,14 @@ void ED_view3d_draw_setup_view(
float viewmat[4][4], float winmat[4][4], const struct rcti *rect);
struct ImBuf *ED_view3d_draw_offscreen_imbuf(
- const struct EvaluationContext *eval_ctx, struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d, struct ARegion *ar,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, const struct WorkSpace *workspace,
+ struct SceneLayer *sl, struct View3D *v3d, struct ARegion *ar,
int sizex, int sizey, unsigned int flag, bool draw_background,
int alpha_mode, int samples, bool full_samples, const char *viewname,
struct GPUFX *fx, struct GPUOffScreen *ofs, char err_out[256]);
struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple(
- const struct EvaluationContext *eval_ctx, struct Scene *scene, struct SceneLayer *sl, struct Object *camera, int width, int height,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, const struct WorkSpace *workspace,
+ struct SceneLayer *sl, struct Object *camera, int width, int height,
unsigned int flag, int drawtype, bool use_solid_tex, bool use_gpencil, bool draw_background,
int alpha_mode, int samples, bool full_samples, const char *viewname,
struct GPUFX *fx, struct GPUOffScreen *ofs, char err_out[256]);
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 47e8a64cb0b..d65d0d4bd18 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -94,6 +94,7 @@ typedef struct OGLRender {
Main *bmain;
Render *re;
Scene *scene;
+ WorkSpace *workspace;
SceneLayer *scene_layer;
View3D *v3d;
@@ -267,6 +268,7 @@ static void screen_opengl_views_setup(OGLRender *oglrender)
static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, RenderResult *rr)
{
Scene *scene = oglrender->scene;
+ WorkSpace *workspace = oglrender->workspace;
SceneLayer *sl = oglrender->scene_layer;
ARegion *ar = oglrender->ar;
View3D *v3d = oglrender->v3d;
@@ -352,7 +354,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R
if (view_context) {
ibuf_view = ED_view3d_draw_offscreen_imbuf(
- &eval_ctx, scene, sl, v3d, ar, sizex, sizey,
+ &eval_ctx, scene, workspace, sl, v3d, ar, sizex, sizey,
IB_rect, draw_bgpic,
alpha_mode, oglrender->ofs_samples, oglrender->ofs_full_samples, viewname,
oglrender->fx, oglrender->ofs, err_out);
@@ -364,7 +366,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R
}
else {
ibuf_view = ED_view3d_draw_offscreen_imbuf_simple(
- &eval_ctx, scene, sl, scene->camera, oglrender->sizex, oglrender->sizey,
+ &eval_ctx, scene, workspace, sl, scene->camera, oglrender->sizex, oglrender->sizey,
IB_rect, OB_SOLID, false, true, true,
alpha_mode, oglrender->ofs_samples, oglrender->ofs_full_samples, viewname,
oglrender->fx, oglrender->ofs, err_out);
@@ -662,6 +664,7 @@ static bool screen_opengl_render_init(bContext *C, wmOperator *op)
oglrender->sizey = sizey;
oglrender->bmain = CTX_data_main(C);
oglrender->scene = scene;
+ oglrender->workspace = CTX_wm_workspace(C);
oglrender->scene_layer = CTX_data_scene_layer(C);
oglrender->cfrao = scene->r.cfra;
diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c
index 2ffd9757f92..0c933842761 100644
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@ -5455,6 +5455,7 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op)
char filename[FILE_MAX];
Scene *scene = CTX_data_scene(C);
+ WorkSpace *workspace = CTX_wm_workspace(C);
SceneLayer *sl = CTX_data_scene_layer(C);
EvaluationContext eval_ctx;
ToolSettings *settings = scene->toolsettings;
@@ -5473,7 +5474,7 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op)
if (h > maxsize) h = maxsize;
ibuf = ED_view3d_draw_offscreen_imbuf(
- &eval_ctx, scene, sl, CTX_wm_view3d(C), CTX_wm_region(C),
+ &eval_ctx, scene, workspace, sl, CTX_wm_view3d(C), CTX_wm_region(C),
w, h, IB_rect, false, R_ALPHAPREMUL, 0, false, NULL,
NULL, NULL, err_out);
if (!ibuf) {
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 9af0be79a42..469441fd1a2 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1961,7 +1961,8 @@ static void view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar)
* stuff like shadow buffers
*/
void ED_view3d_draw_offscreen(
- const EvaluationContext *eval_ctx, Scene *scene, SceneLayer *sl, V
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list