Commit 9bc11201 authored by hybrid's avatar hybrid

Merged from 1.5 branch to trunk, all changes from 1933 to 1953. Camera and...

Merged from 1.5 branch to trunk, all changes from 1933 to 1953. Camera and animation fixes, project file updates, etc.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1954 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 7e9e5f17
This diff is collapsed.
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\01.HelloWorld.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\01.HelloWorld.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/HelloWorld.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\01.HelloWorld.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\01.HelloWorld.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/HelloWorld.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\01.HelloWorld.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\01.HelloWorld.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/HelloWorld.pdb"
......
......@@ -39,7 +39,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\02.Quake3Map.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -101,7 +101,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\02.Quake3Map.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Quake3Map.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\02.Quake3Map.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\02.Quake3Map.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Quake3Map.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\02.Quake3Map.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\02.Quake3Map.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Quake3Map.pdb"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\03.CustomSceneNode.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\03.CustomSceneNode.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/CustomSceneNode.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\03.CustomSceneNode.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\03.CustomSceneNode.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/CustomSceneNode.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\03.CustomSceneNode.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\03.CustomSceneNode.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/CustomSceneNode.pdb"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\04.Movement.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\04.Movement.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Movement.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\04.Movement.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\04.Movement.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Movement.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\04.Movement.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\04.Movement.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Movement.pdb"
......
......@@ -149,13 +149,13 @@ int main()
a md2 model, which uses a 'fly straight' animator to run between to points.
*/
scene::IAnimatedMeshSceneNode* anms =
smgr->addAnimatedMeshSceneNode(smgr->getMesh("../../media/sydney.md2"));
smgr->addAnimatedMeshSceneNode(smgr->getMesh("../../media/ninja.b3d"));
if (anms)
{
scene::ISceneNodeAnimator* anim =
smgr->createFlyStraightAnimator(core::vector3df(100,0,60),
core::vector3df(-100,0,60), 2500, true);
core::vector3df(-100,0,60), 3500, true);
if (anim)
{
anms->addAnimator(anim);
......@@ -176,12 +176,13 @@ int main()
*/
anms->setMaterialFlag(video::EMF_LIGHTING, false);
anms->setFrameLoop(160, 183);
anms->setAnimationSpeed(40);
anms->setMD2Animation(scene::EMAT_RUN);
anms->setFrameLoop(0, 14);
anms->setAnimationSpeed(15);
// anms->setMD2Animation(scene::EMAT_RUN);
anms->setRotation(core::vector3df(0,180.0f,0));
anms->setMaterialTexture(0, driver->getTexture("../../media/sydney.bmp"));
anms->setScale(core::vector3df(2.f,2.f,2.f));
anms->setRotation(core::vector3df(0,-90,0));
// anms->setMaterialTexture(0, driver->getTexture("../../media/sydney.bmp"));
}
......@@ -190,7 +191,7 @@ int main()
To be able to look at and move around in this scene, we create a first
person shooter style camera and make the mouse cursor invisible.
*/
smgr->addCameraSceneNodeFPS(0, 100.0f, 100.0f);
smgr->addCameraSceneNodeFPS(0, 100.0f, .1f);
device->getCursorControl()->setVisible(false);
/*
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\05.UserInterface.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\05.UserInterface.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/UserInterface.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\05.UserInterface.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\05.UserInterface.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/UserInterface.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\05.UserInterface.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\05.UserInterface.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/UserInterface.pdb"
......
......@@ -41,7 +41,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\06.2DGraphics.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/2DGraphics.pdb"
......@@ -101,7 +101,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\06.2DGraphics.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\06.2DGraphics.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/2DGraphics.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\06.2DGraphics.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -74,7 +74,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\06.2DGraphics.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/2DGraphics.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\06.2DGraphics.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\07.Collision.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\07.Collision.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Collision.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\07.Collision.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\07.Collision.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Collision.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\07.Collision.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\07.Collision.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Collision.pdb"
......
......@@ -130,7 +130,7 @@ int main()
// Set a jump speed of 3 units per second, which gives a fairly realistic jump
// when used with the gravity of (0, -10, 0) in the collision response animator.
scene::ICameraSceneNode* camera =
smgr->addCameraSceneNodeFPS(0, 100.0f, 300.0f, -1, 0, 0, true, 3.f);
smgr->addCameraSceneNodeFPS(0, 100.0f, .3f, -1, 0, 0, true, 3.f);
camera->setPosition(core::vector3df(-100,50,-150));
if (selector)
......
......@@ -41,7 +41,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\08.SpecialFx.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/SpecialFx.pdb"
......@@ -101,7 +101,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\08.SpecialFx.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\08.SpecialFx.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/SpecialFx.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\08.SpecialFx.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -74,7 +74,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\08.SpecialFx.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/SpecialFx.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\08.SpecialFx.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -41,7 +41,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/MeshViewer.pdb"
......@@ -101,7 +101,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/MeshViewer.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -74,7 +74,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/MeshViewer.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\10.Shaders.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\10.Shaders.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Shaders.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\10.Shaders.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\10.Shaders.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Shaders.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\10.Shaders.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\10.Shaders.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Shaders.pdb"
......
......@@ -380,7 +380,7 @@ int main()
// add a camera and disable the mouse cursor
scene::ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS(0, 100.0f, 100.0f);
scene::ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS(0, 100.0f, .1f);
cam->setPosition(core::vector3df(-100,50,100));
cam->setTarget(core::vector3df(0,0,0));
device->getCursorControl()->setVisible(false);
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\11.PerPixelLighting.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\11.PerPixelLighting.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/PerPixelLighting.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\11.PerPixelLighting.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\11.PerPixelLighting.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/PerPixelLighting.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\11.PerPixelLighting.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\11.PerPixelLighting.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/PerPixelLighting.pdb"
......
......@@ -208,7 +208,7 @@ int main()
// add camera
scene::ICameraSceneNode* camera =
smgr->addCameraSceneNodeFPS(0,100.0f,300.0f);
smgr->addCameraSceneNodeFPS(0, 100.0f, .3f);
camera->setPosition(core::vector3df(-200,200,-200));
// disable mouse cursor
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\12.TerrainRendering.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\12.TerrainRendering.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/TerrainRendering.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\12.TerrainRendering.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\12.TerrainRendering.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/TerrainRendering.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\12.TerrainRendering.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\12.TerrainRendering.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/TerrainRendering.pdb"
......
......@@ -133,7 +133,7 @@ int main()
// add camera
scene::ICameraSceneNode* camera =
smgr->addCameraSceneNodeFPS(0,100.0f,1200.f);
smgr->addCameraSceneNodeFPS(0,100.0f,1.2f);
camera->setPosition(core::vector3df(2700*2,255*2,2600*2));
camera->setTarget(core::vector3df(2397*2,343*2,2700*2));
......
......@@ -41,7 +41,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/RenderToTexture.pdb"
......@@ -101,7 +101,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/RenderToTexture.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -74,7 +74,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/RenderToTexture.pdb"
......@@ -163,7 +163,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\14.Win32Window.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\14.Win32Window.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Win32Window.pdb"
......
......@@ -73,7 +73,7 @@
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib"
OutputFile="..\..\bin\Win32-VisualStudio\14.Win32Window.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -165,7 +165,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\14.Win32Window.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Win32Window.pdb"
......
......@@ -74,7 +74,7 @@
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib"
OutputFile="..\..\bin\Win32-VisualStudio\14.Win32Window.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -165,7 +165,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\14.Win32Window.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Win32Window.pdb"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\15.LoadIrrFile.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\15.LoadIrrFile.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/LoadIrrFile.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\15.LoadIrrFile.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\15.LoadIrrFile.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/LoadIrrFile.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\15.LoadIrrFile.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\15.LoadIrrFile.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/LoadIrrFile.pdb"
......
......@@ -74,7 +74,7 @@ int main()
Now we'll create a camera, and give it a collision response animator
that's built from the mesh nodes in the scene we just loaded.
*/
scene::ICameraSceneNode * camera = smgr->addCameraSceneNodeFPS(0, 50, 100);
scene::ICameraSceneNode * camera = smgr->addCameraSceneNodeFPS(0, 50.f, 0.1f);
// Create a meta triangle selector to hold several triangle selectors.
scene::IMetaTriangleSelector * meta = smgr->createMetaTriangleSelector();
......
......@@ -33,7 +33,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\16.Quake3MapShader.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/Quake3MapShader.pdb"
......@@ -90,7 +90,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\16.Quake3MapShader.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="FALSE"
......
......@@ -143,7 +143,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\16.Quake3MapShader.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="false"
SubSystem="1"
......
......@@ -142,7 +142,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\16.Quake3MapShader.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="false"
SubSystem="1"
......
......@@ -149,7 +149,7 @@
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,5.02"
OutputFile="$(OutDir)\17.HelloWorld_mobile.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\WinCE-visualstudio\"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
......
......@@ -33,7 +33,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\18.SplitScreen.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/SplitScreen.pdb"
......@@ -90,7 +90,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\18.SplitScreen.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="FALSE"
......
......@@ -143,7 +143,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\18.SplitScreen.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="false"
SubSystem="1"
......
......@@ -142,7 +142,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\18.SplitScreen.exe"
LinkIncremental="1"
LinkIncremental="0"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="false"
SubSystem="1"
......
......@@ -40,7 +40,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\19.MouseAndJoystick.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......@@ -102,7 +102,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\19.MouseAndJoystick.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/MouseAndJoystick.pdb"
......
......@@ -72,7 +72,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\19.MouseAndJoystick.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\19.MouseAndJoystick.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/MouseAndJoystick.pdb"
......
......@@ -73,7 +73,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\19.MouseAndJoystick.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......@@ -164,7 +164,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\19.MouseAndJoystick.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/MouseAndJoystick.pdb"
......
......@@ -209,15 +209,21 @@ int main()
const SEvent::SJoystickEvent & joystickData = receiver.GetJoystickState();
// Use the analog range of the axes, and a 5% dead zone
// We receive the full analog range of the axes, and so have to implement our
// own dead zone. This is an empirical value, since some joysticks have more
// jitter or creep around the center point than others. We'll use 5% of the
// range as the dead zone, but generally you would want to give the user the
// option to change this.
const f32 DEAD_ZONE = 0.05f;
moveHorizontal =
(f32)joystickData.Axis[SEvent::SJoystickEvent::AXIS_X] / 32767.f;
if(fabs(moveHorizontal) < 0.05f)
if(fabs(moveHorizontal) < DEAD_ZONE)
moveHorizontal = 0.f;
moveVertical =
(f32)joystickData.Axis[SEvent::SJoystickEvent::AXIS_Y] / -32767.f;
if(fabs(moveVertical) < 0.05f)
if(fabs(moveVertical) < DEAD_ZONE)
moveVertical = 0.f;
// POV hat info is only currently supported on Windows, but the value is
......
......@@ -324,7 +324,7 @@ void CDemo::switchToNextScene()
keyMap[8].Action = EKA_JUMP_UP;
keyMap[8].KeyCode = KEY_KEY_J;
camera = sm->addCameraSceneNodeFPS(0, 100.0f, 400.0f, -1, keyMap, 9, false, 3.f);
camera = sm->addCameraSceneNodeFPS(0, 100.0f, .4f, -1, keyMap, 9, false, 3.f);
camera->setPosition(core::vector3df(108,140,-140));
scene::ISceneNodeAnimatorCollisionResponse* collider =
......
......@@ -63,7 +63,7 @@ private:
#ifdef USE_IRRKLANG
void startIrrKlang();
irrklang::ISoundEngine* irrKlang;
irrklang::ISoundEngine* irrKlang;
irrklang::ISoundSource* ballSound;
irrklang::ISoundSource* impactSound;
#endif
......
......@@ -41,7 +41,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\Demo.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Demo.pdb"
......@@ -105,7 +105,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\Demo.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="TRUE"
......
......@@ -76,7 +76,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\Demo.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Demo.pdb"
......@@ -170,7 +170,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\Demo.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -77,7 +77,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\Demo.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
ProgramDatabaseFile=".\Release/Demo.pdb"
......@@ -170,7 +170,7 @@
<Tool
Name="VCLinkerTool"
OutputFile="..\..\bin\Win32-VisualStudio\Demo.exe"
LinkIncremental="1"
LinkIncremental="0"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
GenerateDebugInformation="true"
......
......@@ -65,7 +65,7 @@ namespace scene
/** If the camera's target and rotation are bound ( @see
bindTargetAndRotation() ) then calling this will also change
the camera's scene node rotation to match the target.
\param pos Look at target of the camera. */
\param pos Look at target of the camera, in world co-ordinates. */
virtual void setTarget(const core::vector3df& pos) = 0;
//! Sets the rotation of the node.
......@@ -77,7 +77,7 @@ namespace scene
virtual void setRotation(const core::vector3df& rotation) = 0;
//! Gets the current look at target of the camera
/** \return The current look at target of the camera */
/** \return The current look at target of the camera, in world co-ordinates */
virtual const core::vector3df& getTarget() const = 0;
//! Sets the up vector of the camera.
......@@ -85,7 +85,7 @@ namespace scene
virtual void setUpVector(const core::vector3df& pos) = 0;
//! Gets the up vector of the camera.
/** \return The up vector of the camera. */
/** \return The up vector of the camera, in world space. */
virtual const core::vector3df& getUpVector() const = 0;
//! Gets the value of the near plane of the camera.
......
......@@ -269,11 +269,11 @@ struct SEvent
/** For AXIS_X, AXIS_Y, AXIS_Z, AXIS_R, AXIS_U and AXIS_V
* Values are in the range -32768 to 32767, with 0 representing
* the center position. You will usually want to add a dead
* zone around this center range. Axes not supported by this
* joystick will always have a value of 0.
* On Linux, POV hats are represented as axes, usually the
* last two active axis.
* the center position. You will receive the raw value from the
* joystick, and so will usually want to implement a dead zone around
* the center of the range. Axes not supported by this joystick will
* always have a value of 0. On Linux, POV hats are represented as axes,
* usually the last two active axis.
*/
s16 Axis[NUMBER_OF_AXES];
......
......@@ -6,7 +6,7 @@
#define __IRR_COMPILE_CONFIG_H_INCLUDED__
//! Irrlicht SDK Version
#define IRRLICHT_SDK_VERSION "1.5.beta"
#define IRRLICHT_SDK_VERSION "1.5"
#include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw
......
......@@ -180,7 +180,7 @@
#include "vector2d.h"
#include "vector3d.h"
/*! \mainpage Irrlicht Engine 1.5.beta API documentation
/*! \mainpage Irrlicht Engine 1.5 API documentation
*
* <div align="center"><img src="logobig.png" ></div>
*
......
......@@ -934,16 +934,17 @@ namespace core
normal.normalize();
// The normal needs to be rotated and inverse scaled, but not translated.
rotateVect(normal);
const vector3df scale = getScale();
if(!equals(scale.X, 0.f) && !equals(scale.Y, 0.f) && !equals(scale.Z, 0.f)
&& (!equals(scale.X, 1.f) || !equals(scale.Y, 1.f) || !equals(scale.Z, 1.f)))
{
// Rotating the vector also applied the scale, so we have to invert it twice.
// Rotating the vector will also apply the scale, so we have to invert it twice.
normal /= (scale * scale);
}
rotateVect(normal);
normal.normalize();
plane.setPlane(member, normal);
}
......
hey guys heres all the ranges for the ninja model, 20 ranges and 300 frames....Phew!!
you may need to scale or rotate the model and change animation speeds for various 3D game engines...
Please check the numbers carefully cus they dont follow any order and in between ranges often skip a few frames, this as how I achieved certain moves in Character FX its not a mistake :)
1-14 Walk (normal)
15-30 Stealth Walk
32-44 Punch and swipe sword
45-59 Swipe and spin sword
60-68 Overhead twohanded downswipe
69-72 Up to block position (play backwards to lower sword if you want)
73-83 Forward kick
84-93 Pick up from floor (or down to crouch at frame 87)
94-102 Jump
103-111 Jump without height (for programmer controlled jumps)
112-125 High jump to Sword Kill (Finish em off move??)
126-133 Side Kick
134-145 Spinning Sword attack (might wanna speed this up in game)
146-158 Backflip
159-165 Climb wall
166-173 Death 1 - Fall back onto ground
174-182 Death 2 - Fall forward onto ground
184-205 Idle 1 - Breathe heavily
206-250 Idle 2
251-300 Idle 3
Ok there it is, have fun and maybe drop by my forums hang out, ask questions, post your own work etc
Feel free to use however you like, commercial etc, credits are Appreciated as a LOT of work went into this! ;-)
Psionic
http://www.psionic3d.co.uk
==========================================================================
The Irrlicht Engine SDK version 1.5.beta
The Irrlicht Engine SDK version 1.5
==========================================================================
Welcome the Irrlicht Engine SDK.
......
......@@ -205,7 +205,7 @@ IMesh * CAnimatedMeshSceneNode::getMeshForCurrentFrame(void)
{
if(Mesh->getMeshType() != EAMT_SKINNED)
{
if(!MeshForCurrentFrame || core::equals(CurrentFrameNr, FrameWhenCurrentMeshWasGenerated))
if(!MeshForCurrentFrame || !core::equals(CurrentFrameNr, FrameWhenCurrentMeshWasGenerated))
MeshForCurrentFrame = Mesh->getMesh((s32)getFrameNr(), 255, StartFrame, EndFrame);
}
else
......
......@@ -582,7 +582,6 @@ void CGUIFont::draw(const wchar_t* text, const core::rect<s32>& position, video:
core::dimension2d<s32> textDimension;
core::position2d<s32> offset = position.UpperLeftCorner;
core::rect<s32> pos;
if (hcenter || vcenter || clip)
textDimension = getDimension(text);
......
......@@ -517,6 +517,28 @@ static void executeBlit_TextureCopy_16_to_32( const SBlitJob * job )
}
}
static void executeBlit_TextureCopy_16_to_24( const SBlitJob * job )
{
const u16 *src = (u16*) job->src;
u8 *dst = (u8*) job->dst;
for ( s32 dy = 0; dy != job->height; ++dy )
{
for ( s32 dx = 0; dx != job->width; ++dx )
{
u32 colour = video::A1R5G5B5toA8R8G8B8( src[dx] );
u8 * writeTo = &dst[dx * 3];
*writeTo++ = (colour >> 16)& 0xFF;
*writeTo++ = (colour >> 8) & 0xFF;
*writeTo++ = colour & 0xFF;
}
src = (u16*) ( (u8*) (src) + job->srcPitch );
dst += job->dstPitch;
}
}
/*!
*/
static void executeBlit_TextureCopy_24_to_32( const SBlitJob * job )
......@@ -539,6 +561,27 @@ static void executeBlit_TextureCopy_24_to_32( const SBlitJob * job )
}
}
static void executeBlit_TextureCopy_32_to_24( const SBlitJob * job )
{
const u32 * src = (u32*) job->src;
u8 * dst = (u8*) job->dst;
for ( s32 dy = 0; dy != job->height; ++dy )
{
for ( s32 dx = 0; dx != job->width; ++dx )
{
u8 * writeTo = &dst[dx * 3];
*writeTo++ = (src[dx] >> 16)& 0xFF;
*writeTo++ = (src[dx] >> 8) & 0xFF;
*writeTo++ = src[dx] & 0xFF;
}
src = (u32*) ( (u8*) (src) + job->srcPitch );
dst += job->dstPitch ;
}
}
/*!
*/
......@@ -754,9 +797,15 @@ static tExecuteBlit getBlitter( eBlitter operation,const video::IImage * dest,co
if ( destFormat == video::ECF_A8R8G8B8 && sourceFormat == video::ECF_A1R5G5B5 )
return executeBlit_TextureCopy_16_to_32;
if ( destFormat == video::ECF_R8G8B8 && sourceFormat == video::ECF_A1R5G5B5 )
return executeBlit_TextureCopy_16_to_24;
if ( destFormat == video::ECF_A8R8G8B8 && sourceFormat == video::ECF_R8G8B8 )
return executeBlit_TextureCopy_24_to_32;
if ( destFormat == video::ECF_R8G8B8 && sourceFormat == video::ECF_A8R8G8B8 )
return executeBlit_TextureCopy_32_to_24;
} break;
case BLITTER_TEXTURE_ALPHA_BLEND:
......
......@@ -122,7 +122,7 @@ IAnimatedMesh* COBJMeshFileLoader::createMesh(io::IReadFile* file)
case 't': // texcoord
{
core::vector2df vec;
bufPtr = readVec2(bufPtr, vec, bufEnd);
bufPtr = readUV(bufPtr, vec, bufEnd);
textureCoordBuffer.push_back(vec);
}
break;
......@@ -644,7 +644,7 @@ const c8* COBJMeshFileLoader::readVec3(const c8* bufPtr, core::vector3df& vec, c
//! Read 2d vector of floats
const c8* COBJMeshFileLoader::readVec2(const c8* bufPtr, core::vector2df& vec, const c8* const bufEnd)
const c8* COBJMeshFileLoader::readUV(const c8* bufPtr, core::vector2df& vec, const c8* const bufEnd)
{
const u32 WORD_BUFFER_LENGTH = 256;
c8 wordBuffer[WORD_BUFFER_LENGTH];
......@@ -652,7 +652,7 @@ const c8* COBJMeshFileLoader::readVec2(const c8* bufPtr, core::vector2df& vec, c
bufPtr = goAndCopyNextWord(wordBuffer, bufPtr, WORD_BUFFER_LENGTH, bufEnd);
vec.X=core::fast_atof(wordBuffer);
bufPtr = goAndCopyNextWord(wordBuffer, bufPtr, WORD_BUFFER_LENGTH, bufEnd);
vec.Y=-core::fast_atof(wordBuffer); // change handedness
vec.Y=1-core::fast_atof(wordBuffer); // change handedness
return bufPtr;
}
......
......@@ -96,7 +96,7 @@ private:
//! Read 3d vector of floats
const c8* readVec3(const c8* bufPtr, core::vector3df& vec, const c8* const pBufEnd);
//! Read 2d vector of floats
const c8* readVec2(const c8* bufPtr, core::vector2df& vec, const c8* const pBufEnd);
const c8* readUV(const c8* bufPtr, core::vector2df& vec, const c8* const pBufEnd);
//! Read boolean value represented as 'on' or 'off'
const c8* readBool(const c8* bufPtr, bool& tf, const c8* const bufEnd);
......
......@@ -44,7 +44,7 @@
<Add library="winmm" />
</Linker>
<ExtraCommands>
<Add after="mv ../../lib/gcc/Irrlicht.dll ../../bin/gcc/Irrlicht.dll" />
<Add after="mv ..\..\lib\gcc\Irrlicht.dll ..\..\bin\gcc\Irrlicht.dll" />
</ExtraCommands>
</Target>
<Target title="Win32 - Release - accurate math - dll">
......@@ -83,7 +83,7 @@
<Add library="winmm" />
</Linker>
<ExtraCommands>
<Add after="mv ../../lib/gcc/Irrlicht.dll ../../bin/gcc/Irrlicht.dll" />
<Add after="mv ..\..\lib\gcc\Irrlicht.dll ..\..\bin\gcc\Irrlicht.dll" />
</ExtraCommands>
</Target>
<Target title="Win32 - Release - fast math - dll">
......@@ -123,7 +123,7 @@
<Add library="winmm" />
</Linker>
<ExtraCommands>
<Add after="mv ../../lib/gcc/Irrlicht.dll ../../bin/gcc/Irrlicht.dll" />
<Add after="mv ..\..\lib\gcc\Irrlicht.dll ..\..\bin\gcc\Irrlicht.dll" />
</ExtraCommands>
</Target>
<Target title="Linux - Debug - shared">
......
This diff is collapsed.
VERSION = 1.5.beta
# Irrlicht Engine 1.5.beta
VERSION = 1.5
# Irrlicht Engine 1.5
# Makefile for Linux
#
# To use, just run:
......
// Copyright (C) 2008 Colin MacDonald
// No rights reserved: this software is in the public domain.
#include "irrlicht.h"
#include "testUtils.h"
#include <assert.h>
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
// Tests B3D animations.
/** Verify that two skinned animated mesh scene nodes can use different frames of the skinned mesh */
bool b3dAnimation(void)
{
// Use EDT_BURNINGSVIDEO since it is not dependent on (e.g.) OpenGL driver versions.
IrrlichtDevice *device = createDevice( EDT_BURNINGSVIDEO, dimension2d<s32>(160, 120), 32);
assert(device);
if (!device)
return false;
IVideoDriver* driver = device->getVideoDriver();
ISceneManager * smgr = device->getSceneManager();
IAnimatedMesh* mesh = smgr->getMesh("../media/ninja.b3d");
IAnimatedMeshSceneNode* node1;
IAnimatedMeshSceneNode* node2;
assert(mesh);
bool result = false;
if(mesh)
{
node1 = smgr->addAnimatedMeshSceneNode(mesh);
assert(node1);
if(node1)
{
node1->setPosition(vector3df(-3, -3, 10));
node1->setMaterialFlag(EMF_LIGHTING, false);
node1->setAnimationSpeed(0.f);
}
node2 = smgr->addAnimatedMeshSceneNode(mesh);
assert(node2);
if(node2)
{
node2->setPosition(vector3df(3, -3, 10));
node2->setMaterialFlag(EMF_LIGHTING, false);
node2->setAnimationSpeed(0.f);
node2->setCurrentFrame(62.f);
}
(void)smgr->addCameraSceneNode();
// Just jump to the last frame since that's all we're interested in.
device->run();
driver->beginScene(true, true, SColor(255, 255, 255, 0));
smgr->drawAll();
driver->endScene();
result = takeScreenshotAndCompareAgainstReference(driver, "-b3dAnimation.png");
}
device->drop();
return result;
}
......@@ -21,10 +21,10 @@ static bool runTestWithDriver(E_DRIVER_TYPE driverType)
IrrlichtDevice *device = createDevice( driverType, dimension2d<s32>(160, 120), 32);
if (!device)
return true; // Treat a failure to create a driver as benign; this saves a lot of #ifdefs
IVideoDriver* driver = device->getVideoDriver();
ISceneManager * smgr = device->getSceneManager();
// Draw a cube background so that we can check that the pixels' alpha is working.
ISceneNode * cube = smgr->addCubeSceneNode(50.f, 0, -1, vector3df(0, 0, 60));
cube->setMaterialTexture(0, driver->getTexture("../media/wall.bmp"));
......@@ -57,12 +57,12 @@ bool drawPixel(void)
{
bool passed = true;
// Don't use the NULL or SOFTWARE drivers since they produce no image, and a 16 bit screenshot respectively.
passed &= runTestWithDriver(EDT_SOFTWARE);
passed &= runTestWithDriver(EDT_BURNINGSVIDEO);
passed &= runTestWithDriver(EDT_OPENGL);
passed &= runTestWithDriver(EDT_DIRECT3D8);
passed &= runTestWithDriver(EDT_DIRECT3D9);
passed &= runTestWithDriver(EDT_DIRECT3D8);
passed &= runTestWithDriver(EDT_OPENGL);
return passed;
}
}
......@@ -10,17 +10,18 @@ using namespace core;
using namespace gui;
// Tests that disabled GUI menu items don't cause their submenu to appear when hovered over.
/**
/**
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=178436#178436
*/
bool guiDisabledMenu(void)
{
IrrlichtDevice *device = createDevice( video::EDT_OPENGL, dimension2d<s32>(160, 40), 32);
IrrlichtDevice *device = createDevice( video::EDT_OPENGL,
dimension2d<s32>(160, 40), 32);
assert(device);
if (!device)
return false;
video::IVideoDriver* driver = device->getVideoDriver();
gui::IGUIEnvironment* env = device->getGUIEnvironment();
......
......@@ -13,7 +13,7 @@
#endif // _MSC_VER
/* Each test must have the same signature. Test should (but are not
* required to) live in a .cpp file of the same name. There is no
* required to) live in a .cpp file of the same name. There is no
* need to #include anything since the test entry points can be
* declared as extern before calling them.
*/
......@@ -30,40 +30,114 @@
//! This is the main entry point for the Irrlicht test suite.
/** \return The number of test that failed, i.e. 0 is success. */
int main()
int main(int argumentCount, char * arguments[])
{
bool logFileOpened = openTestLog();
bool logFileOpened = openTestLog(1 == argumentCount);
assert(logFileOpened);
int fails = 0;
RUN_TEST(b3dAnimation);
RUN_TEST(disambiguateTextures); // Run this first, since it validates the WD.
RUN_TEST(exports);
RUN_TEST(testVector3d);
RUN_TEST(testVector2d);
RUN_TEST(planeMatrix);
RUN_TEST(fast_atof);
RUN_TEST(line2dIntersectWith);
RUN_TEST(drawPixel);
RUN_TEST(md2Animation);
RUN_TEST(guiDisabledMenu);
(void)printf("\nTests finished. %d test%s failed.\n", fails, 1 == fails ? "" : "s");
if(0 == fails)
if(argumentCount > 3)
{
time_t rawtime;
struct tm * timeinfo;
(void)time(&rawtime);
timeinfo = gmtime(&rawtime);
(void)printf("\nTest suite pass at GMT %s\n", asctime(timeinfo));
FILE * testsLastPassedAtFile = fopen("tests-last-passed-at.txt", "w");
if(testsLastPassedAtFile)
logTestString("\nUsage: %s [testNumber] [totalFails]\n");
closeTestLog();
return 9999;
}
extern bool disambiguateTextures(void);
extern bool softwareDevice(void);
extern bool exports(void);
extern bool testVector3d(void);
extern bool testVector2d(void);
extern bool planeMatrix(void);
extern bool fast_atof(void);
extern bool line2dIntersectWith(void);
extern bool drawPixel(void);
extern bool md2Animation(void);
extern bool b3dAnimation(void);
extern bool guiDisabledMenu(void);
typedef struct _STest
{
bool(*testSignature)(void);
const char * testName;
} STest;
#define TEST(x) { x, #x }
static const STest tests[] =
{
TEST(disambiguateTextures), // Run this first, since it validates the WD.
TEST(exports),
TEST(testVector3d),
TEST(testVector2d),
TEST(planeMatrix),
TEST(fast_atof),
TEST(line2dIntersectWith),
TEST(drawPixel),
TEST(md2Animation),
TEST(guiDisabledMenu),
TEST(softwareDevice),
TEST(b3dAnimation)
};
static const unsigned int numberOfTests = sizeof tests / sizeof tests[0];
unsigned int testToRun = 0;
unsigned int fails = 0;
if(argumentCount > 1)
{
testToRun = (unsigned int)atoi(arguments[1]);
if(testToRun >= numberOfTests)
{
logTestString("\nError: invalid test %d (maximum %d)\n",
testToRun, numberOfTests - 1);
closeTestLog();
return 9999;
}
}
if(argumentCount > 2)
fails = (unsigned int)atoi(arguments[2]);
logTestString("\nStarting test %d, '%s'\n",
testToRun, tests[testToRun].testName);
bool success = tests[testToRun].testSignature();
if(!success)
{
logTestString("\n\n\n******** Test failure ********\nTest %d '%s' failed\n"\
"******** Test failure ********\n",
testToRun, tests[testToRun].testName);
fails++;
}
testToRun++;
if(testToRun == numberOfTests)
{
logTestString("\nTests finished. %d test%s failed.\n", fails, 1 == fails ? "" : "s");
if(0 == fails)
{
(void)fprintf(testsLastPassedAtFile, "Test suite pass at GMT %s\n", asctime(timeinfo));
(void)fclose(testsLastPassedAtFile);
time_t rawtime;
struct tm * timeinfo;
(void)time(&rawtime);
timeinfo = gmtime(&rawtime);
(void)printf("\nTest suite pass at GMT %s\n", asctime(timeinfo));
FILE * testsLastPassedAtFile = fopen("tests-last-passed-at.txt", "w");
if(testsLastPassedAtFile)
{
(void)fprintf(testsLastPassedAtFile, "Test suite pass at GMT %s\n", asctime(timeinfo));
(void)fclose(testsLastPassedAtFile);
}
}
closeTestLog();
}
else
{
closeTestLog();
char runNextTest[256];
(void)sprintf(runNextTest, "%s %d %d", arguments[0], testToRun, fails);
fails = system(runNextTest);
}
return fails;
......
......@@ -17,7 +17,7 @@ using namespace gui;
bool md2Animation(void)
{
// Use EDT_BURNINGSVIDEO since it is not dependent on (e.g.) OpenGL driver versions.
IrrlichtDevice *device = createDevice( EDT_BURNINGSVIDEO, dimension2d<s32>(320, 240), 32);
IrrlichtDevice *device = createDevice( EDT_BURNINGSVIDEO, dimension2d<s32>(160, 120), 32);
assert(device);
if (!device)
return false;
......@@ -36,7 +36,7 @@ bool md2Animation(void)
if(node)
{
node->setPosition(vector3df(20, 0, 50));
node->setPosition(vector3df(20, 0, 30));
node->setMaterialFlag(EMF_LIGHTING, false);
node->setMaterialTexture(0, driver->getTexture("../media/sydney.bmp"));
node->setLoopMode(false);
......
tests/media/Direct3D 9.0-drawPixel.png

25.8 KB | W: | H:

tests/media/Direct3D 9.0-drawPixel.png

23.4 KB | W: | H:

tests/media/Direct3D 9.0-drawPixel.png
tests/media/Direct3D 9.0-drawPixel.png
tests/media/Direct3D 9.0-drawPixel.png
tests/media/Direct3D 9.0-drawPixel.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -26,15 +26,15 @@ static bool transformPlane(const vector3df & point, const vector3df & normal,
{
plane3df plane(point, vector3df(normal).normalize());
logTestString("\n Pre: (%.3ff,%.3ff,%.3ff), %.3ff\n",
logTestString("\n Pre: (%.3ff,%.3ff,%.3ff), %.3ff\n",
plane.Normal.X, plane.Normal.Y, plane.Normal.Z, plane.D);
matrix.transformPlane(plane);
logTestString(" Post: (%.3ff,%.3ff,%.3ff), %.3ff\n",
logTestString(" Post: (%.3ff,%.3ff,%.3ff), %.3ff\n",
plane.Normal.X, plane.Normal.Y, plane.Normal.Z, plane.D);
logTestString("Expected: (%.3ff,%.3ff,%.3ff), %.3ff\n",
logTestString("Expected: (%.3ff,%.3ff,%.3ff), %.3ff\n",
expected.Normal.X, expected.Normal.Y, expected.Normal.Z, expected.D);
assert(sloppyComparePlanes(plane, expected));
......@@ -47,6 +47,47 @@ static bool transformPlane(const vector3df & point, const vector3df & normal,
return true;
}
static bool drawScaledOctTree(void)
{
bool result = false;
IrrlichtDevice *device = createDevice(video::EDT_BURNINGSVIDEO, dimension2d<s32>(160, 120), 32);
if (!device)
return false;
video::IVideoDriver* driver = device->getVideoDriver();
ISceneManager * smgr = device->getSceneManager();
bool added = device->getFileSystem()->addZipFileArchive("../media/map-20kdm2.pk3");
assert(added);
if(added)
{
ISceneNode * node = smgr->addOctTreeSceneNode(smgr->getMesh("20kdm2.bsp")->getMesh(0), 0, -1, 1024);
assert(node);
if (node)
{
node->setMaterialFlag(EMF_LIGHTING, false);
node->setPosition(core::vector3df(-1300,-820,-1249));
node->setScale(core::vector3df(1, 5, 1));
(void)smgr->addCameraSceneNode(0, core::vector3df(0,0,0), core::vector3df(40,100,30));
driver->beginScene(true, true, video::SColor(255,255,255,0));
smgr->drawAll();
driver->endScene();
result = takeScreenshotAndCompareAgainstReference(driver, "-planeMatrix-scaledClip.png");
}
}
device->drop();
return result;
}
// Test the ability to transform a plane with a matrix.
bool planeMatrix(void)
{
......@@ -66,9 +107,9 @@ bool planeMatrix(void)
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-.707f, 0.f, -.707f), 0.f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(.707f, 0.f, .707f), 0.f));
......@@ -85,9 +126,9 @@ bool planeMatrix(void)
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-0.707f,-0.707f,0.000f), 2.121f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.707f,0.707f,0.000f), -2.121f));
......@@ -104,9 +145,9 @@ bool planeMatrix(void)
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-0.894f,-0.447f,0.000f), -0.000f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.894f,0.447f,0.000f), -0.000f));
......@@ -116,15 +157,15 @@ bool planeMatrix(void)
success &= transformPlane(vector3df(0, 1, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.894f,0.447f,0.000f), -0.894f));
success &= transformPlane(vector3df(0, 1, 0), vector3df(-1, 1, 0), matrix, plane3df(vector3df(-0.894f,0.447f,0.000f), -0.894f));
success &= transformPlane(vector3df(0, 1, 0), vector3df(1, -1, 0), matrix, plane3df(vector3df(0.894f,-0.447f,0.000f), 0.894f));
matrix = rotationMatrix * translationMatrix;
logTestString("\nRotation * translation matrix\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-0.707f,0.000f,-0.707f), 2.121f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.707f,-0.000f,0.707f), -2.121f));
......@@ -140,9 +181,9 @@ bool planeMatrix(void)
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-0.447f,0.000f,-0.894f), -0.000f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.447f,-0.000f,0.894f), -0.000f));
......@@ -158,9 +199,9 @@ bool planeMatrix(void)
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-0.894f,-0.447f,0.000f), 1.342f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.894f,0.447f,0.000f), -1.342f));
......@@ -176,9 +217,9 @@ bool planeMatrix(void)
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f"
"\n%02.02f %02.02f %02.02f %02.02f\n",
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[0], matrix[1], matrix[2], matrix[3],
matrix[4], matrix[5], matrix[6], matrix[7],
matrix[8], matrix[9], matrix[10], matrix[11],
matrix[12], matrix[13], matrix[14], matrix[15]);
success &= transformPlane(vector3df(0, 0, 0), vector3df(-1, -1, 0), matrix, plane3df(vector3df(-0.447f,0.000f,-0.894f), 2.683f));
success &= transformPlane(vector3df(0, 0, 0), vector3df(1, 1, 0), matrix, plane3df(vector3df(0.447f,-0.000f,0.894f), -2.683f));
......@@ -189,6 +230,8 @@ bool planeMatrix(void)
success &= transformPlane(vector3df(0, 1, 0), vector3df(-1, 1, 0), matrix, plane3df(vector3df(-0.447f,-0.000f,0.894f), -3.801f));
success &= transformPlane(vector3df(0, 1, 0), vector3df(1, -1, 0), matrix, plane3df(vector3df(0.447f,0.000f,-0.894f), 3.801f));
success &= drawScaledOctTree();
return success;
}
// Copyright (C) 2008 Colin MacDonald
// No rights reserved: this software is in the public domain.
#include "irrlicht.h"
#include "testUtils.h"
using namespace irr;
using namespace core;
using namespace scene;
//! Tests the basic functionality of the software device.
bool softwareDevice(void)
{
IrrlichtDevice *device = createDevice(video::EDT_SOFTWARE, dimension2d<s32>(160, 120), 32);
if (!device)
return false;
video::IVideoDriver* driver = device->getVideoDriver();
ISceneManager * smgr = device->getSceneManager();
// Test a particular rotation that highlighted a clipping issue from matrix::transformPlane()
video::S3DVertex vertices[3];
vertices[0] = video::S3DVertex(10,0,-10, 1,0,0,
video::SColor(255,255,0,255), 1, 1);
vertices[1] = video::S3DVertex(0,20,0, 0,1,1,
video::SColor(255,255,255,0), 1, 0);
vertices[2] = video::S3DVertex(-10,0,-10, 0,0,1,
video::SColor(255,0,255,0), 0, 0);
video::SMaterial material;
material.Lighting = false;
material.Wireframe = false;
const u16 indices[] = { 1,0,2, };
matrix4 transform(matrix4::EM4CONST_IDENTITY);
vector3df rotations(290, 0, 290); // <-- This rotation used to clip the triangle incorrectly
transform.setRotationDegrees(rotations);
(void)smgr->addCameraSceneNode(0, core::vector3df(0,0,-40), core::vector3df(0,0,0));
driver->beginScene(true, true, video::SColor(255,255,255,0));
smgr->drawAll();
driver->setMaterial(material);
driver->setTransform(video::ETS_WORLD, transform);
driver->drawIndexedTriangleList(&vertices[0], 3, &indices[0], 1);
driver->endScene();
bool result = takeScreenshotAndCompareAgainstReference(driver, "-softwareDevice-rotatedClip.png");
device->drop();
return result;
}
......@@ -99,9 +99,9 @@ static float fuzzyCompareImages(irr::video::IImage * image1,
}
video::ECOLOR_FORMAT format1 = image1->getColorFormat();
if(video::ECF_A8R8G8B8 != format1 && video::ECF_R8G8B8 != format1)
if(video::ECF_R8G8B8 != format1)
{
logTestString("fuzzyCompareImages: image 1 must be ECF_A8R8G8B8 or ECF_R8G8B8\n");
logTestString("fuzzyCompareImages: image 1 must be ECF_R8G8B8\n");
return 0.f;
}
......@@ -116,12 +116,9 @@ static float fuzzyCompareImages(irr::video::IImage * image1,
u8 * image2Data = (u8*)image2->lock();
const u32 pixels = (image1->getPitch() * image1->getDimension().Height) / 4;
u32 mismatchedPixels = 0;
u32 mismatchedColours = 0;
for(u32 pixel = 0; pixel < pixels; ++pixel)
{
if(video::ECF_A8R8G8B8 == format1)
image1Data++;
const u8 r1 = *(image1Data++);
const u8 g1 = *(image1Data++);
const u8 b1 = *(image1Data++);
......@@ -133,27 +130,45 @@ static float fuzzyCompareImages(irr::video::IImage * image1,
const u8 g2 = *(image2Data++);
const u8 b2 = *(image2Data++);
// Empirically, some OpenGL screenshots have up to 2 shades difference per pixel.
if(abs(r1 - r2) > 2 || abs(g1 - g2) > 2 || abs(b1 - b2) > 2)
++mismatchedPixels;
mismatchedColours += abs(r1 - r2) + abs(g1 - g2) + abs(b1 - b2);
}
image1->unlock();
image2->unlock();
return 100.f * (pixels - mismatchedPixels) / pixels;
const u32 totalColours = pixels * 775;
return 100.f * (totalColours - mismatchedColours) / totalColours;
}
bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver, const char * fileName)
bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver,
const char * fileName,
irr::f32 requiredMatch)
{
irr::video::IImage * screenshot = driver->createScreenShot();
if(!screenshot)
{
logTestString("Failed to take screenshot\n");
assert(false);
return false;
}
const video::ECOLOR_FORMAT format = screenshot->getColorFormat();
if(format != video::ECF_R8G8B8)
{
irr::video::IImage * fixedScreenshot = driver->createImage(video::ECF_R8G8B8, screenshot);
screenshot->drop();
if(!fixedScreenshot)
{
logTestString("Failed to convert screenshot to ECF_A8R8G8B8\n");
assert(false);
return false;
}
screenshot = fixedScreenshot;
}
irr::core::stringc driverName = driver->getName();
// For OpenGL (only), chop the version number out. Other drivers have more stable version numbers.
if(driverName.find("OpenGL") > -1)
......@@ -173,26 +188,39 @@ bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver,
}
float match = fuzzyCompareImages(screenshot, reference);
logTestString("Image match: %f%%\n", match);
if(match < requiredMatch)
{
irr::core::stringc mismatchFilename = "results/";
mismatchFilename += driverName;
mismatchFilename += fileName;
logTestString("Writing mismatched image to '%s\n", mismatchFilename.c_str());
(void)driver->writeImageToFile(screenshot, mismatchFilename.c_str());
}
screenshot->drop();
reference->drop();
logTestString("Image match: %f%%\n", match);
return (match > 99.f); // Require a very confident match.
return (match >= requiredMatch);
}
static FILE * logFile = 0;
bool openTestLog(const char * filename)
bool openTestLog(bool startNewLog, const char * filename)
{
closeTestLog();
logFile = fopen(filename, "w");
if(startNewLog)
logFile = fopen(filename, "w");
else
logFile = fopen(filename, "a");
assert(logFile);
if(!logFile)
logTestString("\nWARNING: unable to open the test log file %s\n", filename);
return (logFile != 0);
}
......
......@@ -12,16 +12,22 @@ extern bool binaryCompareFiles(const char * fileName1, const char * fileName2);
//! Take a screenshot and compare it against a reference screenshot in the tests/media subdirectory
/** \param driver The Irrlicht video driver.
\fileName The unique filename suffix that will be appended to the name of the video driver.
\param fileName The unique filename suffix that will be appended to the name of the video driver.
\param requiredMatch The degree to which the screenshot needs to match the reference image
in order to be considered a match.
\return true if the screenshot was taken and is identical to the reference image of the same name
in the tests/media directory, false on any error or difference. */
extern bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver, const char * fileName);
extern bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver,
const char * fileName,
irr::f32 requiredMatch = 99.f);
//! Opens a test log file, deleting any existing contents.
/** \param filename The filename to open
/** \param startNewLog true to create a new log file, false to append to an
existing one.
\param filename The filename to open
\return true if the test log file was opened, false on error. */
extern bool openTestLog(const char * filename = "tests.log");
extern bool openTestLog(bool startNewLog, const char * filename = "tests.log");
//! Close the test log file opened with openTestLog()
extern void closeTestLog();
......
Test suite pass at GMT Mon Dec 08 14:07:08 2008
Test suite pass at GMT Fri Dec 12 10:58:58 2008
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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