From 75b5403b5b4d674e5ad3dad42fe4b460fd6bc99a Mon Sep 17 00:00:00 2001 From: hybrid Date: Tue, 5 May 2009 00:09:53 +0000 Subject: [PATCH] Merged from trunk revisions 2144:2363 git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@2364 dfc29bdd-3216-0410-991c-e03cc46cb475 --- changes.txt | 637 +- examples/01.HelloWorld/HelloWorld.cbp | 15 +- .../{example.dev => HelloWorld.dev} | 0 examples/01.HelloWorld/main.cpp | 9 +- examples/02.Quake3Map/Quake3Map.cbp | 11 + .../{example.dev => Quake3Map.dev} | 0 .../03.CustomSceneNode/CustomSceneNode.cbp | 11 + .../{example.dev => CustomSceneNode.dev} | 0 examples/04.Movement/Movement.cbp | 11 + .../04.Movement/{example.dev => Movement.dev} | 0 examples/04.Movement/main.cpp | 2 +- examples/05.UserInterface/UserInterface.cbp | 11 + .../{example.dev => UserInterface.dev} | 0 examples/05.UserInterface/main.cpp | 1 + examples/06.2DGraphics/2DGraphics.cbp | 11 + .../{example.dev => 2DGraphics.dev} | 0 examples/06.2DGraphics/main.cpp | 4 +- examples/07.Collision/Collision.cbp | 11 + .../{example.dev => Collision.dev} | 0 examples/07.Collision/main.cpp | 284 +- examples/08.SpecialFX/SpecialFX.cbp | 11 + .../{example.dev => SpecialFX.dev} | 0 examples/08.SpecialFX/main.cpp | 2 +- .../{example.dev => MeshViewer.dev} | 0 examples/09.Meshviewer/Meshviewer.cbp | 11 + examples/09.Meshviewer/main.cpp | 17 +- examples/09.Meshviewer/tutorial.html | 2 +- examples/10.Shaders/Shaders.cbp | 11 + .../10.Shaders/{example.dev => Shaders.dev} | 0 examples/10.Shaders/main.cpp | 10 +- .../11.PerPixelLighting/PerPixelLighting.cbp | 11 + .../{example.dev => PerPixelLighting.dev} | 0 examples/11.PerPixelLighting/main.cpp | 24 +- .../12.TerrainRendering/TerrainRendering.cbp | 11 + .../{example.dev => TerrainRendering.dev} | 0 .../13.RenderToTexture/RenderToTexture.cbp | 11 + .../{example.dev => RenderToTexture.dev} | 0 .../{example.dev => Win32Window.dev} | 0 examples/15.LoadIrrFile/LoadIrrFile.cbp | 18 +- .../{example.dev => LoadIrrFile.dev} | 0 examples/15.LoadIrrFile/main.cpp | 7 +- .../16.Quake3MapShader/Quake3MapShader.cbp | 13 +- .../{example.dev => Quake3MapShader.dev} | 0 examples/16.Quake3MapShader/main.cpp | 31 +- ...loWorld for Windows Mobile on PC_v8.vcproj | 185 + .../HelloWorld_mobile.sln | 3 + .../HelloWorld_mobile.vcproj | 6 +- examples/17.HelloWorld_Mobile/main.cpp | 406 +- examples/18.SplitScreen/SplitScreen.cbp | 13 +- .../{example.dev => SplitScreen.dev} | 0 .../19.MouseAndJoystick/MouseAndJoystick.cbp | 11 + .../{example.dev => MouseAndJoystick.dev} | 0 examples/19.MouseAndJoystick/main.cpp | 10 +- .../{example.dev => ManagedLights.dev} | 0 .../20.ManagedLights/ManagedLights_vc8.vcproj | 2 +- examples/20.ManagedLights/main.cpp | 13 +- examples/21.Quake3Explorer/Makefile | 38 + examples/21.Quake3Explorer/Quake3Explorer.dev | 99 + examples/21.Quake3Explorer/Quake3Explorer.sln | 21 + .../21.Quake3Explorer/Quake3Explorer.vcproj | 132 + .../Quake3Explorer_vc7.vcproj | 132 + .../Quake3Explorer_vc8.vcproj | 210 + .../Quake3Explorer_vc9.vcproj | 204 + examples/21.Quake3Explorer/main.cpp | 2109 ++ examples/21.Quake3Explorer/q3factory.cpp | 830 + examples/21.Quake3Explorer/q3factory.h | 152 + examples/21.Quake3Explorer/sound.cpp | 98 + examples/21.Quake3Explorer/sound.h | 18 + examples/BuildAllExamples_v7.sln | 21 +- examples/BuildAllExamples_v8.sln | 34 +- examples/BuildAllExamples_v9.sln | 10 +- examples/Demo/CDemo.cpp | 10 +- examples/Demo/CMainMenu.cpp | 217 +- examples/Makefile | 2 +- include/EDriverFeatures.h | 206 +- include/EGUIElementTypes.h | 3 + include/EHardwareBufferFlags.h | 84 +- include/EMaterialFlags.h | 36 +- include/EMeshWriterEnums.h | 14 +- include/ESceneNodeTypes.h | 9 + include/ETerrainElements.h | 72 +- include/IAnimatedMeshMD3.h | 112 +- include/IAnimatedMeshSceneNode.h | 2 +- include/ICameraSceneNode.h | 55 +- include/IEventReceiver.h | 50 +- include/IFileArchive.h | 108 + include/IFileList.h | 5 +- include/IFileSystem.h | 118 +- include/IGPUProgrammingServices.h | 8 +- include/IGUIComboBox.h | 8 +- include/IGUIElement.h | 42 +- include/IGUIEnvironment.h | 99 +- include/IGUIFileOpenDialog.h | 4 + include/IGUIFont.h | 25 +- include/IGUIImageList.h | 45 + include/IGUIListBox.h | 7 + include/IGUIScrollBar.h | 6 +- include/IGUISpinBox.h | 130 +- include/IGUITable.h | 14 +- include/IGUITreeView.h | 277 + include/IGUIWindow.h | 7 + include/IGeometryCreator.h | 160 + include/IImage.h | 5 +- include/IImageLoader.h | 3 +- include/IImageWriter.h | 4 +- include/ILogger.h | 1 + include/IMesh.h | 38 +- include/IMeshBuffer.h | 16 +- include/IMeshCache.h | 18 +- include/IMeshLoader.h | 3 +- include/IMeshManipulator.h | 29 +- include/IMeshSceneNode.h | 6 +- include/IParticleAffector.h | 14 - include/IParticleEmitter.h | 15 - include/IQ3LevelMesh.h | 10 +- include/IQ3Shader.h | 569 +- include/IReadFile.h | 9 +- include/IReferenceCounted.h | 8 +- include/ISceneCollisionManager.h | 75 +- include/ISceneManager.h | 434 +- include/ISceneNode.h | 66 +- include/ISceneNodeAnimator.h | 14 +- include/ISceneNodeAnimatorCollisionResponse.h | 4 + include/ISceneNodeFactory.h | 3 - include/ITexture.h | 153 +- include/IVideoDriver.h | 116 +- include/IVolumeLightSceneNode.h | 97 +- include/IWriteFile.h | 5 +- include/IrrCompileConfig.h | 121 +- include/IrrlichtDevice.h | 20 +- include/Keycodes.h | 2 +- include/SAnimatedMesh.h | 6 +- include/SKeyMap.h | 1 + include/SLight.h | 2 +- include/SMaterial.h | 141 +- include/SMesh.h | 1 + include/SSharedMeshBuffer.h | 45 +- include/SSkinMeshBuffer.h | 798 +- include/SViewFrustum.h | 151 +- include/aabbox3d.h | 1 + include/coreutil.h | 136 +- include/dimension2d.h | 21 +- include/irrAllocator.h | 8 + include/irrArray.h | 88 +- include/irrList.h | 28 +- include/irrMath.h | 187 +- include/irrString.h | 117 +- include/irrTypes.h | 28 +- include/irrXML.h | 15 +- include/irrlicht.h | 19 +- include/line3d.h | 2 +- include/matrix4.h | 340 +- include/plane3d.h | 10 +- include/quaternion.h | 106 +- include/rect.h | 45 +- include/vector2d.h | 11 +- include/vector3d.h | 27 +- lib/Win64-visualStudio/readme.txt | 14 +- media/021shot.jpg | Bin 0 -> 97819 bytes media/2ddemo.bmp | Bin 393270 -> 0 bytes media/2ddemo.png | Bin 0 -> 44217 bytes media/config.xml | 58 +- media/dwarf.x | 14 +- media/earth.bmp | Bin 393270 -> 0 bytes media/earth.jpg | Bin 0 -> 24107 bytes media/earth.x | 2447 +-- media/earthbump.bmp | Bin 393270 -> 0 bytes media/earthbump.jpg | Bin 0 -> 24419 bytes media/example.irr | Bin 30066 -> 30066 bytes media/gun.jpg | Bin 0 -> 25863 bytes media/gun.md2 | Bin 0 -> 55500 bytes media/iconlist.png | Bin 0 -> 18198 bytes media/irrlichtlogo3.png | Bin 0 -> 8225 bytes media/map-20kdm2.pk3 | Bin 2132873 -> 2086107 bytes media/opengl.frag | 2 +- media/rockwall.bmp | Bin 786486 -> 0 bytes media/rockwall.jpg | Bin 0 -> 89121 bytes media/skydome2.jpg | Bin 0 -> 62534 bytes media/smoke2.jpg | Bin 0 -> 22618 bytes media/smoke3.jpg | Bin 0 -> 23083 bytes media/sphere.3ds | Bin 492055 -> 0 bytes media/terrain-heightmap.bmp | Bin 196662 -> 67962 bytes media/terrain-texture.jpg | Bin 728407 -> 184786 bytes media/wall.jpg | Bin 160435 -> 89206 bytes readme.txt | 4 - source/Irrlicht/C3DSMeshFileLoader.cpp | 214 +- source/Irrlicht/C3DSMeshFileLoader.h | 2 +- source/Irrlicht/CAnimatedMeshMD3.cpp | 100 +- source/Irrlicht/CAnimatedMeshMD3.h | 25 +- source/Irrlicht/CAnimatedMeshSceneNode.cpp | 188 +- source/Irrlicht/CAnimatedMeshSceneNode.h | 22 +- source/Irrlicht/CAttributeImpl.h | 15 +- source/Irrlicht/CAttributes.cpp | 2 +- source/Irrlicht/CB3DMeshFileLoader.cpp | 10 +- source/Irrlicht/CB3DMeshFileLoader.h | 2 +- source/Irrlicht/CBSPMeshFileLoader.cpp | 60 +- source/Irrlicht/CBSPMeshFileLoader.h | 5 +- .../CBurningShader_Raster_Reference.cpp | 12 +- source/Irrlicht/CCSMLoader.cpp | 10 +- source/Irrlicht/CCSMLoader.h | 2 +- source/Irrlicht/CCameraSceneNode.cpp | 41 +- source/Irrlicht/CCameraSceneNode.h | 9 +- source/Irrlicht/CColladaFileLoader.cpp | 77 +- source/Irrlicht/CColladaFileLoader.h | 10 +- source/Irrlicht/CColorConverter.cpp | 32 + source/Irrlicht/CColorConverter.h | 2 + source/Irrlicht/CCubeSceneNode.cpp | 86 +- source/Irrlicht/CCubeSceneNode.h | 10 +- source/Irrlicht/CD3D8Driver.cpp | 324 +- source/Irrlicht/CD3D8Driver.h | 8 +- source/Irrlicht/CD3D8MaterialRenderer.h | 22 +- source/Irrlicht/CD3D8ParallaxMapRenderer.h | 5 +- .../Irrlicht/CD3D8ShaderMaterialRenderer.cpp | 27 +- source/Irrlicht/CD3D8Texture.cpp | 16 +- source/Irrlicht/CD3D8Texture.h | 5 +- source/Irrlicht/CD3D9Driver.cpp | 303 +- source/Irrlicht/CD3D9Driver.h | 18 +- source/Irrlicht/CD3D9HLSLMaterialRenderer.cpp | 14 +- source/Irrlicht/CD3D9MaterialRenderer.h | 26 +- source/Irrlicht/CD3D9ParallaxMapRenderer.h | 1 + .../Irrlicht/CD3D9ShaderMaterialRenderer.cpp | 84 +- source/Irrlicht/CD3D9Texture.cpp | 6 +- source/Irrlicht/CD3D9Texture.h | 4 +- source/Irrlicht/CDMFLoader.cpp | 14 +- source/Irrlicht/CDMFLoader.h | 2 +- source/Irrlicht/CDefaultGUIElementFactory.cpp | 5 +- source/Irrlicht/CDefaultSceneNodeFactory.cpp | 6 +- source/Irrlicht/CFileList.cpp | 41 +- source/Irrlicht/CFileList.h | 54 +- source/Irrlicht/CFileSystem.cpp | 501 +- source/Irrlicht/CFileSystem.h | 77 +- source/Irrlicht/CGUIColorSelectDialog.cpp | 4 +- source/Irrlicht/CGUIComboBox.cpp | 45 +- source/Irrlicht/CGUIComboBox.h | 21 +- source/Irrlicht/CGUIEditBox.cpp | 88 +- source/Irrlicht/CGUIEnvironment.cpp | 91 +- source/Irrlicht/CGUIEnvironment.h | 27 +- source/Irrlicht/CGUIFileOpenDialog.cpp | 54 +- source/Irrlicht/CGUIFileOpenDialog.h | 10 +- source/Irrlicht/CGUIFont.cpp | 186 +- source/Irrlicht/CGUIFont.h | 10 +- source/Irrlicht/CGUIImageList.cpp | 94 + source/Irrlicht/CGUIImageList.h | 68 + source/Irrlicht/CGUIListBox.cpp | 34 +- source/Irrlicht/CGUIListBox.h | 7 + source/Irrlicht/CGUIMessageBox.cpp | 28 +- source/Irrlicht/CGUIScrollBar.cpp | 211 +- source/Irrlicht/CGUIScrollBar.h | 14 +- source/Irrlicht/CGUISpinBox.cpp | 19 +- source/Irrlicht/CGUISpinBox.h | 2 +- source/Irrlicht/CGUISpriteBank.cpp | 4 +- source/Irrlicht/CGUIStaticText.cpp | 4 +- source/Irrlicht/CGUITabControl.cpp | 7 +- source/Irrlicht/CGUITable.cpp | 28 +- source/Irrlicht/CGUITable.h | 9 +- source/Irrlicht/CGUITreeView.cpp | 1090 + source/Irrlicht/CGUITreeView.h | 331 + source/Irrlicht/CGUIWindow.cpp | 63 +- source/Irrlicht/CGUIWindow.h | 8 +- source/Irrlicht/CGeometryCreator.cpp | 282 +- source/Irrlicht/CGeometryCreator.h | 45 +- source/Irrlicht/CImage.cpp | 186 +- source/Irrlicht/CImage.h | 4 +- source/Irrlicht/CImageLoaderBMP.cpp | 21 +- source/Irrlicht/CImageLoaderBMP.h | 13 +- source/Irrlicht/CImageLoaderJPG.cpp | 4 +- source/Irrlicht/CImageLoaderJPG.h | 2 +- source/Irrlicht/CImageLoaderPCX.cpp | 4 +- source/Irrlicht/CImageLoaderPCX.h | 10 +- source/Irrlicht/CImageLoaderPNG.cpp | 8 +- source/Irrlicht/CImageLoaderPNG.h | 2 +- source/Irrlicht/CImageLoaderPPM.cpp | 4 +- source/Irrlicht/CImageLoaderPPM.h | 2 +- source/Irrlicht/CImageLoaderPSD.cpp | 4 +- source/Irrlicht/CImageLoaderPSD.h | 2 +- source/Irrlicht/CImageLoaderRGB.cpp | 651 + source/Irrlicht/CImageLoaderRGB.h | 172 + source/Irrlicht/CImageLoaderTGA.cpp | 69 +- source/Irrlicht/CImageLoaderTGA.h | 11 +- source/Irrlicht/CImageLoaderWAL.cpp | 4 +- source/Irrlicht/CImageLoaderWAL.h | 6 +- source/Irrlicht/CImageWriterBMP.cpp | 4 +- source/Irrlicht/CImageWriterBMP.h | 2 +- source/Irrlicht/CImageWriterJPG.cpp | 5 +- source/Irrlicht/CImageWriterJPG.h | 2 +- source/Irrlicht/CImageWriterPCX.cpp | 4 +- source/Irrlicht/CImageWriterPCX.h | 2 +- source/Irrlicht/CImageWriterPNG.cpp | 4 +- source/Irrlicht/CImageWriterPNG.h | 2 +- source/Irrlicht/CImageWriterPPM.cpp | 4 +- source/Irrlicht/CImageWriterPPM.h | 2 +- source/Irrlicht/CImageWriterPSD.cpp | 4 +- source/Irrlicht/CImageWriterPSD.h | 2 +- source/Irrlicht/CImageWriterTGA.cpp | 4 +- source/Irrlicht/CImageWriterTGA.h | 2 +- source/Irrlicht/CIrrDeviceConsole.cpp | 471 + source/Irrlicht/CIrrDeviceConsole.h | 300 + source/Irrlicht/CIrrDeviceLinux.cpp | 32 +- source/Irrlicht/CIrrDeviceLinux.h | 7 +- source/Irrlicht/CIrrDeviceSDL.cpp | 238 +- source/Irrlicht/CIrrDeviceSDL.h | 430 +- source/Irrlicht/CIrrDeviceStub.cpp | 55 + source/Irrlicht/CIrrDeviceStub.h | 10 + source/Irrlicht/CIrrDeviceWin32.cpp | 264 +- source/Irrlicht/CIrrDeviceWin32.h | 26 +- source/Irrlicht/CIrrDeviceWinCE.cpp | 20 +- source/Irrlicht/CIrrDeviceWinCE.h | 9 +- source/Irrlicht/CIrrMeshFileLoader.cpp | 296 +- source/Irrlicht/CIrrMeshFileLoader.h | 11 +- source/Irrlicht/CIrrMeshWriter.cpp | 18 +- source/Irrlicht/CLMTSMeshFileLoader.cpp | 4 +- source/Irrlicht/CLMTSMeshFileLoader.h | 2 +- source/Irrlicht/CLWOMeshFileLoader.cpp | 3879 ++-- source/Irrlicht/CLWOMeshFileLoader.h | 169 +- source/Irrlicht/CLightSceneNode.cpp | 14 +- source/Irrlicht/CLimitReadFile.cpp | 62 +- source/Irrlicht/CLimitReadFile.h | 10 +- source/Irrlicht/CLogger.cpp | 10 + source/Irrlicht/CLogger.h | 3 + source/Irrlicht/CMD2MeshFileLoader.cpp | 4 +- source/Irrlicht/CMD2MeshFileLoader.h | 2 +- source/Irrlicht/CMD3MeshFileLoader.cpp | 17 +- source/Irrlicht/CMD3MeshFileLoader.h | 16 +- source/Irrlicht/CMS3DMeshFileLoader.cpp | 8 +- source/Irrlicht/CMS3DMeshFileLoader.h | 2 +- source/Irrlicht/CMY3DMeshFileLoader.cpp | 10 +- source/Irrlicht/CMY3DMeshFileLoader.h | 2 +- source/Irrlicht/CMemoryFile.cpp | 8 +- source/Irrlicht/CMemoryFile.h | 6 +- source/Irrlicht/CMeshCache.cpp | 26 +- source/Irrlicht/CMeshCache.h | 25 +- source/Irrlicht/CMeshManipulator.cpp | 237 +- source/Irrlicht/CMeshManipulator.h | 11 +- source/Irrlicht/CMeshSceneNode.cpp | 7 +- source/Irrlicht/CNullDriver.cpp | 176 +- source/Irrlicht/CNullDriver.h | 59 +- source/Irrlicht/COBJMeshFileLoader.cpp | 32 +- source/Irrlicht/COBJMeshFileLoader.h | 6 +- source/Irrlicht/COBJMeshWriter.cpp | 2 +- source/Irrlicht/COCTLoader.cpp | 6 +- source/Irrlicht/COCTLoader.h | 2 +- source/Irrlicht/COSOperator.cpp | 14 +- source/Irrlicht/COctTreeSceneNode.cpp | 93 +- source/Irrlicht/COctTreeSceneNode.h | 19 +- source/Irrlicht/COctTreeTriangleSelector.cpp | 92 +- source/Irrlicht/COctTreeTriangleSelector.h | 5 + source/Irrlicht/COgreMeshFileLoader.cpp | 261 +- source/Irrlicht/COgreMeshFileLoader.h | 21 +- source/Irrlicht/COpenGLDriver.cpp | 158 +- source/Irrlicht/COpenGLDriver.h | 50 +- source/Irrlicht/COpenGLExtensionHandler.cpp | 26 +- source/Irrlicht/COpenGLExtensionHandler.h | 29 +- source/Irrlicht/COpenGLMaterialRenderer.h | 1369 +- source/Irrlicht/COpenGLParallaxMapRenderer.h | 1 + source/Irrlicht/COpenGLSLMaterialRenderer.cpp | 14 +- source/Irrlicht/COpenGLSLMaterialRenderer.h | 2 +- .../COpenGLShaderMaterialRenderer.cpp | 4 +- .../Irrlicht/COpenGLShaderMaterialRenderer.h | 17 +- source/Irrlicht/COpenGLTexture.cpp | 8 +- source/Irrlicht/COpenGLTexture.h | 27 +- source/Irrlicht/CPLYMeshFileLoader.cpp | 789 + source/Irrlicht/CPLYMeshFileLoader.h | 146 + source/Irrlicht/CPLYMeshWriter.cpp | 183 + source/Irrlicht/CPLYMeshWriter.h | 35 + source/Irrlicht/CPakReader.cpp | 117 +- source/Irrlicht/CPakReader.h | 70 +- source/Irrlicht/CParticleBoxEmitter.cpp | 3 +- source/Irrlicht/CParticleBoxEmitter.h | 2 +- source/Irrlicht/CParticleFadeOutAffector.cpp | 20 +- source/Irrlicht/CParticleFadeOutAffector.h | 2 +- source/Irrlicht/CParticleGravityAffector.cpp | 20 +- source/Irrlicht/CParticleGravityAffector.h | 3 +- source/Irrlicht/CParticlePointEmitter.cpp | 4 +- source/Irrlicht/CParticlePointEmitter.h | 2 +- source/Irrlicht/CParticleScaleAffector.cpp | 5 +- source/Irrlicht/CParticleScaleAffector.h | 4 +- source/Irrlicht/CParticleSystemSceneNode.cpp | 12 +- source/Irrlicht/CQ3LevelMesh.cpp | 1455 +- source/Irrlicht/CQ3LevelMesh.h | 127 +- source/Irrlicht/CQuake3ShaderSceneNode.cpp | 1074 +- source/Irrlicht/CQuake3ShaderSceneNode.h | 50 +- source/Irrlicht/CReadFile.cpp | 12 +- source/Irrlicht/CReadFile.h | 7 +- source/Irrlicht/CSTLMeshFileLoader.cpp | 4 +- source/Irrlicht/CSTLMeshFileLoader.h | 2 +- source/Irrlicht/CSceneCollisionManager.cpp | 423 +- source/Irrlicht/CSceneCollisionManager.h | 73 +- source/Irrlicht/CSceneManager.cpp | 264 +- source/Irrlicht/CSceneManager.h | 78 +- .../Irrlicht/CSceneNodeAnimatorCameraFPS.cpp | 680 +- source/Irrlicht/CSceneNodeAnimatorCameraFPS.h | 248 +- .../Irrlicht/CSceneNodeAnimatorCameraMaya.cpp | 588 +- .../CSceneNodeAnimatorCollisionResponse.cpp | 48 +- .../CSceneNodeAnimatorCollisionResponse.h | 15 +- source/Irrlicht/CSceneNodeAnimatorDelete.cpp | 10 +- source/Irrlicht/CSceneNodeAnimatorDelete.h | 95 +- .../Irrlicht/CSceneNodeAnimatorFlyCircle.cpp | 19 +- source/Irrlicht/CSceneNodeAnimatorFlyCircle.h | 4 +- .../CSceneNodeAnimatorFlyStraight.cpp | 38 +- .../Irrlicht/CSceneNodeAnimatorFlyStraight.h | 12 +- .../CSceneNodeAnimatorFollowSpline.cpp | 267 +- .../Irrlicht/CSceneNodeAnimatorRotation.cpp | 15 +- source/Irrlicht/CSceneNodeAnimatorRotation.h | 6 +- source/Irrlicht/CSceneNodeAnimatorTexture.cpp | 6 +- source/Irrlicht/CSkyDomeSceneNode.cpp | 239 +- source/Irrlicht/CSkyDomeSceneNode.h | 16 +- source/Irrlicht/CSoftwareDriver.cpp | 19 +- source/Irrlicht/CSoftwareDriver.h | 3 +- source/Irrlicht/CSoftwareDriver2.cpp | 776 +- source/Irrlicht/CSoftwareDriver2.h | 50 +- source/Irrlicht/CSoftwareTexture.cpp | 2 +- source/Irrlicht/CSoftwareTexture.h | 2 +- source/Irrlicht/CSoftwareTexture2.cpp | 39 +- source/Irrlicht/CSoftwareTexture2.h | 23 +- source/Irrlicht/CSphereSceneNode.cpp | 5 +- source/Irrlicht/CTRGouraud2.cpp | 30 +- source/Irrlicht/CTRGouraudAlpha2.cpp | 33 +- source/Irrlicht/CTRGouraudAlphaNoZ2.cpp | 34 +- source/Irrlicht/CTRTextureBlend.cpp | 1838 +- source/Irrlicht/CTRTextureDetailMap2.cpp | 50 +- source/Irrlicht/CTRTextureGouraud2.cpp | 48 +- source/Irrlicht/CTRTextureGouraudAdd2.cpp | 72 +- source/Irrlicht/CTRTextureGouraudAddNoZ2.cpp | 56 +- source/Irrlicht/CTRTextureGouraudAlpha.cpp | 148 +- source/Irrlicht/CTRTextureGouraudAlphaNoZ.cpp | 149 +- source/Irrlicht/CTRTextureGouraudNoZ2.cpp | 42 +- .../CTRTextureGouraudVertexAlpha2.cpp | 50 +- source/Irrlicht/CTRTextureLightMap2_Add.cpp | 57 +- source/Irrlicht/CTRTextureLightMap2_M1.cpp | 69 +- source/Irrlicht/CTRTextureLightMap2_M2.cpp | 45 +- source/Irrlicht/CTRTextureLightMap2_M4.cpp | 111 +- .../CTRTextureLightMapGouraud2_M4.cpp | 65 +- source/Irrlicht/CTRTextureWire2.cpp | 30 +- source/Irrlicht/CTerrainSceneNode.cpp | 4 +- source/Irrlicht/CTerrainSceneNode.h | 2 +- source/Irrlicht/CTriangleSelector.cpp | 118 +- source/Irrlicht/CTriangleSelector.h | 18 + source/Irrlicht/CVolumeLightSceneNode.cpp | 525 +- source/Irrlicht/CVolumeLightSceneNode.h | 191 +- source/Irrlicht/CWaterSurfaceSceneNode.cpp | 68 +- source/Irrlicht/CWaterSurfaceSceneNode.h | 18 +- source/Irrlicht/CWriteFile.cpp | 12 +- source/Irrlicht/CWriteFile.h | 7 +- source/Irrlicht/CXMLReaderImpl.h | 14 +- source/Irrlicht/CXMeshFileLoader.cpp | 145 +- source/Irrlicht/CXMeshFileLoader.h | 4 +- source/Irrlicht/CZipReader.cpp | 382 +- source/Irrlicht/CZipReader.h | 175 +- source/Irrlicht/IBurningShader.cpp | 6 +- source/Irrlicht/IBurningShader.h | 62 +- source/Irrlicht/ISceneNodeAnimatorFinishing.h | 78 +- source/Irrlicht/Irrlicht-gcc.cbp | 237 +- source/Irrlicht/Irrlicht.cpp | 11 +- source/Irrlicht/Irrlicht.dev | 1092 +- source/Irrlicht/Irrlicht7.1.vcproj | 334 +- source/Irrlicht/Irrlicht8.0.vcproj | 191 +- source/Irrlicht/Irrlicht9.0.vcproj | 4182 ++-- source/Irrlicht/Irrlicht_mobile6.vcproj | 934 +- source/Irrlicht/Irrlicht_xbox.sln | 30 + source/Irrlicht/Irrlicht_xbox.vcproj | 1958 ++ source/Irrlicht/MacOSX/AppDelegate.h | 40 +- source/Irrlicht/MacOSX/AppDelegate.mm | 144 +- source/Irrlicht/MacOSX/CIrrDeviceMacOSX.h | 67 +- source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm | 503 +- .../MacOSX/MacOSX.xcodeproj/project.pbxproj | 660 +- source/Irrlicht/Makefile | 10 +- source/Irrlicht/OctTree.h | 52 +- source/Irrlicht/S4DVertex.h | 136 +- .../Irrlicht/SoftwareDriver2_compile_config.h | 19 +- source/Irrlicht/SoftwareDriver2_helper.h | 144 +- source/Irrlicht/glext.h | 16918 ++++++++-------- source/Irrlicht/glxext.h | 1666 +- source/Irrlicht/irrXML.cpp | 48 +- source/Irrlicht/libpng/ANNOUNCE | 44 +- source/Irrlicht/libpng/CHANGES | 85 +- source/Irrlicht/libpng/INSTALL | 16 +- source/Irrlicht/libpng/KNOWNBUG | 2 +- source/Irrlicht/libpng/LICENSE | 4 +- source/Irrlicht/libpng/README | 14 +- source/Irrlicht/libpng/Y2KINFO | 4 +- source/Irrlicht/libpng/configure | 4 +- source/Irrlicht/libpng/example.c | 14 +- .../{libpng-1.2.32.txt => libpng-1.2.35.txt} | 15 +- source/Irrlicht/libpng/libpng.3 | 40 +- source/Irrlicht/libpng/libpngpf.3 | 4 +- source/Irrlicht/libpng/png.5 | 2 +- source/Irrlicht/libpng/png.c | 134 +- source/Irrlicht/libpng/png.h | 110 +- source/Irrlicht/libpng/pngconf.h | 12 +- source/Irrlicht/libpng/pngerror.c | 6 +- source/Irrlicht/libpng/pngget.c | 56 +- source/Irrlicht/libpng/pngread.c | 30 +- source/Irrlicht/libpng/pngrio.c | 2 +- source/Irrlicht/libpng/pngrtran.c | 89 +- source/Irrlicht/libpng/pngrutil.c | 144 +- source/Irrlicht/libpng/pngset.c | 206 +- source/Irrlicht/libpng/pngtest.c | 52 +- source/Irrlicht/libpng/pngtrans.c | 34 +- source/Irrlicht/libpng/pngwio.c | 6 +- source/Irrlicht/libpng/pngwrite.c | 76 +- source/Irrlicht/libpng/pngwtran.c | 12 +- source/Irrlicht/libpng/pngwutil.c | 220 +- source/Irrlicht/libpng/scripts/CMakeLists.txt | 4 +- .../libpng/scripts/libpng-config-head.in | 2 +- source/Irrlicht/libpng/scripts/libpng.pc.in | 2 +- .../Irrlicht/libpng/scripts/makefile.32sunu | 2 +- .../Irrlicht/libpng/scripts/makefile.64sunu | 2 +- source/Irrlicht/libpng/scripts/makefile.aix | 2 +- source/Irrlicht/libpng/scripts/makefile.beos | 2 +- .../Irrlicht/libpng/scripts/makefile.cygwin | 2 +- .../Irrlicht/libpng/scripts/makefile.darwin | 6 +- source/Irrlicht/libpng/scripts/makefile.dec | 2 +- source/Irrlicht/libpng/scripts/makefile.elf | 2 +- source/Irrlicht/libpng/scripts/makefile.gcmmx | 2 +- source/Irrlicht/libpng/scripts/makefile.hp64 | 2 +- source/Irrlicht/libpng/scripts/makefile.hpgcc | 2 +- source/Irrlicht/libpng/scripts/makefile.hpux | 2 +- source/Irrlicht/libpng/scripts/makefile.linux | 2 +- source/Irrlicht/libpng/scripts/makefile.mingw | 2 +- .../Irrlicht/libpng/scripts/makefile.ne12bsd | 2 +- .../Irrlicht/libpng/scripts/makefile.netbsd | 2 +- source/Irrlicht/libpng/scripts/makefile.nommx | 2 +- .../Irrlicht/libpng/scripts/makefile.openbsd | 2 +- source/Irrlicht/libpng/scripts/makefile.sco | 2 +- source/Irrlicht/libpng/scripts/makefile.sggcc | 2 +- source/Irrlicht/libpng/scripts/makefile.sgi | 2 +- source/Irrlicht/libpng/scripts/makefile.so9 | 2 +- .../Irrlicht/libpng/scripts/makefile.solaris | 2 +- .../libpng/scripts/makefile.solaris-x86 | 2 +- source/Irrlicht/libpng/scripts/pngos2.def | 2 +- source/Irrlicht/libpng/scripts/pngw32.def | 2 +- source/Irrlicht/os.cpp | 33 +- source/Irrlicht/os.h | 5 + source/Irrlicht/wglext.h | 1552 +- tests/Makefile | 9 + tests/enumerateImageManipulators.cpp | 122 + tests/irrCoreEquals.cpp | 12 - tests/main.cpp | 11 +- tests/makeColorKeyTexture.cpp | 16 +- ...g => Burning's Video-ambient-lighting.png} | Bin tests/media/Burning's Video-b3dAnimation.png | Bin 0 -> 5929 bytes tests/media/Burning's Video-drawPixel.png | Bin 0 -> 24449 bytes ...ng => Burning's Video-drawRectOutline.png} | Bin .../Burning's Video-flyCircleAnimator.png | Bin 0 -> 2591 bytes ...urning's Video-makeColorKeyTexture-new.png | Bin 0 -> 19696 bytes ...urning's Video-makeColorKeyTexture-old.png | Bin 0 -> 20940 bytes tests/media/Burning's Video-md2Animation.png | Bin 0 -> 5077 bytes ...Burning's Video-planeMatrix-scaledClip.png | Bin 0 -> 33500 bytes .../Burning's Video-testGeometryCreator.png | Bin 0 -> 6088 bytes ...> Burning's Video-textureRenderStates.png} | Bin ...ing's Video-transparentAlphaChannelRef.png | Bin 0 -> 30112 bytes .../burnings video 0.39b-b3dAnimation.png | Bin 5915 -> 0 bytes .../media/burnings video 0.39b-drawPixel.png | Bin 24642 -> 0 bytes ...burnings video 0.39b-flyCircleAnimator.png | Bin 2577 -> 0 bytes ...gs video 0.39b-makeColorKeyTexture-new.png | Bin 19688 -> 0 bytes ...gs video 0.39b-makeColorKeyTexture-old.png | Bin 20933 -> 0 bytes .../burnings video 0.39b-md2Animation.png | Bin 5089 -> 0 bytes ...ngs video 0.39b-planeMatrix-scaledClip.png | Bin 32486 -> 0 bytes ...video 0.39b-transparentAlphaChannelRef.png | Bin 29723 -> 0 bytes tests/removeCustomAnimator.cpp | 52 + tests/testGeometryCreator.cpp | 58 + tests/testUtils.cpp | 7 +- tests/testVector3d.cpp | 2 +- tests/tests-last-passed-at.txt | 2 +- tests/tests.cbp | 3 + tests/tests.workspace | 4 +- tests/tests_vc8.sln | 3 + tests/tests_vc8.vcproj | 19 +- tests/tests_vc9.vcproj | 336 +- tests/writeImageToFile.cpp | 7 +- tools/GUIEditor/CGUIAttribute.h | 2 +- tools/GUIEditor/CGUIDummyEditorStub.h | 2 +- tools/GUIEditor/CGUIEditWindow.cpp | 20 +- tools/GUIEditor/CGUIEditWindow.h | 7 + tools/GUIEditor/CGUIEditWorkspace.cpp | 3 + tools/GUIEditor/CGUITextureCacheBrowser.cpp | 23 +- tools/GUIEditor/CGUITextureCacheBrowser.h | 7 + tools/GUIEditor/CMemoryReadWriteFile.cpp | 4 +- tools/GUIEditor/CMemoryReadWriteFile.h | 2 +- tools/GUIEditor/main.cpp | 16 +- tools/MeshConverter/MeshConverter_v9.vcproj | 189 + tools/MeshConverter/main.cpp | 11 +- 582 files changed, 47743 insertions(+), 29090 deletions(-) rename examples/01.HelloWorld/{example.dev => HelloWorld.dev} (100%) rename examples/02.Quake3Map/{example.dev => Quake3Map.dev} (100%) rename examples/03.CustomSceneNode/{example.dev => CustomSceneNode.dev} (100%) rename examples/04.Movement/{example.dev => Movement.dev} (100%) rename examples/05.UserInterface/{example.dev => UserInterface.dev} (100%) rename examples/06.2DGraphics/{example.dev => 2DGraphics.dev} (100%) rename examples/07.Collision/{example.dev => Collision.dev} (100%) rename examples/08.SpecialFX/{example.dev => SpecialFX.dev} (100%) rename examples/09.Meshviewer/{example.dev => MeshViewer.dev} (100%) rename examples/10.Shaders/{example.dev => Shaders.dev} (100%) rename examples/11.PerPixelLighting/{example.dev => PerPixelLighting.dev} (100%) rename examples/12.TerrainRendering/{example.dev => TerrainRendering.dev} (100%) rename examples/13.RenderToTexture/{example.dev => RenderToTexture.dev} (100%) rename examples/14.Win32Window/{example.dev => Win32Window.dev} (100%) rename examples/15.LoadIrrFile/{example.dev => LoadIrrFile.dev} (100%) rename examples/16.Quake3MapShader/{example.dev => Quake3MapShader.dev} (100%) create mode 100644 examples/17.HelloWorld_Mobile/17. HelloWorld for Windows Mobile on PC_v8.vcproj rename examples/18.SplitScreen/{example.dev => SplitScreen.dev} (100%) rename examples/19.MouseAndJoystick/{example.dev => MouseAndJoystick.dev} (100%) rename examples/20.ManagedLights/{example.dev => ManagedLights.dev} (100%) create mode 100644 examples/21.Quake3Explorer/Makefile create mode 100644 examples/21.Quake3Explorer/Quake3Explorer.dev create mode 100644 examples/21.Quake3Explorer/Quake3Explorer.sln create mode 100644 examples/21.Quake3Explorer/Quake3Explorer.vcproj create mode 100644 examples/21.Quake3Explorer/Quake3Explorer_vc7.vcproj create mode 100644 examples/21.Quake3Explorer/Quake3Explorer_vc8.vcproj create mode 100644 examples/21.Quake3Explorer/Quake3Explorer_vc9.vcproj create mode 100644 examples/21.Quake3Explorer/main.cpp create mode 100644 examples/21.Quake3Explorer/q3factory.cpp create mode 100644 examples/21.Quake3Explorer/q3factory.h create mode 100644 examples/21.Quake3Explorer/sound.cpp create mode 100644 examples/21.Quake3Explorer/sound.h create mode 100644 include/IFileArchive.h create mode 100644 include/IGUIImageList.h create mode 100644 include/IGUITreeView.h create mode 100644 include/IGeometryCreator.h create mode 100644 media/021shot.jpg delete mode 100644 media/2ddemo.bmp create mode 100644 media/2ddemo.png delete mode 100644 media/earth.bmp create mode 100644 media/earth.jpg delete mode 100644 media/earthbump.bmp create mode 100644 media/earthbump.jpg create mode 100644 media/gun.jpg create mode 100644 media/gun.md2 create mode 100644 media/iconlist.png create mode 100644 media/irrlichtlogo3.png delete mode 100644 media/rockwall.bmp create mode 100644 media/rockwall.jpg create mode 100644 media/skydome2.jpg create mode 100644 media/smoke2.jpg create mode 100644 media/smoke3.jpg delete mode 100644 media/sphere.3ds create mode 100644 source/Irrlicht/CGUIImageList.cpp create mode 100644 source/Irrlicht/CGUIImageList.h create mode 100644 source/Irrlicht/CGUITreeView.cpp create mode 100644 source/Irrlicht/CGUITreeView.h create mode 100644 source/Irrlicht/CImageLoaderRGB.cpp create mode 100644 source/Irrlicht/CImageLoaderRGB.h create mode 100644 source/Irrlicht/CIrrDeviceConsole.cpp create mode 100644 source/Irrlicht/CIrrDeviceConsole.h create mode 100644 source/Irrlicht/CPLYMeshFileLoader.cpp create mode 100644 source/Irrlicht/CPLYMeshFileLoader.h create mode 100644 source/Irrlicht/CPLYMeshWriter.cpp create mode 100644 source/Irrlicht/CPLYMeshWriter.h create mode 100644 source/Irrlicht/Irrlicht_xbox.sln create mode 100644 source/Irrlicht/Irrlicht_xbox.vcproj rename source/Irrlicht/libpng/{libpng-1.2.32.txt => libpng-1.2.35.txt} (97%) create mode 100644 tests/enumerateImageManipulators.cpp rename tests/media/{burnings video 0.39b-ambient-lighting.png => Burning's Video-ambient-lighting.png} (100%) create mode 100644 tests/media/Burning's Video-b3dAnimation.png create mode 100644 tests/media/Burning's Video-drawPixel.png rename tests/media/{burnings video 0.39b-drawRectOutline.png => Burning's Video-drawRectOutline.png} (100%) create mode 100644 tests/media/Burning's Video-flyCircleAnimator.png create mode 100644 tests/media/Burning's Video-makeColorKeyTexture-new.png create mode 100644 tests/media/Burning's Video-makeColorKeyTexture-old.png create mode 100644 tests/media/Burning's Video-md2Animation.png create mode 100644 tests/media/Burning's Video-planeMatrix-scaledClip.png create mode 100644 tests/media/Burning's Video-testGeometryCreator.png rename tests/media/{burnings video 0.39b-textureRenderStates.png => Burning's Video-textureRenderStates.png} (100%) create mode 100644 tests/media/Burning's Video-transparentAlphaChannelRef.png delete mode 100644 tests/media/burnings video 0.39b-b3dAnimation.png delete mode 100644 tests/media/burnings video 0.39b-drawPixel.png delete mode 100644 tests/media/burnings video 0.39b-flyCircleAnimator.png delete mode 100644 tests/media/burnings video 0.39b-makeColorKeyTexture-new.png delete mode 100644 tests/media/burnings video 0.39b-makeColorKeyTexture-old.png delete mode 100644 tests/media/burnings video 0.39b-md2Animation.png delete mode 100644 tests/media/burnings video 0.39b-planeMatrix-scaledClip.png delete mode 100644 tests/media/burnings video 0.39b-transparentAlphaChannelRef.png create mode 100644 tests/removeCustomAnimator.cpp create mode 100644 tests/testGeometryCreator.cpp create mode 100644 tools/MeshConverter/MeshConverter_v9.vcproj diff --git a/changes.txt b/changes.txt index ea01342a..48171a16 100644 --- a/changes.txt +++ b/changes.txt @@ -1,4 +1,613 @@ -Changes in version 1.6 +Changes in 1.6 + + - Direct3D now also uses screen coordinates in 2d mode, just like OpenGL. This means that screen coords are going from 0..ScreenWidth and 0..ScreenHeight instead of -1..1. + + - ALT+F4 keypress now closes Windows SDL device + + - Allow Direct3D drivers in SDL, patch by Halifax + + - Added compiler error when attempting to compile with VC6. + + - Use setWindowTextA in Windows device for WIN64 platform, posted by veegun + + - ELL_ERROR log events are now created when shaders fail to compile or link, reported by Halan + + - irrList now uses irrAllocator, fixed by Nox + + - Added IGUIWindow::setDraggable and IGUIWindow::isDraggable, by Nox + + - Added SGI RGB file reader by Gary Conway, for loading Silicon Graphics .rgb, .rgba, .sgi, .int and .inta textures + + - Renamed setResizeAble to setResizable + + - Added new device method minimizeWindow which minimizes the window (just as if the minimize button has been clicked). + + - SkyDome is now serialized correctly + + - Added PLY mesh reader and writer + + - Ensure ListBox on combo box doesn't hang off the bottom of the GUI root, by Matthias Specht + + - Made IGUIElements recalculate clipping rectangle after setNotClipped, reported by Aelis440 + + - Bug fix for the combo box where it showed white text instead of skin colour before being focused, fix posted by drewbacca + + - EGDS_MESSAGE_BOX_HEIGHT is now honoured, bug reported by Spkka + + - Fixed a bug in the edit box where events are sometimes sent to a null parent, reported by Sudi. + + - Coordinate system fix for OpenGL in SDL device + + - Added generic console device. You can now use Irrlicht to create and manipuate graphics on a shell where no graphics hardware + or windowing system is available. To enable it uncomment #define _IRR_USE_CONSOLE_DEVICE_ in IrrCompileConfig.h + - The console device can now present images from the software drivers and display them as ASCII art in the console + - By default it replaces the default font in the skin, to prevent fonts from being huge. + + +Changes in 1.6 TA + - implemented isALoadableFileFormat ( File *file ) for the Archive Loader +Changes in 1.6 TA + - PixelBlend16 and PixelBlend16_simd are working for the new rules. + - bugfix. CLightSceneNode didn't correctly update it's attributes + + Lighting Linear Attenuation. = 1.f / radius + + The Example loadirr files set the lightscene radius to 1000.f but + stays on the previous default attentuation with the older radius 100 -> 1.f / 100 + so the examples looks golden-brown. + + Now the radius is correctly!! set to the attenuation of 1.f/1000.f because the + file doesn't have special attenuation. and now it looks more yellow. + can anybody show me a correct screenshot for this file;-)? Niko? + + Or is this behavior the default lighting?. then it would be + a fixed constant linear attenuation of 0.01f;-). Please clearify + For now i didn't fixed it + + + I encountered this behavior because i ( burning video ) used the original radius + for calculations and so i've found that radius != 1.f / linearAttenuation but + in the LightSceneNode this formula was used.. confused;-) + + + - vector template and equals tests + as working with the test suits i cleaned the template behavior (mixed types are + used in the templates) and added all missing special math function with their coressponding type + I also set the equal test for s32 to behave like the f32 routine. + + The function equals always implements a weak test. + that means a tolerance MUST always be used if you use the equal function. default is 1. + you can set it to zero a==b-> equals ( a, b, 0 ) but do it explicit like you have to + for floating compare. This is important when irrlicht is going to use special hardware + math acceleration on a per function base, like sse2, or the other way round fixpoint. + + - VideoDriver drawPixel + The HW renderes are using the alpha components for blending. + The Software Renderes and image loaders are using CImage::setPixel copy. + so setPixel is engaged to either blends or copy the pixel + default: false + - Burningvideo + added RenderMaterial EMT_SPHERE_MAP + pushed burningsvideo to 0.43 + added RenderMaterial EMT_REFLECTION_2_LAYER + pushed burningsvideo to 0.44 + set EMT_TRANSPARENT_ALPHA_CHANNEL_REF + to use AlphaRef 0.5 like Direct3D + + One Note: in OpenGL there is know difference between sphere_map and reflection layer + both using GL_TEXTURE_GEN_MODE GL_SPHERE_MAP, whereas in d3d one time using camera_normal + on sphere and reflection on refletcion_layer. + + The visual difference is that on sphere map the "image is not moving" when you rotate the + viewer. For Buring i took the opengl visual. always moving + + + - rename quake3 SEntity to IEntity to be confom with IShader + even IShader and IEntity are none pure virtual interfaces + like most irrlicht objects +-------------------------------------------------------------- + +Changes in 1.6 TA + - fixed createMeshWith2TCoords + normals were missing during copy. + - addded + //! Creates a copy of the mesh, which will only consist of S3DVertex vertices. + IMesh* CMeshManipulator::createMeshWith1TCoords(IMesh* mesh) const + + - added io::IFileSystem* CSceneManager::getFileSystem() + for preparing to remove the (mostly) unnecessary double member variables + in many loaders + + - added virtual const c8* ISceneManager::getAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type); + to the SceneManger Interface. just like getTypeName is public + + - added CSceneNodeAnimatorFlyCircle::radiusEllipsoid. + if radiusEllipsoid == 0 the default circle animation is done + else radiusEllipsoid forms the b-axe of the ellipsoid. + + -> gummiball bouncing + + - added ISceneManager::createFlyStraightAnimator variable bool ping-pong + used in loop mode to device if start from beginning ( default ) or make ping-pong + + -> straight bouncing + + - changed IFileSystem::registerFileArchive + remove the index of the hiarchy and added a new interface method + + //! move the hirarchy of the filesystem. moves sourceIndex relative up or down + virtual bool moveFileArchive( u32 sourceIndex, s32 relative ) = 0; + + + - bugfix and changes in + SViewFrustum::SViewFrustum + wrong size of Matrices copy. This bug must be ages old... (typo) + detected during resizing the Matrices. removed obsolute Matrices + renamed E_TRANSFORMATION_STATE_2 to E_TRANSFORMATION_STATE_FRUSTUM + + therefore also changed SViewFrustum::setTransformState to not tap + in the pitfall again of wrong memory... + and renamed it to getTransform, like in the driver + and Matrices private + + - OpenGL: + Specular + - moved + //! EMT_ONETEXTURE_BLEND: has BlendFactor Alphablending + inline bool textureBlendFunc_hasAlpha ( E_BLEND_FACTOR factor ) const + from the material renderes ( 3x declared ) to SMaterial.h + + - updated managed light example to use standard driver selection + - BurningsVideo + - LightModel reworked. + Point Light & Direction Light works for Diffuse Color as aspected + Specular and Fog still have problems ( needs new pixel shader ) + pushed burningsvideo to 0.42 for this major step + + - removed obsolete matrix transformations + renamed E_TRANSFORMATION_STATE_2 to E_TRANSFORMATION_STATE_BURNING + + + - cleaned line3d.h vector3d.h template behavior. + many mixed f32/f64 implementations are here. i'm not sure if this should be + the default behavior to use f64 for example for 1.0/x value, because they + benefit from more precisions, but in my point of view the user is responsible + of choosing a vector3d or vector3d. + - added core::squareroot to irrmath.h + -> for having candidates for faster math in the same file + - added AllowZWriteOnTransparent from SceneManager to burningsvideo + Following SceneManger guideline + -added hasAlpha() to ITexture + This info can be used for e.q to downgrade a transparent alpha channel blit + to add if the texture has no alpha channel. + +-------------------------------------------------------------- +Changes in version 1.6, TA + +- FileSystem 2.0 SUPER MASTER MAJOR API CHANGE !!! + + The FileSystem is now build internally like for e.g. the image- and meshloaders. + There exists a known list of ArchiveLoaders, which know how to produce a Archive. + The Loaders and the Archives can be attached/detached on runtime. + + The FileNames are now stored as core::string. where c16 is toggled between char/wchar + with the #define flag _IRR_WCHAR_FILESYSTEM, to supported unicode backends (default:off) + Replaced most (const c8* filename) to string references. + + Basically the FileSystem is divided into two regions. Native and Virtual. + Native means using the backend OS. + Virtual means only use currently attached IArchives. + + Browsing + each FileSystem has it's own workdirectory and it's own methods to + - create a FileTree + - add/remove files & directory ( to be done ) + Hint: store a savegame in a zip archive... + + basic browsing for all archives is implemented. + Example 21. Quake3Explorer shows this + + TODO: + - a file filter should be implemented. + - The IArchive should have a function to create a filetree + for now CFileList is used. + + Class Hierarchy: + + IArchiveLoader: is able to produce a IFileArchive + - ZipLoader + - PakLoader + - MountPointReader ( formaly known as CUnzipReader ) + + IFileArchive: + -ZipArchive + -PakArchive + -MountPoint (known as FolderFile) + + IFileSystem + - addArchiveLoader + + - changed implementation of isALoadableFileExtension in all loaders + to have consistent behavior + - added a parameter to IFileList * createFileList + setFileListSystem + allows to query files in any of the game archives + standard behavior listtype = SYSTEM ( default) + + - CLimitReadFile + added multiple file random-access support. + solved problems with mixed compressed & uncompressed files in a zip + + TODO: + - Big Big Testing!! + - many loaders use their own private filesearching + - there are a lot of helper function ( getAbsolutePath, getFileDir ) + which should be adapted to the virtual filesystem + +- IrrlichtDevice + added: + virtual bool setGammaRamp( f32 red, f32 green, f32 blue, f32 brightness, f32 contrast ) = 0; + virtual bool getGammaRamp( f32 &red, f32 &green, f32 &blue ) = 0; + + and calculating methods to DeviceStub. + implemented in Win32, TODO: other Devices + + - irrlicht.h + changed exported irrlicht.dll routines createDevice, createDeviceEx, IdentityMatrix + to extern "C" name mangling. + + for easier dynamically loading the irrlicht library and different versions + + - ParticleSystem + removed the private (old?,wrong?) interface from the ParticleEffectors + to match the parent class irr::io::IAttributeExchangingObject::deserializeAttributes + TODO: + please test if the serialization works! + +- Generic + - vector3d& normalize() optimized + added reciprocal_squareroot for f64 + + - dimension2d + added operator dimension2d& operator=(const dimension2d& other) + to cast between different types + - vector2d bugfix operator+= + + - C3DMeshLoader renamed chunks const u16 to a enum + removing "variable declared but never used warning" + - added a global const identity Material + changed all references *((video::SMaterial*)0) to point to IdentityMaterial + removed warning: "a NULL reference is not allowed" + + - modified IRRLICHT_MATH to not support reciprocal stuff + but to use faster float-to-int conversion. + gcc troubles may they are. i'm using intel-compiler..;-) + - core::matrix4 + USE_MATRIX_TEST + + i tried to optimize the identity-check ( in means of performance) + i didn't succeed so well, so i made a define for the matrix isIdentity -check + for now it's sometimes faster to always calculate versus identity-check + but if there are a lot of scenenodes/ particles one can profit from the + fast_inverse matrix, when no scaling is used. further approvement could + be done on inverse for just tranlastion! ( many static scenenodes are not rotated, + they are just placed somewhere in the world) + one thing to take in account is that sizeof(matrix) is 64 byte and + with the additional bool/u32 makes it 66 byte which is not really cache-friendly.. + + - added buildRotateFromTo + Builds a matrix that rotates from one vector to another + + - irr::array. changed allocating routine in push_back + + okt, 2008. it's only allowed to alloc one element, if + default constructor has to be called. + + removes existing crashes. ( MD3 Mesh ) and possible others ones. + + A new list template should be made. + one with constructor/destructor calls ( safe_array ) and + one without. like the array since the beginning of irrlicht. + currently the array/string is extremly slow.. + + also a hint for the user has to be done, so that a struct T of + array must have a copy constructor of type T ( const T&other ). + + i needed hours to track that down... + + added a new method setAllocStrategy, + safe ( used + 1 ), double ( used * 2 + 1) + + better default strategies will be implemented + + - removed binary_search_const + i added it quite a long time ago, but it doesnt make real sense + a call to a sort method should happen always. i just wanted to safe + a few cycles.. + - added binary_search_multi + searches for a multi-set ( more than 1 entry in the sorted array) + returns start and end-index + + - changed some identity matrix settings to use core::IdentityMatrix + - added deletePathFromFilename to generic string functions in coreutil.h and + removed from CZipReader and CPakReader + + - s32 deserializeAttributes used instead of virtual void deserializeAttributes in + ParticleSystem ( wrong virtual was used) + +- strings & Locale + - started to add locale support + - added verify to string + - added some helper functions + + +- XBOX + i have access to a XBOX development machine now. I started to compile + for the XBOX. Question: Who did the previous implementation?. There + is no XBOX-Device inhere. maybe it's forbidden because of using the offical + Microsoft XDK. I will implement a native or sdl device based on opendk. + irrlicht compiles without errors on the xbox but can't be used. + + TODO: + - native XBOX Device +- Windows Mobile + reworked a little. added the mobile example to the windows solution for + cross development. + added maximal 128x128 texture size for windows mobile ( memory issues ) +- Collision Speed Up + + The Collision Speed Up greatly improves with many small static child-nodes + + - added COctTreeTriangleSelector::getTriangles for 3dline from user Piraaate + - modified createOctTreeTriangleSelector and createTriangleSelector + to allow node == 0, to be added to a meta selector + - CSceneNodeAnimatorCollisionResponse has the same problem as CSceneNodeAnimatorFPS + on first update: + Problem. you start setting the map. (setWorld). First update cames 4000 ms later. + The Animator applies the missing force... big problem... + changed to react on first update like camera. + + - add Variable FirstUpdate. if set to true ( on all changes ) + then position, lasttime, and falling are initialized + + -added #define OCTTREE_USE_HARDWARE in Octree.h + + if defined octtree uses internally a derived scene::MeshBuffer which has + the possibility to use the Hardware Vertex Buffer for static vertices and + dirty indices;-) + + if defined OCTTREE_USE_HARDWARE octree uses internally a derived scene::CMeshBuffer + so it's not just a replacement inside the octree. It also in the OctTreeSceneNode. + #define OCTTREE_PARENTTEST is also used. It's skip testing on fully outside and takes everything on fully inside + + + - virtual void ISceneNode::updateAbsolutePosition() + - changed + inline CMatrix4 CMatrix4::operator*(const CMatrix4& m2) const + + all two matrices have to be checked by isIdentity() + to let the isIdentity work always + + - changed inline bool CMatrix4::isIdentity() const + + on full identityCheck-> + to look first on Translation, because this is the most challenging element + which will likely not to be identity.. + + - virtual core::matrix4 getRelativeTransformation() const + + Hierarchy on Identity-Check + 1) ->getRelativeTransform -> 9 floating point checks to be passed as Identity + 2) ->isIdentity () -> 16 floating point checks to be passed as Identity + + - inline void CMatrix4::transformBoxEx(core::aabbox3d& box) const + added isIdentity() check + + +- changed CSceneNodeAnimatorCollisionResponse + - added CSceneNodeAnimatorCollisionResponse::setGravity + needed to set the differents Forces for the Animator. for eq. water.. + - added CSceneNodeAnimatorCollisionResponse::setAnimateTarget + - added CSceneNodeAnimatorCollisionResponse::getAnimateTarget + - changed CSceneNodeAnimatorCollisionResponse::animateNode to react on FirstUpdate + - TODO: set Gravity to Physically frame independent values.. + current response uses an frame depdended acceleration vector. + ~9.81 m/s^2 was achieved at around 50 fps with a setting of -0.03 + may effect existing application.. + +- SceneNodes + - CSkyDomeSceneNode + moved radius ( default 1000 ) to constructor + added Normals + added DebugInfo + added Material.ZBuffer, added SceneMaanager + + - CVolumeLightSceneNode: + changed default blending OneTextureBlendgl_src_color gl_src_alpha to + EMT_TRANSPARENT_ADD_COLOR ( gl_src_color gl_one ) + which gives the same effect on non-transparent-materials. + Following the unspoken guide-line, lowest effect as default + - changed SceneNode Skydome f64 to f32, + - AnimatedMesh + -Debug Data: + mesh normals didn't rotate with the scenenode fixed ( matrix-multiplication order) + - Camera SceneNode setPosition + Camera now finally allow to change position and target and updates all + effected animators.. + + a call to OnAnimate ( ) lastime < time or OnAnimate ( 0 ) will reset the + camera and fr. the collision animator to a new position + +- Device: + added the current mousebutton state to the Mouse Event + so i need to get the current mouse state from the OS + + -added to CIrrDeviceWin32 + TODO: + - Linux and SDL Device +- GUI + + - CGUIFont: + - added virtual void setInvisibleCharacters( const wchar_t *s ) = 0; + + define which characters should not be drawn ( send to driver) by the font. + for example " " would not draw any space which is usually blank in most fonts + and saves rendering of ususally full blank alpha-sprites. + This saves a lot of rendering... + + default: + setInvisibleCharacters ( L" " ); + + - added MultiLine rendering + should avoid to us CStaticText breaking text in future + - CGUIListBox + - changed Scrollbar LargeStepSize to ItemHeight + which easy enables to scroll line by line + + - CGUIScrollBar + bug: + Create a Window and inside a listbox with a scrollbar or + a windowed irrlicht application + + Click & hold Scrollbar Slider. move outside it's region. + Release Mouse. Go Back to Scrollbar.. it's moving always... + + it's generally missing the event PRESSED_MOVED, which + leads to problem when an element is dragging, has a focus, or position loose + and gets focus back again. ( think of a drunken mouse sliding left&right during tracking ) + + so added the mouse Input Buttonstates on every mouse event + IrrDeviceWin32: + added event.MouseInput.ButtonStates = wParam & ( MK_LBUTTON | MK_RBUTTON | MK_MBUTTON ); + TODO: + Linux & SDL + + so now i can do this + case irr::EMIE_MOUSE_MOVED: + if ( !event.MouseInput.isLeftPressed () ) + { + Dragging = false; + } + + - bug: + Scrollbar notifyListBox notify when the scrollbar is clicked. + + - changed timed event in draw to OnPostRender + + - added GUI Image List from Reinhard Ostermeier, modified to work + added GUI Tree View from Reinhard Ostermeier, modified to work + shown in the Quake3MapShader Example + TODO: Spritebanks + + - FileOpenDialog + changed the static text for the filename to an edit box. + - changed the interface for addEditBox to match with addStaticText + - changed the interface for addSpinBox to match with addEditBox + - added MouseWheel to Spinbox + - changed CGUITable CLICK_AREA from 3 to 12 to enable clicking on the visible marker + - CGUISpritebank + removed some crashes with empty Sprite banks + - IGUIScrollBar + added SetMin before min was always 0 + changed ScrollWheel Direction on horizontal to move right on wheel up, left on wheel down + + - IComboBox + -added ItemData + - optimized IsVisible check in IGUIElement::draw + + +- Image Loaders + - added TGA file type 2 ( grayscale uncompressed ) + - added TGA file type (1) 8 Bit indexed color uncompressed + + ColorConverter: + - added convert_B8G8R8toA8R8G8B8 + - added convert_B8G8R8A8toA8R8G8B8 + +- Media Files + - added missing shaders and textures to map-20kdm2. + Taken from free implementation + - ball.wav. adjusted DC-Offset, amplified to -4dB, trim cross-zero + - impact.wav clip-restoration, trim cross-zero + - added gun.md2, gun.pcx to media-files + - added new irrlicht logo irrlicht3.png + +- OctTree + -added + #define OCTTREE_PARENTTEST ( default: disabled ) + used to leave-out children test if the parent passed a complete frustum. + plus: leaves out children test + minus: all edges have to be checked + - added MeshBuffer Hardware Hint Vertex to octtree + +- CQuake3ShaderSceneNode: + - removed function releaseMesh + Shader doesn't copy the original mesh anymore ( saving memory ) + so therefore this (for others often misleading ) function was removed + - changed constructor to take a (shared) destination meshbuffer for rendering + reducing vertex-memory to a half + - don't copy the original vertices anymore + - added deformvertexes autosprite + - added deformvertexes move + - added support for RTCW and Raven BSPs ( qmap2 ) + - added polygonoffset (TODO: not perfect) + - added added nomipmaps + - added rgbgen const + - added alphagen + - added MesBuffer Hardware Hint Vertex/Index to Quake3: static geometry, dynamic indices + - added Quake3Explorer examples + - added wave noise + - added tcmod transform + - added whiteimage + - added collision to Quake3Explorer + - renamed SMD3QuaterionTag* to SMD3QuaternionTag* ( typo ) + - updated quake3:blendfunc + - added crouch to Quake3Explorer + (modifying the ellipsiodRadius of the camera animator ) + added crouch to CSceneNodeAnimatorCameraFPS + still problems with stand up and collision + - Quake3MapLoader + modified memory allocation for faster loading + - Quake3LoadParam + added Parameter to the Mesh-Loader + - added + The still existing missing caulking of curved surfaces. + using round in the coordinates doesn't solve the problem. + but for the demo bsp mesh it solves the problem... (luck) + so for now it's switchable. + TJUNCTION_SOLVER_ROUND + default:off + +- BurningVideo + - pushed BurningsVideo to 0.40 + - added blendfunc gl_one_minus_dst_alpha gl_one + - added blendfunc gl_dst_color gl_zero + - added blendfunc gl_dst_color src_alpha + - modified AlphaChannel_Ref renderer to support alpha test lessequal + - addded 32 Bit Index Buffer + - added sourceRect/destRect check to 2D-Blitter ( slower, but resolves crash ) + - added setTextureCreationFlag video::ETCF_ALLOW_NON_POWER_2 + Burning checks this flag and when set, it bypasses the power2 size check, + which is necessary on 3D but can be avoided on 2D. + used on fonts automatically. + - added Support for Destination Alpha + +- Direct3D8 + - added 32 Bit Index Buffer + - compile for XBOX +- Direc3D9 + - fixed crash on RTT Textures DepthBuffer freed twice. + added deleteAllTextures to destuctor +- NullDriver + - removeallTextures. added setMaterial ( SMaterial() ) to clean pointers for freed textures + + - ISceneCollisionManager::getSceneNodeAndCollisionPointFromRay() allows selection by BB and triangle on a heirarchy of scene nodes. + + - Triangle selectors created from animated mesh scene nodes will update themselves as required to stay in sync with the node. + + - IVideoDriver has methods to enumerate the available image loaders and writers. + + - Octtree scene nodes are now IMeshSceneNodes rather than ISceneNodes, and so you can call getMesh() on them. - New scene parameter B3D_LOADER_IGNORE_MIPMAP_FLAG to ignore the often missing mipmap flag in b3d files. If this parameter is true, the old pre Irrlicht-1.5 behavior is restored. @@ -55,12 +664,36 @@ Changes in version 1.6 ------------------------------------- Changes in version 1.5.1 (??.?? 2009) + - Fix loading of Collada files from irrEdit 1.2 + + - Update to libpng 1.2.35, fixed issues on 64bit machines with system's libpng. + + - Remove texture pointers after texture clear. + + - Fix ALPHA_CHANNEL_REF to a fixed check for alpha==127 as expected. + - Fixed OSX device bug where screen size was not set in fullscreen mode. + - OpenGL version calculation fixed. + - OSX device now supports shift and ctrl keys. + - Fixed ambient light issues in bruningsvideo. + + - device reset for d3d fixed when using VBOs. + - MD2 mesh loader: Now uses much less memory, reduced number of allocations when loading meshes. + - OpenGL render state (texture wrongly cached) fixed. + + - Fixed animator removal. + + - Fix terrain to use 32bit only when necessary, make terrain use hw buffers. Heightmap loading and height calculation fixed. + + - Some mem leaks fixed + + - FPS camera resets the cursor better + ----------------------------------- Changes in version 1.5 (15.12.2008) @@ -1031,7 +1664,7 @@ Font improvements: Texture scaling bugfix, support for alpha blending, new option to normalise weights, animation code optimization, fixed memory leak -- ROUNDING_ERROR is now ROUNDING_ERROR_32 or ROUNDING_ERROR_64 +- ROUNDING_ERROR is now ROUNDING_ERROR_f32 or ROUNDING_ERROR_f64 - Material ZBuffer flag changed to a u32 value Reason: change ( off or on ) to , off, lequal, equal diff --git a/examples/01.HelloWorld/HelloWorld.cbp b/examples/01.HelloWorld/HelloWorld.cbp index 61e9a815..68d07e2d 100644 --- a/examples/01.HelloWorld/HelloWorld.cbp +++ b/examples/01.HelloWorld/HelloWorld.cbp @@ -6,6 +6,17 @@