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:
authorCampbell Barton <ideasman42@gmail.com>2009-11-09 11:03:43 +0300
committerCampbell Barton <ideasman42@gmail.com>2009-11-09 11:03:43 +0300
commitae91ca7217414038442487ec76f192fd1e5ac584 (patch)
tree00bf015e3c1e48235723ed1c73acfbfe9e7f1e2b /source/blender/editors/gpencil
parent521af99f59c2233eaf503e5a878997ccc9051362 (diff)
OpenGL grease pencil render
Algorith: needed to add some functions since offscreen render doesn't have a context pointer - draw_gpencil_3dview_ext - gpencil_data_get_active_v3d
Diffstat (limited to 'source/blender/editors/gpencil')
-rw-r--r--source/blender/editors/gpencil/drawgpencil.c19
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c7
2 files changed, 19 insertions, 7 deletions
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c
index 81ee2378717..dcd57efa926 100644
--- a/source/blender/editors/gpencil/drawgpencil.c
+++ b/source/blender/editors/gpencil/drawgpencil.c
@@ -744,22 +744,27 @@ void draw_gpencil_2dview (bContext *C, short onlyv2d)
/* draw grease-pencil sketches to specified 3d-view assuming that matrices are already set correctly
* Note: this gets called twice - first time with only3d=1 to draw 3d-strokes, second time with only3d=0 for screen-aligned strokes
*/
-void draw_gpencil_3dview (bContext *C, short only3d)
+void draw_gpencil_3dview_ext (Scene *scene, ARegion *ar, short only3d)
{
- ARegion *ar= CTX_wm_region(C);
- Scene *scene= CTX_data_scene(C);
bGPdata *gpd;
int dflag = 0;
-
+
/* check that we have grease-pencil stuff to draw */
- gpd= gpencil_data_get_active(C); // XXX
- if (gpd == NULL) return;
-
+ gpd= gpencil_data_get_active_v3d(scene); // XXX
+ if(gpd == NULL) return;
+
/* draw it! */
if (only3d) dflag |= (GP_DRAWDATA_ONLY3D|GP_DRAWDATA_NOSTATUS);
gp_draw_data(gpd, 0, 0, ar->winx, ar->winy, CFRA, dflag);
}
+void draw_gpencil_3dview (bContext *C, short only3d)
+{
+ ARegion *ar= CTX_wm_region(C);
+ Scene *scene= CTX_data_scene(C);
+ draw_gpencil_3dview_ext(scene, ar, only3d);
+}
+
/* draw grease-pencil sketches to opengl render window assuming that matrices are already set correctly */
// XXX porting note, ogl render will probably be a window with one 3d region
void draw_gpencil_oglrender (bContext *C)
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 8cf1affa8c6..6b76c48e1bf 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -155,6 +155,13 @@ bGPdata *gpencil_data_get_active (bContext *C)
return (gpd_ptr) ? *(gpd_ptr) : NULL;
}
+/* needed for offscreen rendering */
+bGPdata *gpencil_data_get_active_v3d (Scene *scene)
+{
+ bGPdata *gpd= scene->basact ? scene->basact->object->gpd : NULL;
+ return gpd ? gpd : scene->gpd;
+}
+
/* ************************************************ */
/* Panel Operators */