BGE Video Texture: fix constant initializer problem with Exception description. Uniformized the line ending.

This commit is contained in:
Benoit Bolsee 2008-11-01 12:48:46 +00:00
parent b590b121d3
commit 54401d36aa
7 changed files with 40 additions and 9 deletions

@ -44,7 +44,6 @@ ExpDesc errNFoundDesc (ErrNotFound, "Error description not found");
ExpDesc::ExpDesc (ExceptionID & exp, char * desc, RESULT hres) ExpDesc::ExpDesc (ExceptionID & exp, char * desc, RESULT hres)
: m_expID(exp), m_hRslt(hres), m_description(desc) : m_expID(exp), m_hRslt(hres), m_description(desc)
{ {
m_expDescs.push_back(this);
} }
// destructor // destructor
@ -196,3 +195,15 @@ void Exception::copy (const Exception & xpt)
m_fileName = xpt.m_fileName; m_fileName = xpt.m_fileName;
m_line = xpt.m_line; m_line = xpt.m_line;
} }
void registerAllExceptions(void)
{
errGenerDesc.registerDesc();
errNFoundDesc.registerDesc();
MaterialNotAvailDesc.registerDesc();
ImageSizesNotMatchDesc.registerDesc();
SceneInvalidDesc.registerDesc();
CameraInvalidDesc.registerDesc();
SourceVideoEmptyDesc.registerDesc();
SourceVideoCreationDesc.registerDesc();
}

@ -27,6 +27,7 @@ http://www.gnu.org/copyleft/lesser.txt.
#include <exception> #include <exception>
#include <vector> #include <vector>
#include <string> #include <string>
#include <algorithm>
#include "Common.h" #include "Common.h"
@ -117,6 +118,11 @@ public:
desc = m_description; desc = m_description;
} }
void registerDesc(void)
{
if (std::find(m_expDescs.begin(), m_expDescs.end(), this) == m_expDescs.end())
m_expDescs.push_back(this);
}
// list of exception descriptions // list of exception descriptions
static std::vector<ExpDesc*> m_expDescs; static std::vector<ExpDesc*> m_expDescs;
@ -192,4 +198,13 @@ protected:
}; };
extern ExpDesc MaterialNotAvailDesc;
extern ExpDesc ImageSizesNotMatchDesc;
extern ExpDesc SceneInvalidDesc;
extern ExpDesc CameraInvalidDesc;
extern ExpDesc SourceVideoEmptyDesc;
extern ExpDesc SourceVideoCreationDesc;
void registerAllExceptions(void);
#endif #endif

@ -58,9 +58,9 @@ bool ImageMix::setWeight (const char * id, short weight)
return true; return true;
} }
static ExceptionID ImageSizesNotMatch; ExceptionID ImageSizesNotMatch;
static ExpDesc ImageSizesNotMatchDesc (ImageSizesNotMatch, "Image sizes of sources are different"); ExpDesc ImageSizesNotMatchDesc (ImageSizesNotMatch, "Image sizes of sources are different");
// calculate image from sources and set its availability // calculate image from sources and set its availability
void ImageMix::calcImage (unsigned int texId) void ImageMix::calcImage (unsigned int texId)

@ -94,6 +94,10 @@ void ImageRender::calcImage (unsigned int texId)
ImageViewport::calcImage(texId); ImageViewport::calcImage(texId);
} }
void ImageRender::Render()
{
//
}
// refresh lights // refresh lights
void ImageRender::refreshLights (void) void ImageRender::refreshLights (void)
@ -120,9 +124,9 @@ BlendType<KX_Scene> sceneType ("KX_Scene");
BlendType<KX_Camera> cameraType ("KX_Camera"); BlendType<KX_Camera> cameraType ("KX_Camera");
static ExceptionID SceneInvalid, CameraInvalid; ExceptionID SceneInvalid, CameraInvalid;
static ExpDesc SceneInvalidDesc (SceneInvalid, "Scene object is invalid"); ExpDesc SceneInvalidDesc (SceneInvalid, "Scene object is invalid");
static ExpDesc CameraInvalidDesc (CameraInvalid, "Camera object is invalid"); ExpDesc CameraInvalidDesc (CameraInvalid, "Camera object is invalid");
// object initialization // object initialization
static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds) static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds)

@ -165,8 +165,8 @@ void Texture_dealloc (Texture * self)
} }
static ExceptionID MaterialNotAvail; ExceptionID MaterialNotAvail;
static ExpDesc MaterialNotAvailDesc (MaterialNotAvail, "Texture material is not available"); ExpDesc MaterialNotAvailDesc (MaterialNotAvail, "Texture material is not available");
// Texture object initialization // Texture object initialization
int Texture_init (Texture *self, PyObject *args, PyObject *kwds) int Texture_init (Texture *self, PyObject *args, PyObject *kwds)

@ -265,7 +265,7 @@ void VideoFFmpeg::openCam (char * file, short camIdx)
AVInputFormat *inputFormat; AVInputFormat *inputFormat;
AVFormatParameters formatParams; AVFormatParameters formatParams;
AVRational frameRate; AVRational frameRate;
char *p, filename[28], rateStr[20]; char filename[28], rateStr[20];
do_init_ffmpeg(); do_init_ffmpeg();

@ -174,6 +174,7 @@ PyObject* initVideoTexture(void)
// prepare classes // prepare classes
registerAllTypes(); registerAllTypes();
registerAllExceptions();
if (!pyImageTypes.ready()) if (!pyImageTypes.ready())
return NULL; return NULL;