Merge revisions 1495:1497 from 1.4 branch. GUIImage fix by CuteAlien. Default value changes in particle system and scene manager.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1498 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2008-08-14 15:36:21 +00:00
parent 9c33ae93ad
commit 763acaa745
7 changed files with 30 additions and 20 deletions

View File

@ -10,8 +10,6 @@ Changes in version 1.5 (... 2008)
- Enable use of other meshes for shadow mesh generation, can be used to speed up shadow generation and rendering for complex meshes. Patch based on a version by tonic.
- Fixed Software renderer color flicker, was a signed shift bug I believe.
- Fixed usage of SIrrCreationParameters struct, which dind't have copy constructor and assignment operator anymore, since the Irrlicht version string was made const.
- New glext.h (version 40)
@ -204,6 +202,10 @@ Changes in version 1.5 (... 2008)
-------------------------------------------
Changes in version 1.4.2 (x.x.2008)
- Fixed rounding problem in getScreenCoordinatesFrom3DPosition
- Fixed Software renderer color flicker, was a shift bug I believe.
- irrMap fix to make root node always black, by rogerborg.
- Possible core dump fixed in particle system node, by CuteAlien.

View File

@ -130,7 +130,7 @@ public:
it any more, see IReferenceCounted::drop() for more informations. */
virtual IParticleAnimatedMeshSceneNodeEmitter* createAnimatedMeshSceneNodeEmitter(
scene::IAnimatedMeshSceneNode* node, bool useNormalDirection = true,
const core::vector3df& direction = core::vector3df(0.0f,0.0f,0.0f),
const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
bool everyMeshVertex = false,
u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
@ -200,7 +200,7 @@ public:
const core::vector3df& center, f32 radius,
const core::vector3df& normal, f32 length,
bool outlineOnly = false,
const core::vector3df& direction = core::vector3df(0.0f,0.0f,0.0f),
const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
const video::SColor& minStartColor = video::SColor(255,0,0,0),
const video::SColor& maxStartColor = video::SColor(255,255,255,255),
@ -246,7 +246,7 @@ public:
it any more, see IReferenceCounted::drop() for more informations. */
virtual IParticleMeshEmitter* createMeshEmitter(
scene::IMesh* mesh, bool useNormalDirection = true,
const core::vector3df& direction = core::vector3df(0.0f,0.0f,0.0f),
const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
bool everyMeshVertex = false,
u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,

View File

@ -1015,9 +1015,10 @@ namespace scene
and the animator will animate it.
If you no longer need the animator, you should call ISceneNodeAnimator::drop().
See IReferenceCounted::drop() for more information. */
virtual ISceneNodeAnimator* createFlyCircleAnimator(const core::vector3df& center,
f32 radius, f32 speed=0.001f,
const core::vector3df& direction=core::vector3df ( 0.f, 1.f, 0.f ) ) = 0;
virtual ISceneNodeAnimator* createFlyCircleAnimator(
const core::vector3df& center=core::vector3df(0.f,0.f,0.f),
f32 radius=100.f, f32 speed=0.001f,
const core::vector3df& direction=core::vector3df(0.f, 1.f, 0.f)) = 0;
//! Creates a fly straight animator, which lets the attached scene node fly or move along a line between two points.
/** \param startPoint: Start point of the line.

View File

@ -40,6 +40,9 @@ CGUIImage::~CGUIImage()
//! sets an image
void CGUIImage::setImage(video::ITexture* image)
{
if (image == Texture)
return;
if (Texture)
Texture->drop();

View File

@ -60,7 +60,7 @@ public:
//! Creates a particle emitter for an animated mesh scene node
virtual IParticleAnimatedMeshSceneNodeEmitter* createAnimatedMeshSceneNodeEmitter(
scene::IAnimatedMeshSceneNode* node, bool useNormalDirection = true,
const core::vector3df& direction = core::vector3df(0.0f,0.0f,0.0f),
const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
bool everyMeshVertex = false, u32 minParticlesPerSecond = 5,
u32 maxParticlesPerSecond = 10,
@ -84,7 +84,7 @@ public:
virtual IParticleCylinderEmitter* createCylinderEmitter(
const core::vector3df& center, f32 radius,
const core::vector3df& normal, f32 length,
bool outlineOnly = false, const core::vector3df& direction = core::vector3df(0.0f,0.0f,0.0f),
bool outlineOnly = false, const core::vector3df& direction = core::vector3df(0.0f,0.5f,0.0f),
u32 minParticlesPerSecond = 5, u32 maxParticlesPersSecond = 10,
const video::SColor& minStartColor = video::SColor(255,0,0,0),
const video::SColor& maxStartColor = video::SColor(255,255,255,255),
@ -94,7 +94,7 @@ public:
//! Creates a mesh particle emitter.
virtual IParticleMeshEmitter* createMeshEmitter(
scene::IMesh* mesh, bool useNormalDirection = true,
const core::vector3df& direction = core::vector3df(0.0f,0.0f,0.0f),
const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
bool everyMeshVertex = false,
u32 minParticlesPerSecond = 5,

View File

@ -1379,10 +1379,11 @@ ISceneNodeAnimator* CSceneManager::createRotationAnimator(const core::vector3df&
//! creates a fly circle animator, which lets the attached scene node fly around a center.
ISceneNodeAnimator* CSceneManager::createFlyCircleAnimator(
const core::vector3df& normal, f32 radius, f32 speed,
const core::vector3df& center, f32 radius, f32 speed,
const core::vector3df& direction)
{
ISceneNodeAnimator* anim = new CSceneNodeAnimatorFlyCircle(os::Timer::getTime(), normal,
ISceneNodeAnimator* anim = new CSceneNodeAnimatorFlyCircle(
os::Timer::getTime(), center,
radius, speed, direction);
return anim;
}

View File

@ -276,13 +276,16 @@ namespace scene
//! and the animator will animate it.
virtual ISceneNodeAnimator* createRotationAnimator(const core::vector3df& rotationPerSecond);
//! creates a fly circle animator, which lets the attached scene node fly
//! around a center. The center is the position of the scene node.
//! \param rotationSpeed:
//! \return Returns the animator. Attach it to a scene node with ISceneNode::addAnimator()
//! and the animator will animate it.
virtual ISceneNodeAnimator* createFlyCircleAnimator(const core::vector3df& normal, f32 radius, f32 speed,
const core::vector3df& direction);
//! creates a fly circle animator
/** Lets the attached scene node fly around a center.
\param center Center relative to node origin
\param speed rotation speed
\return Animator. Attach it to a scene node with ISceneNode::addAnimator()
and the animator will animate it. */
virtual ISceneNodeAnimator* createFlyCircleAnimator(
const core::vector3df& center=core::vector3df(0.f, 0.f, 0.f),
f32 radius=100.f, f32 speed=0.001f,
const core::vector3df& direction=core::vector3df(0.f, 1.f, 0.f));
//! Creates a fly straight animator, which lets the attached scene node
//! fly or move along a line between two points.