diff options
Diffstat (limited to 'source/gameengine/VideoTexture/ImageRender.cpp')
-rw-r--r-- | source/gameengine/VideoTexture/ImageRender.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/source/gameengine/VideoTexture/ImageRender.cpp b/source/gameengine/VideoTexture/ImageRender.cpp index 62594f9552c..7580563a74f 100644 --- a/source/gameengine/VideoTexture/ImageRender.cpp +++ b/source/gameengine/VideoTexture/ImageRender.cpp @@ -92,7 +92,7 @@ void ImageRender::setBackground (int red, int green, int blue, int alpha) // capture image from viewport -void ImageRender::calcImage (unsigned int texId) +void ImageRender::calcImage (unsigned int texId, double ts) { if (m_rasterizer->GetDrawingMode() != RAS_IRasterizer::KX_TEXTURED || // no need for texture m_camera->GetViewport() || // camera must be inactive @@ -105,7 +105,7 @@ void ImageRender::calcImage (unsigned int texId) // render the scene from the camera Render(); // get image from viewport - ImageViewport::calcImage(texId); + ImageViewport::calcImage(texId, ts); // restore OpenGL state m_canvas->EndFrame(); } @@ -282,9 +282,10 @@ static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds // camera object PyObject * camera; // parameter keywords - static char *kwlist[] = {"sceneObj", "cameraObj", NULL}; + static const char *kwlist[] = {"sceneObj", "cameraObj", NULL}; // get parameters - if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO", kwlist, &scene, &camera)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO", + const_cast<char**>(kwlist), &scene, &camera)) return -1; try { @@ -364,6 +365,7 @@ static PyGetSetDef imageRenderGetSets[] = {(char*)"alpha", (getter)ImageViewport_getAlpha, (setter)ImageViewport_setAlpha, (char*)"use alpha in texture", NULL}, {(char*)"whole", (getter)ImageViewport_getWhole, (setter)ImageViewport_setWhole, (char*)"use whole viewport to render", NULL}, // attributes from ImageBase class + {(char*)"valid", (getter)Image_valid, NULL, (char*)"bool to tell if an image is available", NULL}, {(char*)"image", (getter)Image_getImage, NULL, (char*)"image data", NULL}, {(char*)"size", (getter)Image_getSize, NULL, (char*)"image size", NULL}, {(char*)"scale", (getter)Image_getScale, (setter)Image_setScale, (char*)"fast scale of image (near neighbour)", NULL}, @@ -394,7 +396,7 @@ PyTypeObject ImageRenderType = 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ + &imageBufferProcs, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "Image source from render", /* tp_doc */ 0, /* tp_traverse */ @@ -428,9 +430,10 @@ static int ImageMirror_init (PyObject * pySelf, PyObject * args, PyObject * kwds // material of the mirror short materialID = 0; // parameter keywords - static char *kwlist[] = {"scene", "observer", "mirror", "material", NULL}; + static const char *kwlist[] = {"scene", "observer", "mirror", "material", NULL}; // get parameters - if (!PyArg_ParseTupleAndKeywords(args, kwds, "OOO|h", kwlist, &scene, &observer, &mirror, &materialID)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "OOO|h", + const_cast<char**>(kwlist), &scene, &observer, &mirror, &materialID)) return -1; try { @@ -524,6 +527,7 @@ static PyGetSetDef imageMirrorGetSets[] = {(char*)"alpha", (getter)ImageViewport_getAlpha, (setter)ImageViewport_setAlpha, (char*)"use alpha in texture", NULL}, {(char*)"whole", (getter)ImageViewport_getWhole, (setter)ImageViewport_setWhole, (char*)"use whole viewport to render", NULL}, // attributes from ImageBase class + {(char*)"valid", (getter)Image_valid, NULL, (char*)"bool to tell if an image is available", NULL}, {(char*)"image", (getter)Image_getImage, NULL, (char*)"image data", NULL}, {(char*)"size", (getter)Image_getSize, NULL, (char*)"image size", NULL}, {(char*)"scale", (getter)Image_getScale, (setter)Image_setScale, (char*)"fast scale of image (near neighbour)", NULL}, @@ -650,8 +654,7 @@ ImageRender::ImageRender (KX_Scene * scene, KX_GameObject * observer, KX_GameObj } // compute rotation matrix between local coord and mirror coord // to match camera orientation, we select mirror z = -normal, y = up, x = y x z - copy_v3_v3(mirrorMat[2], mirrorNormal); - mul_v3_fl(mirrorMat[2], -1.0f); + negate_v3_v3(mirrorMat[2], mirrorNormal); copy_v3_v3(mirrorMat[1], mirrorUp); cross_v3_v3v3(mirrorMat[0], mirrorMat[1], mirrorMat[2]); // transpose to make it a orientation matrix from local space to mirror space @@ -727,7 +730,7 @@ PyTypeObject ImageMirrorType = 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ + &imageBufferProcs, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "Image source from mirror", /* tp_doc */ 0, /* tp_traverse */ |