[Bf-blender-cvs] [c61b5b9] framebuffer: From review: pass scene, view3d and region as arguments
Dalai Felinto
noreply at git.blender.org
Mon Oct 19 15:38:18 CEST 2015
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);
More information about the Bf-blender-cvs
mailing list