Added a creation parameter for doublebuffering.
Cleaned up the framebuffer clean methods in OpenGL.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2102 dfc29bdd-3216-0410-991c-e03cc46cb475
Change from dimension2d<s32> to dimension2d<u32> where practical. IImage and ITexture now have unsigned dimensions, as does screen size. This has had a significant knock-on through the code base, but it is more technically correct - the BEST KIND of correct.
GUI elements and draw2DImage methods still have and take signed dimensions, but we can look into this in future. Regression tested with the test suite and the example apps. Note that createDevice() now takes dimension2d<u32>!
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2092 dfc29bdd-3216-0410-991c-e03cc46cb475
Change IVideoDriver::writeImageToFile() to always use the IWriteFile filename rather than taking a separate extension.
Test updated.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2082 dfc29bdd-3216-0410-991c-e03cc46cb475
Add IFileSystem::createMemoryWriteFile() to allow writing to memory.
Replace CMemoryReadFile with CMemoryFile that also implement IWriteFile.
Add an IVideoDriver::writeImageToFile() overload that takes an IWriteFile.
This allows writing (e.g.) screenshots to memory, rather than directly to file.
New unit test added to test the new functionality. Tested on Windows with VS2005 and C::B. I'll do Linux ASAP.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2081 dfc29bdd-3216-0410-991c-e03cc46cb475
If a light manager is not registered, the existing behaviour (activate the closest lights to the camera) will be retained unchanged. New example project added to demonstrate the usage, and regression tests and existing samples run. No regression test for the light manager yet, since I am more interested in not regressing the default behaviour.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2064 dfc29bdd-3216-0410-991c-e03cc46cb475
Have all public ISceneCollisionManager.h methods take 'const type &' rather than 'type' where appropriate.
Conversely, have CSceneManager::getPickedNodeBB() take a non-const 'core::line3df& ray', so that child nodes can truncate the master ray when they get a collision.
This is an API change, so goes to the trunk only.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2050 dfc29bdd-3216-0410-991c-e03cc46cb475
Last fix to CSceneCollisionManager::getPickedNodeBB(). ;) Efficiency improvements to reduce the number of checks, since we can only hit one face of each box, and we needn't consider boxes that are further away than the closest hit.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2049 dfc29bdd-3216-0410-991c-e03cc46cb475
Another fix to CSceneCollisionManager::getPickedNodeBB(). Ensure that the collision point with the plane of a box is actually on the box surface rather than outside it. Retested with regression test and example 07.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2048 dfc29bdd-3216-0410-991c-e03cc46cb475
Change ray/bounding box selection so that the nearest node is determined by the actual collision point with the bounding box (or the distance to the box centre if the ray starts inside the box). Since this is a functional change from the old behaviour, I'm only committing to the trunk. This will be slightly slower than the old method, but should return the correct node; I consider accuracy to take priority over efficiency for collision.
tests/sceneCollisionManager.cpp has been updated, as has examples/07.Collision/main.cpp.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2047 dfc29bdd-3216-0410-991c-e03cc46cb475
Merge fix for CTerrainSceneNode::preRenderLODCalculations() to trunk; take the camera's up vector into account when determining whether terrain scene node visibility needs to be rechecked. New test added; thanks to Travis for another great test case.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2003 dfc29bdd-3216-0410-991c-e03cc46cb475
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=181419
Partial fix for CSceneCollisionManager::getPickedNodeBB(), but we should push on and do a proper test for the actual intersection point with each hit cube.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1991 dfc29bdd-3216-0410-991c-e03cc46cb475
Also clarified the comments on ISceneNode::setVisible() and isVisible(), and added a new method, isTrulyVisible() that recursively checks any Parent nodes as well.
Unit/regression tests updated, verifying that they tested (and failed) with the old behaviour and pass with the new.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1978 dfc29bdd-3216-0410-991c-e03cc46cb475
1) The active camera.
2) Receiving input.
This allows example 09.Meshviewer (with two cameras) to work as expected. Replace the magic numbers in that example with enumerated values.
This patch also exposes ISceneNode::SceneManager through a public getSceneManager() API.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1974 dfc29bdd-3216-0410-991c-e03cc46cb475