Commit Graph

3421 Commits (master)

Author SHA1 Message Date
cutealien 0408c9eb52 Add IReadFile::getType() interface to all users to find out what kind of class implements that interface.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5798 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-30 13:38:19 +00:00
cutealien 39e5fdc3e7 Merge branch releases/1.8 revisions r5633 through r5796 into trunk.
- Fix for SViewFrustum::clipLine


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5797 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-29 17:39:29 +00:00
cutealien 0f3838b968 Minor cleanups (mostly comments) for examples 12 & 13.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5795 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-26 21:52:24 +00:00
cutealien bc035b510f Tiny comment fixes and removing unused code in example 11.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5794 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-26 20:45:09 +00:00
cutealien 917379f453 Collada loader now handles texture-names with escape characters.
Names like "my%20texture.png" will now load "my texture.png". Collada filenames are in xs:anyURI format.
xs:anyURI is used in more places, but we don't support any other file-loading inside Collada so far, so that was the most important place to fix.
Also added/fixed a few comments.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5793 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-25 22:32:32 +00:00
cutealien a450a0e391 Fix improved log-message from last commit.
Sorry, copy-pasted wrong variable... didn't improve log last time.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5792 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-21 14:00:17 +00:00
cutealien ecf74091ec Add more detailed log errors when glsl shaders fail to compile or link.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5791 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-21 13:51:20 +00:00
cutealien 8e384e5c23 Bugfix: CNullDriver::createImage now checks always if texture can be locked() and returns 0 otherwise.
Thx @Cycy for reporting (bugreport #437).


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5790 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-16 21:24:20 +00:00
cutealien dab3a624e8 Collada now writes image filenames in URL format with escaped spaces.
CColladaMeshWriter::pathToURI tries to create now a correct name in xs::anyURI format (was more like xs::NCName before)
Note that the Collada loader in Irrlicht doesn't handle escaped characters yet, so right now can't load textures with space in names anymore written by Irrlicht.
That needs another fix in loader (it fails also when the .dae was written by other applications).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5789 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-15 13:31:37 +00:00
cutealien 31652f6577 Add function string::insert.
(more overloads for it can be added later).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5788 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-15 13:03:03 +00:00
cutealien a336e62fca Add virtual and _IRR_OVERRIDE_ keywords in classes derived from IContextManager
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5786 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-14 22:54:10 +00:00
cutealien 58958c362a Handle restorePrimaryOnZero in CGLXManager::activateContext
Done similar as it was done in CWGLManager::activateContext, thought not tested as I currently have no test-case for this on X11.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5785 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-14 22:45:55 +00:00
cutealien ed6d0d58fc IContextManager::activateContext can now also be used to reset the context.
The reset was prevented before, likely to make the use in beginScene easier. But it's necessary for using an OGL context from another thread.
Only implemented for WGL so far, GLX implementation will follow soon.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5784 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-14 16:18:03 +00:00
cutealien 3f0278bfe2 Allow EditBox to still overwrite characters when the text-length has reached max.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5783 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-12 20:14:51 +00:00
cutealien cda81b1200 Prevent cursor-blinking if editbox is subelement of a disabled element (like in spinbox).
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5782 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-12 19:54:20 +00:00
cutealien a9554b1f58 Remove superfluous pointer check in COpenGLDriver::removeTexture
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5781 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-27 20:32:44 +00:00
cutealien 0a6eda9747 CNullDriver::removeTexture stops now after finding the texture to remove.
If it ever has same texture twice in it's cache that would be a bug and this slows texture removing down unnecessarily.
Also wasn't correct anyway as it would have missed it if there were 2 times in a row the same texture as the loop index wasn't adapted after the erase.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5778 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-27 13:18:20 +00:00
cutealien 5a9423648c Bugfix: OpenGL prevented completely removing a texture when it was used in the actively set material.
Basically the destructor tried to call a function to drop() itself, but that certainly prevented the constructor from being called in the first place as there still was a reference.
No need to backport to 1.8, this was caused by some rewrites in Irrlicht 1.9 back when TextureCache for active materials got added to the driver.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5777 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-27 13:13:35 +00:00
cutealien 0026ec7cdc Fix SViewFrustum::setFrom once more. SViewFrustum constructor with matrix also adapted.
Last change (in r5766) fixed GL and messed up D3D. This needs to use a parameter to tell what the matrix does.
Thx @DevSH for reporting.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5776 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-25 15:50:08 +00:00
cutealien db89bbc2ce Fixing SViewFrustum::recalculateBoundingBox once more.
Sorry, missed some points in last fix.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5775 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-25 14:44:36 +00:00
cutealien ba391682b0 Update opengl test-file.
The test which uses it is currently disabled as it has more problems (broken stencil), but this part is fine and probably just changed due to recent opengl fixes.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5774 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-23 17:48:00 +00:00
cutealien d1bddcc1a2 Fixing SViewFrustum::recalculateBoundingBox and CMatrix4::transformPlane.
SViewFrustum::recalculateBoundingBox no longer includes camera position in the bounding-box. Only using frustum corners now. Thx @DevSH for bugreport & patch.
CMatrix4::transformPlane was calculating the wrong plane-normal before. It added the matrix translation and also didn't normalize the normal.
planeMatrix tests had been checking for wrong results (did check calculations by hand now, so hopefully I got it right, anyone double-checking it for me would certainly be cool...)


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5773 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-22 18:03:34 +00:00
cutealien 7ebd410e0a Camera uses now OGL projection matrices with OpenGL driver.
Fixes wrong near-plane values with OpenGL (showed too much before).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5772 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-21 18:20:33 +00:00
cutealien 0a2ee246c3 Fix error in calculation in new opengl versions of matrix4::buildProjectionMatrixPerspective functions.
Sorry, forgot some brackets around addition earlier on :-(

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5771 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-21 17:36:42 +00:00
cutealien a96b81dd4a Adapted orthoCam test to use OpenGL projection matrices with driver.
It fails, but it failed before (test is outcommented since a long time, will have to check why)

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5770 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-21 17:16:57 +00:00
cutealien 45be145f9a Add a flag to buildProjectionMatrixPerspective functions to allow creating OpenGL style matrices.
Can now have target range of -w to w instead of only 0 to w.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5769 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-21 16:39:51 +00:00
cutealien 49b2e6fee1 buildProjectionMatrixOrthoLH and buildProjectionMatrixOrthoRH have a new parameter to allow creating OGL style matrices.
Old projection matrices always projected z from 0 to 1. For OpenGL we want a -1 to 1 target instead.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5768 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-21 15:42:43 +00:00
cutealien c310a8d6ae Bugfix: CCameraSceneNode resets the IsOrthogonal flag to false now when it recalculates a projection matrix.
Note: It would likely be nicer if it wouldn't switch back to a projection matrix at all but stay with ortho-matrix. But until I get to that - this will at least return the correct flag.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5767 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-21 14:37:03 +00:00
cutealien 3283b96087 Fix SViewFrustum::setFrom for OGL projection matrices.
SViewFrustum::setFrom now sets the correct near clipping plane when the projection matrix doesn't use a target depth range of 0 to z, but for example -z to z.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5766 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-20 18:55:37 +00:00
cutealien fc2e1bcfd7 Remove code to read boundingbox element in Collada reader as it's not in Collada specification.
We also did just read that box and then dropped the info immediately, so it wasn't used anyway. Not sure what that code was about, I hope it was just accidental and not about support for some strange Collada files in the wild.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5759 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-11 22:02:21 +00:00
cutealien abee25857f .dae/Collade reader now converts from Collada's right-handed to Irrlicht's left handed coordinate system.
It already worked correct when Z_UP was set (we switched x/z in that case which also flips coordinate system)
But for the default (Y_UP) it had been wrong before (that one is still right-handed in Collada).
We do now convert all z to -z (so z coordinates do change, but it prevents objects from showing up mirrored).
Note: For readLookAtNode I also added code to regard Z_UP, but have no test-case yet.
Note: I have no test-case for readSkewNode, so not sure about that one.
Note: No fix for readBboxNode as I'm going to kick that out next.
I tested with Blender (which has no textures) and Collada (which needs manual adaptions in .dae files as Irrlicht can't read libraries order independent, but that's another problem).


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5758 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-11 21:54:31 +00:00
cutealien 93c597a72d Remove the #undef's for standard functions.
isdigit, isspace and isupper had #undef's before them. But our own replacement implementations are in a namespace, so there shouldn't be any conflicts. And if there are compile conflicts they should show that the wrong implementation is used, so we would want to see them.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5728 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-02 16:52:29 +00:00
cutealien b5c99752aa Fix compiling on MinGW/gcc.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5727 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-02 16:25:20 +00:00
cutealien 47cebab98f Add IColladaMeshWriter::setUnit to allow exporting a unit-to-meter-ratio and name.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5723 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-02-01 15:52:29 +00:00
cutealien 6ef7f7c07f Collada writer no longer writes out trailing zeros in (most) float numbers.
Writing might be slightly slower, but has to write less on disk on the other hand. 
So loading the files later on will be faster.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5721 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-31 19:59:26 +00:00
cutealien 9f7be6e42d Fix compile warning.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5720 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-31 19:40:58 +00:00
cutealien 9a04806c45 Add irr::string::eraseTrailingFloatZeros to kick out trailing 0's for strings generated from floats.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5719 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-31 19:02:14 +00:00
cutealien ff54728feb Add some tests for string::findLastCharNotInList.
All worked out, was just checking ;-)

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5718 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-31 18:08:34 +00:00
cutealien c504e7d598 Fix conversion to right-handed matrix in Collada writer.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5711 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-30 15:47:30 +00:00
cutealien 39bf558a78 Fix .dae/Collada writer to export a right-handed coordinate system as expected by Collada.
Note: Right now our Collada loader can no longer load the files we write correctly as it also has to be fixed.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5709 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-30 15:16:36 +00:00
cutealien 680d8f285d Simplify code in collada mesh writer.
(just making it easier to read to prepare for some other changes).


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5703 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-29 16:34:52 +00:00
cutealien 8a5b18ac23 Spelling fix.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5701 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-29 15:35:08 +00:00
cutealien 17503ad305 Collada writer no longer handles first and second texture uv's different.
(first one is probably correct once we fix the rest of coordinates to a right-handed system)

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5700 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-29 14:55:58 +00:00
cutealien 62aed60aa0 Reduce code in Collada writer by replacing some case-switches for types by casts.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5699 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-29 14:40:17 +00:00
cutealien 43f75cbd9f Add function IColladaMeshWriter::SetParamNamesUV.
A workaround for broken Collada importers which insist on specific names. 
Seems SketchUp insists on UV's being called "S" "T" or it won't show textures.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5695 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-28 16:05:39 +00:00
cutealien e4d2156531 Fix compile warnings caused by collada writer change to c8.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5694 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-26 10:41:23 +00:00
cutealien 2f127c2773 Switch Collada writer to utf8 xml's.
Reasons are that it's more typical to use utf8 for xml's and that it allows SketchUp (which doesn't support xml's with wide-chars) can import our Colladas now.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5693 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-25 20:57:39 +00:00
cutealien 391dd912bd Add IXMLWriterUTF8 to allow writing utf8/ansi XML's.
utf8 is usually the default for XML anyway.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5692 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-25 19:35:53 +00:00
cutealien f6da59daf3 IColladaMeshWriter::writeScene got an additional flag to decide if root should be written.
Default stays as it was - a roots is written when it's not the SceneManager root.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5691 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-24 15:39:45 +00:00
cutealien eb14f13b53 Fix compilation on OSX and prevent capturing mouse cursor when Window is not on top.
This is Patch#319 from Artem Shoobovych (https://sourceforge.net/p/irrlicht/patches/319/)
Untested on my side due to lack of testing system.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5689 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-23 12:42:10 +00:00