Revert "Fix T89204: slow repeated rendering with GPUOffscreen.draw_view3d"
This reverts commit d03b26edbd
. There is some
refresh issue that needs to be solved before this can be enabled.
This commit is contained in:
@@ -44,7 +44,6 @@
|
|||||||
#include "GPU_context.h"
|
#include "GPU_context.h"
|
||||||
#include "GPU_framebuffer.h"
|
#include "GPU_framebuffer.h"
|
||||||
#include "GPU_texture.h"
|
#include "GPU_texture.h"
|
||||||
#include "GPU_viewport.h"
|
|
||||||
|
|
||||||
#include "ED_view3d.h"
|
#include "ED_view3d.h"
|
||||||
#include "ED_view3d_offscreen.h"
|
#include "ED_view3d_offscreen.h"
|
||||||
@@ -343,10 +342,6 @@ static PyObject *pygpu_offscreen_draw_view3d(BPyGPUOffScreen *self, PyObject *ar
|
|||||||
|
|
||||||
GPU_offscreen_bind(self->ofs, true);
|
GPU_offscreen_bind(self->ofs, true);
|
||||||
|
|
||||||
if (!self->viewport) {
|
|
||||||
self->viewport = GPU_viewport_create();
|
|
||||||
}
|
|
||||||
|
|
||||||
ED_view3d_draw_offscreen(depsgraph,
|
ED_view3d_draw_offscreen(depsgraph,
|
||||||
scene,
|
scene,
|
||||||
v3d->shading.type,
|
v3d->shading.type,
|
||||||
@@ -362,7 +357,7 @@ static PyObject *pygpu_offscreen_draw_view3d(BPyGPUOffScreen *self, PyObject *ar
|
|||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
self->ofs,
|
self->ofs,
|
||||||
self->viewport);
|
NULL);
|
||||||
|
|
||||||
GPU_offscreen_unbind(self->ofs, true);
|
GPU_offscreen_unbind(self->ofs, true);
|
||||||
|
|
||||||
@@ -383,10 +378,6 @@ static PyObject *pygpu_offscreen_free(BPyGPUOffScreen *self)
|
|||||||
{
|
{
|
||||||
BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
|
BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
|
||||||
|
|
||||||
if (self->viewport) {
|
|
||||||
GPU_viewport_free(self->viewport);
|
|
||||||
self->viewport = NULL;
|
|
||||||
}
|
|
||||||
GPU_offscreen_free(self->ofs);
|
GPU_offscreen_free(self->ofs);
|
||||||
self->ofs = NULL;
|
self->ofs = NULL;
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
@@ -395,9 +386,6 @@ static PyObject *pygpu_offscreen_free(BPyGPUOffScreen *self)
|
|||||||
|
|
||||||
static void BPyGPUOffScreen__tp_dealloc(BPyGPUOffScreen *self)
|
static void BPyGPUOffScreen__tp_dealloc(BPyGPUOffScreen *self)
|
||||||
{
|
{
|
||||||
if (self->viewport) {
|
|
||||||
GPU_viewport_free(self->viewport);
|
|
||||||
}
|
|
||||||
if (self->ofs) {
|
if (self->ofs) {
|
||||||
GPU_offscreen_free(self->ofs);
|
GPU_offscreen_free(self->ofs);
|
||||||
}
|
}
|
||||||
@@ -468,7 +456,6 @@ PyObject *BPyGPUOffScreen_CreatePyObject(GPUOffScreen *ofs)
|
|||||||
|
|
||||||
self = PyObject_New(BPyGPUOffScreen, &BPyGPUOffScreen_Type);
|
self = PyObject_New(BPyGPUOffScreen, &BPyGPUOffScreen_Type);
|
||||||
self->ofs = ofs;
|
self->ofs = ofs;
|
||||||
self->viewport = NULL;
|
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
@@ -26,12 +26,8 @@ extern PyTypeObject BPyGPUOffScreen_Type;
|
|||||||
|
|
||||||
#define BPyGPUOffScreen_Check(v) (Py_TYPE(v) == &BPyGPUOffScreen_Type)
|
#define BPyGPUOffScreen_Check(v) (Py_TYPE(v) == &BPyGPUOffScreen_Type)
|
||||||
|
|
||||||
struct GPUOffscreen;
|
|
||||||
struct GPUViewport;
|
|
||||||
|
|
||||||
typedef struct BPyGPUOffScreen {
|
typedef struct BPyGPUOffScreen {
|
||||||
PyObject_HEAD struct GPUOffScreen *ofs;
|
PyObject_HEAD struct GPUOffScreen *ofs;
|
||||||
struct GPUViewport *viewport;
|
|
||||||
} BPyGPUOffScreen;
|
} BPyGPUOffScreen;
|
||||||
|
|
||||||
PyObject *BPyGPUOffScreen_CreatePyObject(struct GPUOffScreen *ofs) ATTR_NONNULL(1);
|
PyObject *BPyGPUOffScreen_CreatePyObject(struct GPUOffScreen *ofs) ATTR_NONNULL(1);
|
||||||
|
Reference in New Issue
Block a user