Commit 39ca2f61 authored by hybrid's avatar hybrid

Merged from branch 1.7, revisions 3944-3997. Only minor code changes, Makefile fix.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3998 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 6f1db5fc
...@@ -408,11 +408,10 @@ void CImage::fill(const SColor &color) ...@@ -408,11 +408,10 @@ void CImage::fill(const SColor &color)
return; return;
} }
break; break;
default:
// TODO: Handle other formats
return;
} }
if (Format != ECF_A1R5G5B5 && Format != ECF_R5G6B5 &&
Format != ECF_A8R8G8B8)
return;
memset32( Data, c, getImageDataSizeInBytes() ); memset32( Data, c, getImageDataSizeInBytes() );
} }
......
...@@ -28,6 +28,7 @@ CPLYMeshFileLoader::CPLYMeshFileLoader(scene::ISceneManager* smgr) ...@@ -28,6 +28,7 @@ CPLYMeshFileLoader::CPLYMeshFileLoader(scene::ISceneManager* smgr)
{ {
} }
CPLYMeshFileLoader::~CPLYMeshFileLoader() CPLYMeshFileLoader::~CPLYMeshFileLoader()
{ {
// delete the buffer in case we didn't earlier // delete the buffer in case we didn't earlier
...@@ -44,6 +45,7 @@ CPLYMeshFileLoader::~CPLYMeshFileLoader() ...@@ -44,6 +45,7 @@ CPLYMeshFileLoader::~CPLYMeshFileLoader()
ElementList.clear(); ElementList.clear();
} }
//! returns true if the file maybe is able to be loaded by this class //! returns true if the file maybe is able to be loaded by this class
bool CPLYMeshFileLoader::isALoadableFileExtension(const io::path& filename) const bool CPLYMeshFileLoader::isALoadableFileExtension(const io::path& filename) const
{ {
...@@ -80,18 +82,18 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file) ...@@ -80,18 +82,18 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
else else
{ {
// cut the next line out // cut the next line out
c8 *line = getNextLine(); getNextLine();
// grab the word from this line // grab the word from this line
c8 *word = getNextWord(); c8 *word = getNextWord();
// ignore comments // ignore comments
while (strcmp(word, "comment") == 0) while (strcmp(word, "comment") == 0)
{ {
line = getNextLine(); getNextLine();
word = getNextWord(); word = getNextWord();
} }
bool readingHeader = true; bool readingHeader = true;
bool continueReading = true; bool continueReading = true;
IsBinaryFile = false; IsBinaryFile = false;
IsWrongEndian= false; IsWrongEndian= false;
...@@ -102,8 +104,8 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file) ...@@ -102,8 +104,8 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
{ {
word = getNextWord(); word = getNextWord();
if (strcmp(word, "binary_little_endian") == 0) if (strcmp(word, "binary_little_endian") == 0)
{ {
IsBinaryFile = true; IsBinaryFile = true;
#ifdef __BIG_ENDIAN__ #ifdef __BIG_ENDIAN__
IsWrongEndian = true; IsWrongEndian = true;
...@@ -186,10 +188,10 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file) ...@@ -186,10 +188,10 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
el->Properties.push_back(prop); el->Properties.push_back(prop);
} }
} }
else if (strcmp(word, "element") == 0) else if (strcmp(word, "element") == 0)
{ {
SPLYElement* el = new SPLYElement; SPLYElement* el = new SPLYElement;
el->Name = getNextWord(); el->Name = getNextWord();
el->Count = atoi(getNextWord()); el->Count = atoi(getNextWord());
el->IsFixedWidth = true; el->IsFixedWidth = true;
el->KnownSize = 0; el->KnownSize = 0;
...@@ -218,7 +220,7 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file) ...@@ -218,7 +220,7 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
if (readingHeader && continueReading) if (readingHeader && continueReading)
{ {
line = getNextLine(); getNextLine();
word = getNextWord(); word = getNextWord();
} }
} }
...@@ -282,6 +284,7 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file) ...@@ -282,6 +284,7 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
return animMesh; return animMesh;
} }
bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicMeshBuffer* mb) bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicMeshBuffer* mb)
{ {
if (!IsBinaryFile) if (!IsBinaryFile)
...@@ -300,7 +303,7 @@ bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicM ...@@ -300,7 +303,7 @@ bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicM
{ {
E_PLY_PROPERTY_TYPE t = Element.Properties[i].Type; E_PLY_PROPERTY_TYPE t = Element.Properties[i].Type;
if (Element.Properties[i].Name == "x") if (Element.Properties[i].Name == "x")
vert.Pos.X = getFloat(t); vert.Pos.X = getFloat(t);
else if (Element.Properties[i].Name == "y") else if (Element.Properties[i].Name == "y")
vert.Pos.Z = getFloat(t); vert.Pos.Z = getFloat(t);
...@@ -354,6 +357,7 @@ bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicM ...@@ -354,6 +357,7 @@ bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicM
return result; return result;
} }
bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMeshBuffer* mb) bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMeshBuffer* mb)
{ {
if (!IsBinaryFile) if (!IsBinaryFile)
...@@ -362,7 +366,7 @@ bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMes ...@@ -362,7 +366,7 @@ bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMes
for (u32 i=0; i < Element.Properties.size(); ++i) for (u32 i=0; i < Element.Properties.size(); ++i)
{ {
if ( (Element.Properties[i].Name == "vertex_indices" || if ( (Element.Properties[i].Name == "vertex_indices" ||
Element.Properties[i].Name == "vertex_index") && Element.Properties[i].Type == EPLYPT_LIST) Element.Properties[i].Name == "vertex_index") && Element.Properties[i].Type == EPLYPT_LIST)
{ {
// get count // get count
s32 count = getInt(Element.Properties[i].Data.List.CountType); s32 count = getInt(Element.Properties[i].Data.List.CountType);
...@@ -395,6 +399,7 @@ bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMes ...@@ -395,6 +399,7 @@ bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMes
return true; return true;
} }
// skips an element and all properties. return false on EOF // skips an element and all properties. return false on EOF
void CPLYMeshFileLoader::skipElement(const SPLYElement &Element) void CPLYMeshFileLoader::skipElement(const SPLYElement &Element)
{ {
...@@ -408,6 +413,7 @@ void CPLYMeshFileLoader::skipElement(const SPLYElement &Element) ...@@ -408,6 +413,7 @@ void CPLYMeshFileLoader::skipElement(const SPLYElement &Element)
getNextLine(); getNextLine();
} }
void CPLYMeshFileLoader::skipProperty(const SPLYProperty &Property) void CPLYMeshFileLoader::skipProperty(const SPLYProperty &Property)
{ {
if (Property.Type == EPLYPT_LIST) if (Property.Type == EPLYPT_LIST)
...@@ -444,11 +450,11 @@ bool CPLYMeshFileLoader::allocateBuffer() ...@@ -444,11 +450,11 @@ bool CPLYMeshFileLoader::allocateBuffer()
// blank memory // blank memory
memset(Buffer, 0, PLY_INPUT_BUFFER_SIZE); memset(Buffer, 0, PLY_INPUT_BUFFER_SIZE);
StartPointer = Buffer; StartPointer = Buffer;
EndPointer = Buffer; EndPointer = Buffer;
LineEndPointer = Buffer-1; LineEndPointer = Buffer-1;
WordLength = -1; WordLength = -1;
EndOfFile = false; EndOfFile = false;
// get data from the file // get data from the file
fillBuffer(); fillBuffer();
...@@ -456,6 +462,7 @@ bool CPLYMeshFileLoader::allocateBuffer() ...@@ -456,6 +462,7 @@ bool CPLYMeshFileLoader::allocateBuffer()
return true; return true;
} }
// gets more data from the file. returns false on EOF // gets more data from the file. returns false on EOF
void CPLYMeshFileLoader::fillBuffer() void CPLYMeshFileLoader::fillBuffer()
{ {
...@@ -470,7 +477,7 @@ void CPLYMeshFileLoader::fillBuffer() ...@@ -470,7 +477,7 @@ void CPLYMeshFileLoader::fillBuffer()
} }
// reset start position // reset start position
StartPointer = Buffer; StartPointer = Buffer;
EndPointer = StartPointer + length; EndPointer = StartPointer + length;
if (File->getPos() == File->getSize()) if (File->getPos() == File->getSize())
{ {
...@@ -496,6 +503,7 @@ void CPLYMeshFileLoader::fillBuffer() ...@@ -496,6 +503,7 @@ void CPLYMeshFileLoader::fillBuffer()
} }
} }
// skips x bytes in the file, getting more data if required // skips x bytes in the file, getting more data if required
void CPLYMeshFileLoader::moveForward(u32 bytes) void CPLYMeshFileLoader::moveForward(u32 bytes)
{ {
...@@ -507,38 +515,39 @@ void CPLYMeshFileLoader::moveForward(u32 bytes) ...@@ -507,38 +515,39 @@ void CPLYMeshFileLoader::moveForward(u32 bytes)
StartPointer = EndPointer; StartPointer = EndPointer;
} }
E_PLY_PROPERTY_TYPE CPLYMeshFileLoader::getPropertyType(const c8* typeString) const E_PLY_PROPERTY_TYPE CPLYMeshFileLoader::getPropertyType(const c8* typeString) const
{ {
if (strcmp(typeString, "char") == 0 || if (strcmp(typeString, "char") == 0 ||
strcmp(typeString, "uchar") == 0 || strcmp(typeString, "uchar") == 0 ||
strcmp(typeString, "int8") == 0 || strcmp(typeString, "int8") == 0 ||
strcmp(typeString, "uint8") == 0) strcmp(typeString, "uint8") == 0)
{ {
return EPLYPT_INT8; return EPLYPT_INT8;
} }
else if (strcmp(typeString, "uint") == 0 || else if (strcmp(typeString, "uint") == 0 ||
strcmp(typeString, "int16") == 0 || strcmp(typeString, "int16") == 0 ||
strcmp(typeString, "uint16") == 0 || strcmp(typeString, "uint16") == 0 ||
strcmp(typeString, "short") == 0 || strcmp(typeString, "short") == 0 ||
strcmp(typeString, "ushort") == 0) strcmp(typeString, "ushort") == 0)
{ {
return EPLYPT_INT16; return EPLYPT_INT16;
} }
else if (strcmp(typeString, "int") == 0 || else if (strcmp(typeString, "int") == 0 ||
strcmp(typeString, "long") == 0 || strcmp(typeString, "long") == 0 ||
strcmp(typeString, "ulong") == 0 || strcmp(typeString, "ulong") == 0 ||
strcmp(typeString, "int32") == 0 || strcmp(typeString, "int32") == 0 ||
strcmp(typeString, "uint32") == 0) strcmp(typeString, "uint32") == 0)
{ {
return EPLYPT_INT32; return EPLYPT_INT32;
} }
else if (strcmp(typeString, "float") == 0 || else if (strcmp(typeString, "float") == 0 ||
strcmp(typeString, "float32") == 0) strcmp(typeString, "float32") == 0)
{ {
return EPLYPT_FLOAT32; return EPLYPT_FLOAT32;
} }
else if (strcmp(typeString, "float64") == 0 || else if (strcmp(typeString, "float64") == 0 ||
strcmp(typeString, "double") == 0) strcmp(typeString, "double") == 0)
{ {
return EPLYPT_FLOAT64; return EPLYPT_FLOAT64;
} }
...@@ -612,6 +621,8 @@ c8* CPLYMeshFileLoader::getNextLine() ...@@ -612,6 +621,8 @@ c8* CPLYMeshFileLoader::getNextLine()
return StartPointer; return StartPointer;
} }
} }
// null terminate the next word on the previous line and move the next word pointer along // null terminate the next word on the previous line and move the next word pointer along
// since we already have a full line in the buffer, we never need to retrieve more data // since we already have a full line in the buffer, we never need to retrieve more data
c8* CPLYMeshFileLoader::getNextWord() c8* CPLYMeshFileLoader::getNextWord()
...@@ -640,6 +651,8 @@ c8* CPLYMeshFileLoader::getNextWord() ...@@ -640,6 +651,8 @@ c8* CPLYMeshFileLoader::getNextWord()
// return pointer to the start of the word // return pointer to the start of the word
return StartPointer; return StartPointer;
} }
// read the next float from the file and move the start pointer along // read the next float from the file and move the start pointer along
f32 CPLYMeshFileLoader::getFloat(E_PLY_PROPERTY_TYPE t) f32 CPLYMeshFileLoader::getFloat(E_PLY_PROPERTY_TYPE t)
{ {
...@@ -716,6 +729,8 @@ f32 CPLYMeshFileLoader::getFloat(E_PLY_PROPERTY_TYPE t) ...@@ -716,6 +729,8 @@ f32 CPLYMeshFileLoader::getFloat(E_PLY_PROPERTY_TYPE t)
} }
return retVal; return retVal;
} }
// read the next int from the file and move the start pointer along // read the next int from the file and move the start pointer along
u32 CPLYMeshFileLoader::getInt(E_PLY_PROPERTY_TYPE t) u32 CPLYMeshFileLoader::getInt(E_PLY_PROPERTY_TYPE t)
{ {
......
...@@ -15,9 +15,10 @@ namespace scene ...@@ -15,9 +15,10 @@ namespace scene
//! constructor //! constructor
CSceneNodeAnimatorCameraMaya::CSceneNodeAnimatorCameraMaya(gui::ICursorControl* cursor, f32 rotate, f32 zoom, f32 translate) CSceneNodeAnimatorCameraMaya::CSceneNodeAnimatorCameraMaya(gui::ICursorControl* cursor, f32 rotate, f32 zoom, f32 translate)
: CursorControl(cursor), Zooming(false), Rotating(false), Moving(false), : CursorControl(cursor), OldCamera(0), MousePos(0.5f, 0.5f),
Translating(false), ZoomSpeed(zoom), RotateSpeed(rotate), TranslateSpeed(translate), ZoomSpeed(zoom), RotateSpeed(rotate), TranslateSpeed(translate),
CurrentZoom(70.0f), RotX(0.0f), RotY(0.0f), OldCamera(0), MousePos(0.5f, 0.5f) CurrentZoom(70.0f), RotX(0.0f), RotY(0.0f),
Zooming(false), Rotating(false), Moving(false), Translating(false)
{ {
#ifdef _DEBUG #ifdef _DEBUG
setDebugName("CSceneNodeAnimatorCameraMaya"); setDebugName("CSceneNodeAnimatorCameraMaya");
...@@ -89,8 +90,6 @@ bool CSceneNodeAnimatorCameraMaya::OnEvent(const SEvent& event) ...@@ -89,8 +90,6 @@ bool CSceneNodeAnimatorCameraMaya::OnEvent(const SEvent& event)
//! OnAnimate() is called just before rendering the whole scene. //! OnAnimate() is called just before rendering the whole scene.
//! nodes may calculate or store animations here, and may do other useful things,
//! dependent on what they are.
void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs) void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs)
{ {
//Alt + LM = Rotate around camera pivot //Alt + LM = Rotate around camera pivot
...@@ -103,26 +102,23 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs) ...@@ -103,26 +102,23 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs)
ICameraSceneNode* camera = static_cast<ICameraSceneNode*>(node); ICameraSceneNode* camera = static_cast<ICameraSceneNode*>(node);
// If the camera isn't the active camera, and receiving input, then don't process it. // If the camera isn't the active camera, and receiving input, then don't process it.
if(!camera->isInputReceiverEnabled()) if (!camera->isInputReceiverEnabled())
return; return;
scene::ISceneManager * smgr = camera->getSceneManager(); scene::ISceneManager * smgr = camera->getSceneManager();
if(smgr && smgr->getActiveCamera() != camera) if (smgr && smgr->getActiveCamera() != camera)
return; return;
if (OldCamera != camera) if (OldCamera != camera)
{ {
OldTarget = camera->getTarget(); LastCameraTarget = OldTarget = camera->getTarget();
OldCamera = camera; OldCamera = camera;
LastCameraTarget = OldTarget;
} }
else else
{ {
OldTarget += camera->getTarget() - LastCameraTarget; OldTarget += camera->getTarget() - LastCameraTarget;
} }
core::vector3df target = camera->getTarget();
f32 nRotX = RotX; f32 nRotX = RotX;
f32 nRotY = RotY; f32 nRotY = RotY;
f32 nZoom = CurrentZoom; f32 nZoom = CurrentZoom;
...@@ -133,7 +129,6 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs) ...@@ -133,7 +129,6 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs)
{ {
ZoomStart = MousePos; ZoomStart = MousePos;
Zooming = true; Zooming = true;
nZoom = CurrentZoom;
} }
else else
{ {
...@@ -157,15 +152,18 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs) ...@@ -157,15 +152,18 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs)
// Translation --------------------------------- // Translation ---------------------------------
core::vector3df translate(OldTarget), upVector(camera->getUpVector()); core::vector3df translate(OldTarget);
const core::vector3df upVector(camera->getUpVector());
const core::vector3df target = camera->getTarget();
core::vector3df tvectX = Pos - target; core::vector3df pos = camera->getPosition();
core::vector3df tvectX = pos - target;
tvectX = tvectX.crossProduct(upVector); tvectX = tvectX.crossProduct(upVector);
tvectX.normalize(); tvectX.normalize();
const SViewFrustum* const va = camera->getViewFrustum(); const SViewFrustum* const va = camera->getViewFrustum();
core::vector3df tvectY = (va->getFarLeftDown() - va->getFarRightDown()); core::vector3df tvectY = (va->getFarLeftDown() - va->getFarRightDown());
tvectY = tvectY.crossProduct(upVector.Y > 0 ? Pos - target : target - Pos); tvectY = tvectY.crossProduct(upVector.Y > 0 ? pos - target : target - pos);
tvectY.normalize(); tvectY.normalize();
if (isMouseKeyDown(2) && !Zooming) if (isMouseKeyDown(2) && !Zooming)
...@@ -215,32 +213,29 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs) ...@@ -215,32 +213,29 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs)
Rotating = false; Rotating = false;
} }
// Set Pos ------------------------------------ // Set pos ------------------------------------
target = translate; pos = translate;
pos.X += nZoom;
Pos.X = nZoom + target.X; pos.rotateXYBy(nRotY, translate);
Pos.Y = target.Y; pos.rotateXZBy(-nRotX, translate);
Pos.Z = target.Z;
Pos.rotateXYBy(nRotY, target); camera->setPosition(pos);
Pos.rotateXZBy(-nRotX, target); camera->setTarget(translate);
// Rotation Error ---------------------------- // Rotation Error ----------------------------
// jox: fixed bug: jitter when rotating to the top and bottom of y // jox: fixed bug: jitter when rotating to the top and bottom of y
upVector.set(0,1,0); pos.set(0,1,0);
upVector.rotateXYBy(-nRotY); pos.rotateXYBy(-nRotY);
upVector.rotateXZBy(-nRotX+180.f); pos.rotateXZBy(-nRotX+180.f);
camera->setUpVector(pos);
camera->setPosition(Pos);
camera->setTarget(target);
camera->setUpVector(upVector);
LastCameraTarget = camera->getTarget(); LastCameraTarget = camera->getTarget();
} }
bool CSceneNodeAnimatorCameraMaya::isMouseKeyDown(s32 key) bool CSceneNodeAnimatorCameraMaya::isMouseKeyDown(s32 key) const
{ {
return MouseKeys[key]; return MouseKeys[key];
} }
...@@ -294,6 +289,7 @@ f32 CSceneNodeAnimatorCameraMaya::getZoomSpeed() const ...@@ -294,6 +289,7 @@ f32 CSceneNodeAnimatorCameraMaya::getZoomSpeed() const
return ZoomSpeed; return ZoomSpeed;
} }
ISceneNodeAnimator* CSceneNodeAnimatorCameraMaya::createClone(ISceneNode* node, ISceneManager* newManager) ISceneNodeAnimator* CSceneNodeAnimatorCameraMaya::createClone(ISceneNode* node, ISceneManager* newManager)
{ {
CSceneNodeAnimatorCameraMaya * newAnimator = CSceneNodeAnimatorCameraMaya * newAnimator =
......
...@@ -80,29 +80,27 @@ namespace scene ...@@ -80,29 +80,27 @@ namespace scene
void allKeysUp(); void allKeysUp();
void animate(); void animate();
bool isMouseKeyDown(s32 key); bool isMouseKeyDown(s32 key) const;
bool MouseKeys[3]; bool MouseKeys[3];
gui::ICursorControl *CursorControl; gui::ICursorControl *CursorControl;
core::vector3df Pos; scene::ICameraSceneNode* OldCamera;
bool Zooming; core::vector3df OldTarget;
bool Rotating; core::vector3df LastCameraTarget; // to find out if the camera target was moved outside this animator
bool Moving;
bool Translating;
f32 ZoomSpeed;
f32 RotateSpeed;
f32 TranslateSpeed;
core::position2df RotateStart; core::position2df RotateStart;
core::position2df ZoomStart; core::position2df ZoomStart;
core::position2df TranslateStart; core::position2df TranslateStart;
core::position2df MousePos;
f32 ZoomSpeed;
f32 RotateSpeed;
f32 TranslateSpeed;
f32 CurrentZoom; f32 CurrentZoom;
f32 RotX, RotY; f32 RotX, RotY;
core::vector3df OldTarget; bool Zooming;
core::vector3df LastCameraTarget; // to find out if the camera target was moved outside this animator bool Rotating;
scene::ICameraSceneNode* OldCamera; bool Moving;
bool Translating;
core::position2df MousePos;
}; };
} // end namespace scene } // end namespace scene
......
...@@ -178,7 +178,7 @@ void CSceneNodeAnimatorCollisionResponse::animateNode(ISceneNode* node, u32 time ...@@ -178,7 +178,7 @@ void CSceneNodeAnimatorCollisionResponse::animateNode(ISceneNode* node, u32 time
CollisionResultPosition = core::vector3df(); CollisionResultPosition = core::vector3df();
CollisionNode = 0; CollisionNode = 0;
core::vector3df force = vel + FallingVelocity; // core::vector3df force = vel + FallingVelocity;
if ( AnimateCameraTarget ) if ( AnimateCameraTarget )
{ {
......
...@@ -84,7 +84,7 @@ STATIC_LIB = libIrrlicht.a ...@@ -84,7 +84,7 @@ STATIC_LIB = libIrrlicht.a
LIB_PATH = ../../lib/$(SYSTEM) LIB_PATH = ../../lib/$(SYSTEM)
INSTALL_DIR = /usr/local/lib INSTALL_DIR = /usr/local/lib
sharedlib install: SHARED_LIB = libIrrlicht.so sharedlib install: SHARED_LIB = libIrrlicht.so
staticlib sharedlib: LDFLAGS += --no-export-all-symbols --add-stdcall-alias #staticlib sharedlib: LDFLAGS += --no-export-all-symbols --add-stdcall-alias
sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm
staticlib sharedlib: CXXINCS += -I/usr/X11R6/include staticlib sharedlib: CXXINCS += -I/usr/X11R6/include
...@@ -101,7 +101,7 @@ sharedlib_osx: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm ...@@ -101,7 +101,7 @@ sharedlib_osx: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm
#Windows specific options #Windows specific options
IRRLICHT_DLL := ../../bin/Win32-gcc/Irrlicht.dll IRRLICHT_DLL := ../../bin/Win32-gcc/Irrlicht.dll
sharedlib_win32 staticlib_win32: SYSTEM = Win32-gcc sharedlib_win32 staticlib_win32: SYSTEM = Win32-gcc
sharedlib_win32: LDFLAGS += -lgdi32 -lopengl32 -ld3dx9d -lwinmm sharedlib_win32: LDFLAGS += -lgdi32 -lopengl32 -ld3dx9d -lwinmm -Wl,--no-export-all-symbols -Wl,--add-stdcall-alias
sharedlib_win32 staticlib_win32: CPPFLAGS += -DIRR_COMPILE_WITH_DX9_DEV_PACK -D__GNUWIN32__ -D_WIN32 -DWIN32 -D_WINDOWS -D_MBCS -D_USRDLL sharedlib_win32 staticlib_win32: CPPFLAGS += -DIRR_COMPILE_WITH_DX9_DEV_PACK -D__GNUWIN32__ -D_WIN32 -DWIN32 -D_WINDOWS -D_MBCS -D_USRDLL
staticlib_win32: CPPFLAGS += -D_IRR_STATIC_LIB_ staticlib_win32: CPPFLAGS += -D_IRR_STATIC_LIB_
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment