Irrlicht 1.4の下位互換性一覧

Irrlicht 1.4公開に向けて過去の下位互換性についての情報をお送りします。svnのrev.950で追加されたupgrade-guide.txtを翻訳してみました。このテキストにはバージョン1.2、1.3、1.3.1の変更点が書かれています。このファイル以外に過去の更新履歴にも目を通す事をお奨めします。

今までの変更で、特にカスタムシーンノードやGUIエレメントを使って拡張をしている人は修正が必要になると思います。ここで説明する変更は機能面ではなく、構文だけに言及して纏めてあります。新しく追加された関数については説明していませんので、そちらはバージョン1.4のAPIドキュメントで調べてください。

このテキストはIrrlicht svn rev.950のupgrade-guide.txtを翻訳したものです。
正式版が公開された後は、そちらを参照してください。 2007.09.20 屋森英樹

Version 1.2の変更点
-----------------------
コンパイルフラグ廃止 (可能なら常に使用)
_IRR_LINUX_OPENGL_USE_EXTENSIONS_

IAnimatedMeshB3d:
廃止 (代用クラス無し)
	virtual void AddMatrixToJoint(s32 jointNumber, core::matrix4* matrix) = 0;

IGUIElement.h
宣言変更 (const付加)
	IGUIElement* getParent() const
	core::rect getRelativePosition() const

IGUITabControl.h
宣言変更 (引数にconst付加)
	virtual IGUITab* addTab(const wchar_t* caption, s32 id=-1) = 0;

IImage.h
宣言変更 (const付加)
	virtual ECOLOR_FORMAT getColorFormat() const = 0;

IParticleAffector.h
継承変更 (irr:IUnknownから移動)
	class IParticleAffector : public virtual io::IAttributeExchangingObject

IParticleEmitter.h
継承変更 (irr:IUnknownから移動)
	class IParticleEmitter : public virtual io::IAttributeExchangingObject

IParticleSystemSceneNode.h
宣言変更 (引数にconst付加)
 	virtual IParticleEmitter* createPointEmitter(
		const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
 		u32 minParticlesPerSecond = 5,
 		u32 maxParticlesPerSecond = 10,
 		video::SColor minStartColor = video::SColor(255,0,0,0),
 	virtual IParticleEmitter* createBoxEmitter(
 		const core::aabbox3df& box = core::aabbox3df(-10,28,-10,10,30,10),
 		const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
 		u32 minParticlesPerSecond = 5,
 		u32 maxParticlesPerSecond = 10,
 		video::SColor minStartColor = video::SColor(255,0,0,0),

 	virtual IParticleAffector* createGravityAffector(
 		const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f),
 		u32 timeForceLost = 1000) = 0;

ISceneManager.h
宣言変更 (引数追加)
 	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;

ITexture.h
宣言変更 (const付加)
	virtual ECOLOR_FORMAT getColorFormat() const = 0;

IVideoDriver.h
宣言変更 (デフォルト引数変更, 下位互換には明示的にECF_A1R5G5B5を使用すること)
	virtual ITexture* addTexture(const core::dimension2d& size,
			const c8* name, ECOLOR_FORMAT format = ECF_A8R8G8B8) = 0;
宣言変更 (const付加)
	virtual ITexture* createRenderTargetTexture(const core::dimension2d& size) = 0;

matrix4.h
宣言変更 (前後の引数を入れ替え、以前は(col, row))
	f32& operator()(s32 row, s32 col);
	const f32& operator()(s32 row, s32 col) const;

S3DVertex.h
宣言変更 (引数のconst解除)
	S3DVertex(f32 x, f32 y, f32 z, f32 nx, f32 ny, f32 nz, SColor c, f32 tu, f32 tv);
 	S3DVertex(const core::vector3df& pos, const core::vector3df& normal,
		SColor color, const core::vector2d& tcoords);
	S3DVertex2TCoords(f32 x, f32 y, f32 z, SColor c, f32 tu, f32 tv, f32 tu2, f32 tv2);
	S3DVertex2TCoords(const core::vector3df& pos, SColor color,
 		const core::vector2d& tcoords, const core::vector2d& tcoords2);
	S3DVertex2TCoords(f32 x, f32 y, f32 z, f32 nx, f32 ny, f32 nz, SColor c, f32 tu, f32 tv);
 	S3DVertex2TCoords(const core::vector3df& pos, const core::vector3df& normal,
		SColor color, const core::vector2d& tcoords);
 	S3DVertexTangents(const core::vector3df& pos,
		const core::vector2df& tcoords,	SColor c);

SColor.h
宣言変更 (引数の型をsignedからunsignedに変更)
	inline u16 RGBA16(u32 r, u32 g, u32 b, u32 a);
	inline u16 RGB16(u32 r, u32 g, u32 b);
	inline u16 X8R8G8B8toA1R5G5B5(u32 color);
	inline u32 A1R5G5B5toA8R8G8B8(u32 color);
	inline u32 R5G6B5toA8R8G8B8(u16 color);
	inline u16 R5G6B5toA1R5G5B5(u16 color);
	inline u16 A1R5G5B5toR5G6B5(u16 color);
	inline u32 getAlpha(u16 color);
	inline u32 getRed(u16 color);
	inline u32 getGreen(u16 color);
	inline u32 getBlue(u16 color);
	inline u32 getLuminance(u16 color);
	inline SColor (u32 a, u32 r, u32 g, u32 b);
	inline SColor(u32 clr);
	inline u32 getAlpha() const
	inline u32 getRed() const
	inline u32 getGreen() const
	inline u32 getBlue() const
	inline void setAlpha(u32 a);
	inline void setRed(u32 r);
	inline void setGreen(u32 g);
	inline void setBlue(u32 b);
	inline u16 toA1R5G5B5() const
	inline void toOpenGLColor(u8* dest) const
	inline void set(u32 a, u32 r, u32 g, u32 b);
	inline void set(u32 col);
宣言変更 (引数にconst付加)
	inline SColor getInterpolated(const SColor &other, f32 d) const
メンバ変数をpublicに変更 (型変更)
	u32 color;

Version 1.3の変更点
-----------------------
全ての宣言とコード部分でFrustrumをFrustumに名称変更

IAnimatedMeshB3d.h
関数名変更 (先頭を小文字に変更)
	virtual void setInterpolationMode(s32 mode) = 0;
	virtual void setAnimateMode(s32 mode) = 0;

IAnimatedMeshSceneNode.h
宣言変更 (型変更)
	virtual void setAnimationSpeed(f32 framesPerSecond) = 0;

ICameraSceneNode.h
関数名と宣言変更 (型変更、frustum改名)
	virtual const SViewFrustum* getViewFrustum() const = 0;

IFileSystem.h
関数名変更 (addUnZipFileArchiveから)
	virtual bool addFolderFileArchive(const c8* filename, bool ignoreCase = true, bool ignorePaths = true) = 0;

IGUIContextMenu.h
宣言変更 (引数追加)
 	virtual s32 addItem(const wchar_t* text, s32 commandId=-1, bool enabled=true,
			bool hasSubMenu=false, bool checked=false) = 0;

IGUIElement.h
継承変更
	class IGUIElement : public virtual io::IAttributeExchangingObject, public IEventReceiver
宣言変更 (const付加)
	core::rect getAbsolutePosition() const

IGUIEnvironment.h
宣言変更 (引数追加)
 	virtual IGUIButton* addButton(const core::rect& rectangle,
		IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0, const wchar_t* tooltiptext = 0) = 0;

IGUIListBox.h
関数廃止 (現在はsprite bankを使用)
	virtual void setIconFont(IGUIFont* font) = 0;
宣言変更 (sprite bank用に型変更)
	virtual s32 addItem(const wchar_t* text, s32 icon) = 0;

IGUISkin.h
継承変更
	class IGUISkin : public virtual io::IAttributeExchangingObject

IGUIToolbar.h
宣言変更 (tooltipsのために引数追加)
	virtual IGUIButton* addButton(s32 id=-1, const wchar_t* text=0, const wchar_t* tooltiptext=0,
		video::ITexture* img=0, video::ITexture* pressedimg=0,
		bool isPushButton=false, bool useAlphaChannel=false) = 0;

IImage.h
宣言変更 (const付加)
	virtual u32 getPitch() const = 0;

IImageWriter.h
宣言変更 (引数追加)
	virtual bool writeImage(io::IWriteFile *file, IImage *image, u32 param = 0) = 0;

IMeshBuffer.h
宣言変更 (返り値変更)
	virtual u32 getVertexCount() const = 0;
	virtual u32 getIndexCount() const = 0;
関数廃止 (setBoundingBoxで代替)
	virtual core::aabbox3df& getBoundingBox() = 0;

IMesh.h
宣言変更 (型変更、const付加)
	virtual u32 getMeshBufferCount() const = 0;
	virtual IMeshBuffer* getMeshBuffer(u32 nr) const = 0;
関数廃止 (setBoundingBoxで代替)
	virtual core::aabbox3d& getBoundingBox() = 0;

IReadFile.h
宣言変更 (型変更)
	virtual s32 read(void* buffer, u32 sizeToRead) = 0;

irrArray.h
宣言変更 (const付加)
	s32 binary_search(const T& element, s32 left, s32 right) const

irrMath.h
定数変更
	const f32 PI			= 3.14159265359f;
定数廃止 (RADTODEG64かDEGTORAD64で代替)
	const f64 GRAD_PI		= 180.0 / PI64;
	const f64 GRAD_PI2		= PI64 / 180.0;
宣言変更 (引数toleranceを追加)
	inline bool equals(const f32 a, const f32 b, const f32 tolerance = ROUNDING_ERROR_32)

irrString.h
宣言変更 (引数にconst付加)
 	template  string(const B* const c, u32 length);
 	template  string(const B* const c);
 	template  string& operator=(const B* const c);
 	template  string operator+(const B* const c) const
	bool operator ==(const T* const str) const
	bool operator !=(const T* const str) const
	bool equalsn(const T* const str, int len) const
	void append(const T* const other);
	s32 findFirstChar(const T* const c, u32 count) const
 	template  s32 findFirstCharNotInList(const B* const c, u32 count) const
 	template  s32 findLastCharNotInList(const B* const c, u32 count) const
 	template  s32 find(const B* const str) const
	void operator += (const T* const c);
宣言変更 (signedからu32に型変更)
	T& operator [](const u32 index) const
	u32 size() const
	void append(const string& other, u32 length);
	void reserve(u32 count);
	s32 findNext(T c, u32 startPos) const
	string subString(u32 begin, s32 length) const
	void erase(u32 index);
	void reallocate(u32 new_size);
宣言変更 (引数追加)
	s32 findLast(T c, s32 start = -1) const

ISceneManager.h
宣言変更 (引数minimalPolysPerNodeのデフォルト値を128から256に変更)
 	virtual ISceneNode* addOctTreeSceneNode(IAnimatedMesh* mesh, ISceneNode* parent=0,
		s32 id=-1, s32 minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
 	virtual ISceneNode* addOctTreeSceneNode(IMesh* mesh, ISceneNode* parent=0,
		s32 id=-1, s32 minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
宣言変更 (引数追加)
	virtual ICameraSceneNode* addCameraSceneNodeFPS(ISceneNode* parent = 0,
		f32 rotateSpeed = 100.0f, f32 moveSpeed = 500.0f, s32 id=-1,
		SKeyMap* keyMapArray=0, s32 keyMapSize=0, bool noVerticalMovement=false,
		f32 jumpSpeed = 0.f) = 0;

	virtual IBillboardSceneNode* addBillboardSceneNode(ISceneNode* parent = 0,
		const core::dimension2d& size = core::dimension2d(10.0f, 10.0f),
		const core::vector3df& position = core::vector3df(0,0,0), s32 id=-1,
		video::SColor shade_top = 0xFFFFFFFF, video::SColor shade_down = 0xFFFFFFFF) = 0;

	virtual ITerrainSceneNode* addTerrainSceneNode(
		const c8* heightMapFileName,
		ISceneNode* parent=0, s32 id=-1,
		const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
		video::SColor vertexColor = video::SColor(255,255,255,255),
		s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0) = 0;

	virtual ITerrainSceneNode* addTerrainSceneNode(
		io::IReadFile* heightMapFile,
		ISceneNode* parent=0, s32 id=-1,
		const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
		video::SColor vertexColor = video::SColor(255,255,255,255),
		s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0) = 0;
宣言変更 (戻り値変更)
	virtual u32 registerNodeForRendering(ISceneNode* node,
		E_SCENE_NODE_RENDER_PASS pass = ESNRP_AUTOMATIC) = 0;

ISceneNodeAnimatorCollisionResponse.h
宣言変更 (const付加)
	virtual void setEllipsoidTranslation(const core::vector3df &translation) = 0;

ISceneNode.h
関数名変更 (OnPreRenderから)
	virtual void OnRegisterSceneNode();
関数名変更 (OnPostRenderから)
	virtual void OnAnimate(u32 timeMs);
宣言変更 (const付加)
	virtual const core::aabbox3d getTransformedBoundingBox() const
	const core::matrix4& getAbsoluteTransformation() const
	virtual bool isVisible() const
	virtual s32 getID() const
	scene::ISceneNode* getParent() const
	virtual ESCENE_NODE_TYPE getType() const
宣言変更 (型変更)
	virtual video::SMaterial& getMaterial(u32 num);
	void setMaterialTexture(u32 textureLayer, video::ITexture* texture);
	void setAutomaticCulling( E_CULLING_TYPE state);
	virtual void setDebugDataVisible(E_DEBUG_SCENE_TYPE visible);
宣言変更 (返り値変更)
	virtual u32 getMaterialCount();
	virtual const core::vector3df& getRotation() const
	E_CULLING_TYPE getAutomaticCulling() const
宣言変更 (返り値変更、const付加)
	E_DEBUG_SCENE_TYPE isDebugDataVisible() const

ITerrainSceneNode.h
宣言変更 (返り値変更)
	virtual u32 getIndexCount() = 0;

ITexture.h
宣言変更 (返り値変更、const付加)
	virtual u32 getPitch() const = 0;
関数廃止 (Available in SMaterial now)
	core::matrix4& getTransformation();

IVideoDriver.h
宣言変更 (型変更)
	virtual ITexture* getTextureByIndex(u32 index) = 0;
	virtual void drawVertexPrimitiveList(const void* vertices, u32 vertexCount, const u16* indexList, u32 triangleCount, E_VERTEX_TYPE vType, scene::E_PRIMITIVE_TYPE pType) = 0;
 	virtual void drawIndexedTriangleList(const S3DVertex* vertices,
		u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
	virtual void drawIndexedTriangleList(const S3DVertex2TCoords* vertices,
		u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
	virtual void drawIndexedTriangleList(const S3DVertexTangents* vertices,
		u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
	virtual void drawIndexedTriangleFan(const S3DVertex* vertices,
		u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
	virtual void drawIndexedTriangleFan(const S3DVertex2TCoords* vertices,
		u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
	virtual const SLight& getDynamicLight(u32 idx) = 0;
	virtual IMaterialRenderer* getMaterialRenderer(u32 idx) = 0;
	virtual const c8* getMaterialRendererName(u32 idx) = 0;
宣言変更 (引数にconst付加)
	virtual void drawMeshBuffer( const scene::IMeshBuffer* mb) = 0;
	virtual io::IAttributes* createAttributesFromMaterial(const video::SMaterial& material) = 0;
宣言変更 (引数追加)
	virtual u32 getPrimitiveCountDrawn( u32 param = 0 ) = 0;
	virtual bool writeImageToFile(IImage* image, const c8* filename, u32 param = 0) = 0;
	virtual IImage* createImageFromData(ECOLOR_FORMAT format,
		const core::dimension2d& size, void *data,
		bool ownForeignMemory=false,
		bool deleteMemory = true) = 0;
宣言変更 (返り値変更)
	virtual u32 getMaximalDynamicLightAmount() = 0;
	virtual u32 getDynamicLightCount() = 0;
	virtual u32 getMaximalPrimitiveCount() = 0;
	virtual u32 getMaterialRendererCount() = 0;

matrix4.h
宣言変更 (引数追加)
	matrix4( eConstructor constructor = EM4CONST_IDENTITY );
宣言変更 (引数にconst付加)
	f32& operator()(const s32 row, const s32 col);
	const f32& operator()(const s32 row, const s32 col) const
宣言変更 (引数の順序変更)
	void transformVect( vector3df& out, const vector3df& in ) const;

quaternion.h
宣言変更 (返り値変更)
	void slerp( quaternion q1, const quaternion q2, f32 interpolate );

SColor.h
関数名変更 (getLuminanceから)、型変更
	inline s32 getAverage(s16 color);
宣言変更 (返り値変更)
	inline f32 getLuminance() const
宣言変更 (引数にconst付加)
	inline SColorf getInterpolated(const SColorf &other, f32 d) const

SMaterial.h
定数の型変更
	const u32 MATERIAL_MAX_TEXTURES = 4;
型変更
	class SMaterial
Publicメンバー変数廃止 (Textures[]で代替)
	ITexture* Texture1;
	ITexture* Texture2;
	ITexture* Texture3;
	ITexture* Texture4;
Publicメンバー変数廃止 (関数setFlag()/getFlag()で代替)
	Flags[]
Publicメンバー変数変更 (型変更)
	u32 ZBuffer;
宣言変更 (const付加)
	inline bool operator!=(const SMaterial& b) const

SMeshBuffer.h
宣言変更 (引数変更)
	virtual u32 getVertexCount() const
	virtual u32 getIndexCount() const
関数廃止 (setBoundingBoxで代替)
	virtual core::aabbox3d& getBoundingBox();

SMeshBufferLightMap.h
宣言変更 (引数変更)
	virtual u32 getVertexCount() const
	virtual u32 getIndexCount() const
関数廃止 (setBoundingBoxで代替)
	virtual core::aabbox3d& getBoundingBox();

SMeshBufferTangents.h
宣言変更 (引数変更)
	virtual u32 getVertexCount() const
	virtual u32 getIndexCount() const
関数廃止 (setBoundingBoxで代替)
	virtual core::aabbox3d& getBoundingBox();

SMesh.h
宣言変更 (引数変更、const付加)
	virtual u32 getMeshBufferCount() const
	virtual IMeshBuffer* getMeshBuffer(u32 nr) const
関数廃止 (setBoundingBoxで代替);
	virtual core::aabbox3d& getBoundingBox();

vector3d.h
宣言変更 (返り値変更)
	T getLength() const
宣言変更 (型変更)
	vector3d getInterpolated(const vector3d& other, const T d) const

Version 1.3.1の変更点
-------------------------
型変更:
	SMeshBuffer*は現在CMeshBufferからのテンプレート型に変更になりました

dimension2d.h
宣言変更 (引数にconst付加)
	dimension2d(const T& width, const T& height);
	dimension2d operator/(const T& scale);
	dimension2d operator*(const T& scale);

IAnimatedMeshSceneNode.h
宣言変更 (const付加)
	virtual s32 getFrameNr() const = 0;
	virtual s32 getStartFrame() const = 0;
	virtual s32 getEndFrame() const = 0;
関数名変更 (getAbsoluteTransformationから)
	virtual const SMD3QuaterionTag& getMD3TagTransformation( const core::stringc & tagname) = 0;

IGUIButton.h
関数名変更 (getUseAlphaChannelから)
	virtual bool isAlphaChannelUsed() = 0;

IGUIElementFactory.h
宣言変更 (const付加)
	EGUI_ELEMENT_TYPE getType() const
	virtual const c8* getTypeName() const

IGUIEnvironment.h
宣言変更 (引数追加)
	virtual bool saveGUI(const c8* filename, IGUIElement* start=0) = 0;
	virtual bool saveGUI(io::IWriteFile* file, IGUIElement* start=0) = 0;
	virtual bool loadGUI(const c8* filename, IGUIElement* parent=0) = 0;
	virtual bool loadGUI(io::IReadFile* file, IGUIElement* parent=0) = 0;

IGUIFontBitmap.h
宣言変更 (const付加)
	virtual EGUI_FONT_TYPE getType() const { return EGFT_BITMAP; }

IGUIFont.h
宣言変更 (const付加)
	virtual EGUI_FONT_TYPE getType() const { return EGFT_CUSTOM; }

IGUISkin.h
宣言変更 (引数追加)
	virtual IGUIFont* getFont(EGUI_DEFAULT_FONT which=EGDF_DEFAULT) = 0;
	virtual void setFont(IGUIFont* font, EGUI_DEFAULT_FONT which=EGDF_DEFAULT) = 0;
宣言変更 (const付加)
	virtual EGUI_SKIN_TYPE getType() const { return EGST_UNKNOWN; };

IImage.h
宣言変更 (const付加)
	virtual const core::dimension2d& getDimension() const = 0;
	virtual u32 getRedMask() const = 0;
	virtual u32 getGreenMask() const = 0;
	virtual u32 getBlueMask() const = 0;
	virtual u32 getAlphaMask() const = 0;
宣言変更 (返り値変更、const付加)
	virtual u32 getBitsPerPixel() const = 0;
	virtual u32 getBytesPerPixel() const = 0;
	virtual u32 getImageDataSizeInBytes() const = 0;
	virtual u32 getImageDataSizeInPixels() const = 0;
宣言変更 (引数の型変更、const付加)
	virtual SColor getPixel(u32 x, u32 y) const = 0;

IMeshCache.h
宣言変更 (引数にconst付加)
	virtual void removeMesh(const IAnimatedMesh* const mesh) = 0;
宣言変更 (引数にconst付加、宣言にconst付加)
	virtual s32 getMeshIndex(const IAnimatedMesh* const mesh) const = 0;
	virtual const c8* getMeshFilename(const IAnimatedMesh* const mesh) const = 0;
	virtual const c8* getMeshFilename(const IMesh* const mesh) const = 0;
宣言変更 (返り値変更、const付加)
	virtual u32 getMeshCount() const = 0;
宣言変更 (引数の型変更)
	virtual IAnimatedMesh* getMeshByIndex(u32 index) = 0;
宣言変更 (const付加)
	virtual const c8* getMeshFilename(u32 index) const = 0;

IParticleAffector.h
宣言変更 (const付加)
	virtual E_PARTICLE_AFFECTOR_TYPE getType() const = 0;

IParticleEmitter.h
宣言変更 (const付加)
	virtual E_PARTICLE_EMITTER_TYPE getType() const = 0;

irrString.h
宣言変更 (引数にconst付加)
	string(const double number);
宣言変更 (返り値変更)
	string& operator += (T c);
	string& operator += (const string& other);
宣言変更 (返り値変更、引数にconst追加)
	string& operator += (const T* const c);
	string& operator += (const int i);
	string& operator += (const double i);

ISceneManager.h
宣言変更 (引数追加)
	virtual ITerrainSceneNode* addTerrainSceneNode(
		const c8* heightMapFileName,
		ISceneNode* parent=0, s32 id=-1,
		const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
		video::SColor vertexColor = video::SColor(255,255,255,255),
		s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0,
		bool addAlsoIfHeightmapEmpty = false) = 0;
	virtual ITerrainSceneNode* addTerrainSceneNode(
		io::IReadFile* heightMapFile,
		ISceneNode* parent=0, s32 id=-1,
		const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
		const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
		video::SColor vertexColor = video::SColor(255,255,255,255),
		s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0,
		bool addAlsoIfHeightmapEmpty = false) = 0;
	virtual ISceneManager* createNewSceneManager(bool cloneContent=false) = 0;

ISceneNodeAnimator.h
宣言変更 (const付加)
	virtual ESCENE_NODE_ANIMATOR_TYPE getType() const

ITexture.h
宣言変更 (const付加)
	virtual bool hasMipMaps() const

IVideoDriver.h
宣言変更 (参照引数)
	virtual void draw3DBox(const core::aabbox3d& box,
		SColor color = SColor(255,255,255,255)) = 0;
宣言変更 (引数にデフォルト値追加)
	virtual void draw2DImage(video::ITexture* texture,
			const core::position2d& pos,
			const core::array >& sourceRects,
			const core::array& indices,
			s32 kerningWidth=0,
			const core::rect* clipRect=0,
			SColor color=SColor(255,255,255,255),
			bool useAlphaChannelOfTexture=false) = 0;
宣言変更 (返り値変更)
	virtual const SExposedVideoData& getExposedVideoData() = 0;

line3d.h
宣言変更 (返り値変更)
	T getLength() const

matrix4.h
型をテンプレート型に変更
	template  class CMatrix4
	typedef CMatrix4 matrix4;
宣言変更 (返り値変更)
	T& operator()(const s32 row, const s32 col);
	const T& operator()(const s32 row, const s32 col) const
	T& operator[](u32 index);
	const T& operator[](u32 index) const
宣言変更 (引数の型変更)
	inline CMatrix4& operator=(const T& scalar);
	const T* pointer() const
	T* pointer();
	CMatrix4 operator*(const T& scalar) const;
	CMatrix4& operator*=(const T& scalar);
	void transformVect(T *out,const core::vector3df &in) const;
	void rotateVect(T *out,const core::vector3df &in) const;
	void multiplyWith1x4Matrix(T* matrix) const;
	CMatrix4 interpolate(const core::CMatrix4& b, f32 time) const;

plane3d.h
関数名変更 (existsInterSectionから)
	bool existsIntersection(const plane3d& other) const

quaternion.h
宣言変更 (引数のconst解除)
	void slerp( quaternion q1, quaternion q2, f32 interpolate );

SExposedVideoData.h
publicメンバ変数を削除 (X11DisplayとX11Windowにより代替)
 	OpenGLLinux.Window;

SIrrCreationParameters.h
メンバ変数をpublicに変更 (64bitシステムサポートのため型変更)
	void* WindowId;

triangle3d.h
メンバ関数をprivateに変更
	bool isOnSameSide(const vector3d& p1, const vector3d& p2,
		const vector3d& a, const vector3d& b) const

vector2d.h
宣言変更 (返り値変更)
	T getLength() const
	T getDistanceFrom(const vector2d& other) const

vector3d.h
宣言変更 (返り値変更)
	T getDistanceFrom(const vector3d& other) const

変更点を眺めているとマイナーバージョンであっても下位互換性に乏しいです。Version1.4から追加されるアップグレードガイドは、今後、大いに参考になるでしょう。

Share