forked from Mirrorlandia_minetest/minetest
Make camera.cpp Irrlicht 1.8-compatible by calling ITexture::lock differently depending on the irrlicht version.
This commit is contained in:
parent
63d3403a20
commit
1901158b3e
@ -29,6 +29,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "nodedef.h" // For wield visualization
|
#include "nodedef.h" // For wield visualization
|
||||||
|
|
||||||
|
// In Irrlicht 1.8 the signature of ITexture::lock was changed from
|
||||||
|
// (bool, u32) to (E_TEXTURE_LOCK_MODE, u32).
|
||||||
|
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 7
|
||||||
|
#define MY_ETLM_READ_ONLY true
|
||||||
|
#else
|
||||||
|
#define MY_ETLM_READ_ONLY video::ETLM_READ_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control):
|
Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control):
|
||||||
m_smgr(smgr),
|
m_smgr(smgr),
|
||||||
m_playernode(NULL),
|
m_playernode(NULL),
|
||||||
@ -832,7 +840,7 @@ scene::IAnimatedMesh* ExtrudedSpriteSceneNode::extrude(video::ITexture* texture)
|
|||||||
{
|
{
|
||||||
// Texture is in the correct color format, we can pass it
|
// Texture is in the correct color format, we can pass it
|
||||||
// to extrudeARGB right away.
|
// to extrudeARGB right away.
|
||||||
void* data = texture->lock(true);
|
void* data = texture->lock(MY_ETLM_READ_ONLY);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
mesh = extrudeARGB(size.Width, size.Height, (u8*) data);
|
mesh = extrudeARGB(size.Width, size.Height, (u8*) data);
|
||||||
@ -842,7 +850,7 @@ scene::IAnimatedMesh* ExtrudedSpriteSceneNode::extrude(video::ITexture* texture)
|
|||||||
{
|
{
|
||||||
video::IVideoDriver* driver = SceneManager->getVideoDriver();
|
video::IVideoDriver* driver = SceneManager->getVideoDriver();
|
||||||
|
|
||||||
video::IImage* img1 = driver->createImageFromData(format, size, texture->lock(true));
|
video::IImage* img1 = driver->createImageFromData(format, size, texture->lock(MY_ETLM_READ_ONLY));
|
||||||
if (img1 == NULL)
|
if (img1 == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user