Commit: c61b5b949de99fce583b07a8171895586873c1f9
Author: Dalai Felinto
Date:   Mon Oct 19 11:17:00 2015 -0200
Branches: framebuffer
https://developer.blender.org/rBc61b5b949de99fce583b07a8171895586873c1f9

>From review: pass scene, view3d and region as arguments

===================================================================

M       source/blender/python/intern/gpu_offscreen.c

===================================================================

diff --git a/source/blender/python/intern/gpu_offscreen.c 
b/source/blender/python/intern/gpu_offscreen.c
index 3da7f72..19f257f 100644
--- a/source/blender/python/intern/gpu_offscreen.c
+++ b/source/blender/python/intern/gpu_offscreen.c
@@ -43,8 +43,6 @@
 
 #include "BLI_utildefines.h"
 
-#include "BKE_context.h"
-
 #include "WM_types.h"
 
 #include "ED_screen.h"
@@ -216,39 +214,49 @@ static PyObject 
*pygpu_offscreen_draw_view3d(PyGPUOffScreen *self, PyObject *arg
 {
        MatrixObject *PyModelViewMatrix;
        MatrixObject *PyProjectionMatrix;
-       bContext *C;
+
+       PyObject *pyscene;
+       PyObject *pyregion;
+       PyObject *pyview3d;
+
        Scene *scene;
        View3D *v3d;
        ARegion *ar;
        GPUFX *fx;
 
-       static const char *kwlist[] = {"projection_matrix", "modelview_matrix", 
NULL};
+       static const char *kwlist[] = {"scene", "region", "view3d", 
"projection_matrix", "modelview_matrix", NULL};
 
        BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "draw_view3d");
 
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&O&:draw_view3d", (char 
**)(kwlist),
+       if (!PyArg_ParseTupleAndKeywords(args, kwds, "OOOO&O&:draw_view3d", 
(char **)(kwlist),
+                                        &pyscene, &pyregion, &pyview3d,
                                         pygpu_offscreen_check_matrix, 
&PyProjectionMatrix,
                                         pygpu_offscreen_check_matrix, 
&PyModelViewMatrix))
        {
                return NULL;
        }
 
-       C = BPy_GetContext();
-       v3d = CTX_wm_view3d(C);
-       scene = CTX_data_scene(C);
-       ar = CTX_wm_region(C);
+       scene = (Scene *)PyC_RNA_AsPointer(pyscene, "Scene");
+       if (scene == NULL) {
+               PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid 
scene");
+               return NULL;
+       }
 
-       if ((v3d == NULL) || (ar == NULL)) {
-               PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid 
view3d in the context");
+       ar = (ARegion *)PyC_RNA_AsPointer(pyregion, "ARegion");
+       if (ar== NULL) {
+               PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid 
region");
                return NULL;
        }
 
-       fx = GPU_fx_compositor_create();
+       v3d = (View3D *)PyC_RNA_AsPointer(pyview3d, "View3D");
+       if (ar== NULL) {
+               PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid 3d 
view");
+               return NULL;
+       }
 
-       /* full copy */
-       GPUFXSettings fx_settings = v3d->fx_settings;
+       fx = GPU_fx_compositor_create();
 
-       GPU_offscreen_draw_view3d(self->ofs, C, 
(float(*)[4])PyProjectionMatrix->matrix, 
(float(*)[4])PyModelViewMatrix->matrix);
+       GPUFXSettings fx_settings = v3d->fx_settings; /* full copy */
 
        ED_view3d_draw_offscreen_init(scene, v3d);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to