diff --git a/source/gameengine/VideoTexture/Exception.cpp b/source/gameengine/VideoTexture/Exception.cpp index 9f82987ea62a..c12ffb3be26d 100644 --- a/source/gameengine/VideoTexture/Exception.cpp +++ b/source/gameengine/VideoTexture/Exception.cpp @@ -209,6 +209,7 @@ void registerAllExceptions(void) { errGenerDesc.registerDesc(); errNFoundDesc.registerDesc(); + TextureNotAvailDesc.registerDesc(); MaterialNotAvailDesc.registerDesc(); ImageSizesNotMatchDesc.registerDesc(); ImageHasExportsDesc.registerDesc(); diff --git a/source/gameengine/VideoTexture/Exception.h b/source/gameengine/VideoTexture/Exception.h index c4de85ff34d8..9bf33e314079 100644 --- a/source/gameengine/VideoTexture/Exception.h +++ b/source/gameengine/VideoTexture/Exception.h @@ -206,6 +206,7 @@ class Exception : public std::exception }; extern ExpDesc MaterialNotAvailDesc; +extern ExpDesc TextureNotAvailDesc; extern ExpDesc ImageSizesNotMatchDesc; extern ExpDesc ImageHasExportsDesc; extern ExpDesc InvalidColorChannelDesc; diff --git a/source/gameengine/VideoTexture/Texture.cpp b/source/gameengine/VideoTexture/Texture.cpp index 188bf094df82..20da557801a1 100644 --- a/source/gameengine/VideoTexture/Texture.cpp +++ b/source/gameengine/VideoTexture/Texture.cpp @@ -209,6 +209,9 @@ static void Texture_dealloc(Texture *self) ExceptionID MaterialNotAvail; ExpDesc MaterialNotAvailDesc(MaterialNotAvail, "Texture material is not available"); +ExceptionID TextureNotAvail; +ExpDesc TextureNotAvailDesc(TextureNotAvail, "Texture is not available"); + // Texture object initialization static int Texture_init(Texture *self, PyObject *args, PyObject *kwds) { @@ -242,6 +245,9 @@ static int Texture_init(Texture *self, PyObject *args, PyObject *kwds) { // get blender material texture self->m_matTexture = mat->GetTexture(texID); + if (!self->m_matTexture) { + THRWEXCP(TextureNotAvail, S_OK); + } self->m_imgTexture = self->m_matTexture->GetImage(); self->m_useMatTexture = true; } diff --git a/source/gameengine/VideoTexture/Texture.h b/source/gameengine/VideoTexture/Texture.h index be859f11b52d..30912312f27b 100644 --- a/source/gameengine/VideoTexture/Texture.h +++ b/source/gameengine/VideoTexture/Texture.h @@ -97,5 +97,6 @@ short getMaterialID(PyObject *obj, const char *name); // Exceptions extern ExceptionID MaterialNotAvail; +extern ExceptionID TextureNotAvail; #endif