Software drivers don't support 2d rendering into viewports, so they still fail to properly position text (or other 2d things) into a viewport.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3489 dfc29bdd-3216-0410-991c-e03cc46cb475
ITriangleSelector::getSceneNodeForTriangle, ISceneNodeAnimatorCollisionResponse::getCollisionNode, ISceneCollisionManager::getCollisionPoint and ISceneCollisionManager::getCollisionResultPosition.
As collision functions often are followed by changing node positions users where so far forced to using const_casts (found by Greenya).
(This will lead once more to many post about correct getCollisionResultPosition usage, but can't be helped - those consts were too restricitive, sorry)
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3442 dfc29bdd-3216-0410-991c-e03cc46cb475
Change default blend mode in OpenGL to SRC_ALPHA,ONE_MINUS_SRC_ALPHA
Use less precision in 2dmaterial test.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3399 dfc29bdd-3216-0410-991c-e03cc46cb475
Fix warnings in test suite.
Disable XML reader check which was marked as still open.
Most tests don't go through, due to wrong image size (probably from changes in Win32 device, which now takes a larger render size than actually used).
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3360 dfc29bdd-3216-0410-991c-e03cc46cb475
Many tests for burnings-renderer fail atm, but probably just because renderer was improved and tests would need new reference images.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3351 dfc29bdd-3216-0410-991c-e03cc46cb475
Also test 33 writeImageToFile currently fails when compiled with optimizations, but probably the test needs to lower requiredMatch.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3063 dfc29bdd-3216-0410-991c-e03cc46cb475
Deprecate map::isEmpty() and replace it with map::empty() to make it similar to other base classes.
Rename array-test and add tests for list and map.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3060 dfc29bdd-3216-0410-991c-e03cc46cb475
- Added test for serialization
- Added operator != for quaternion.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3026 dfc29bdd-3216-0410-991c-e03cc46cb475
- Adapt MeshCache interface to make the difference between names and filenames more clear. Old functions behave the same, but are deprecated.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3004 dfc29bdd-3216-0410-991c-e03cc46cb475
- Put E_ATTRIBUTE_TYPE in own header EAttributes.h
- Put IAttribute in own header IAttribute.h
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2969 dfc29bdd-3216-0410-991c-e03cc46cb475
caused because operator= and copy-constructor where not called because the the second template parameters
was not used in those function declarations and so only functions for the default parameter had been
created.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2949 dfc29bdd-3216-0410-991c-e03cc46cb475
assignment would otherwise depend on allocation strategy which isn't a good idea. Also some problems due to
default template parameters which got ignored in copy-constructor and operator= which caused those functions
not to be called.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2946 dfc29bdd-3216-0410-991c-e03cc46cb475
This allows to create custom mipmap textures manually, or provide them from certain image formats that come with precalculated mipmaps.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2912 dfc29bdd-3216-0410-991c-e03cc46cb475
- Added tests to vector2d and vector3d regression tests for 0 to 1 equally using the s32 data type (Related to previous change).
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2707 dfc29bdd-3216-0410-991c-e03cc46cb475
- Fix simliar bugs where object have been dropped accidentally in set functions in many places
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2417 dfc29bdd-3216-0410-991c-e03cc46cb475
- 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
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2207 dfc29bdd-3216-0410-991c-e03cc46cb475
Add IVideoDriver methods to enumerate the available image loaders and writers. Unit test added.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2174 dfc29bdd-3216-0410-991c-e03cc46cb475
Revert my previous ITriangleSelector patch and implement garritg's great idea about retrieving an ISceneNode by index. Add an out parameter to ISceneCollisionManager::getCollisionPoint() to return the hit scene node. This is an API breaking change; the test and example apps have been updated.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2125 dfc29bdd-3216-0410-991c-e03cc46cb475
Extend ITriangleSelector::getTriangles() to allow for returning multiple groups of triangles from individual scene nodes. By default, the 1.5 behaviour will be preserved, and all triangles from all nodes will be returned, even for IMetaTriangleSelectors. Regression tests confirm this.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2124 dfc29bdd-3216-0410-991c-e03cc46cb475
Expose the collision result position in ISceneNodeAnimatorCollisionResponse, to give more information to the user app. Thanks again to garritg.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2120 dfc29bdd-3216-0410-991c-e03cc46cb475
Improve matrix::getScale() to return the absolute scale values when the matrix contains a rotation. This still isn't perfect, but it's an improvement. New unit test added.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2114 dfc29bdd-3216-0410-991c-e03cc46cb475
Add an ICollisionCallback to ISceneNodeAnimatorCollisionResponse to inform the application when collisions occur (and allow it to ignore them). Thanks to garrit for this patch! The existing collisionResponseAnimator unit test has been updated to exercise the new functionality.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2111 dfc29bdd-3216-0410-991c-e03cc46cb475
Add an optional startPosition parameter to createFlyCircleAnimator() to allow specifying a start position on the circle. New unit test added.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2105 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
Tested on Windows with MSVC 2005 and Code::Blocks, with a local trunk re-application of the terrainSceneNode.cpp change in SVN 2039 (which will get merged down separately). I'll re-test on Linux as soon as I've committed this.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2040 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