2546 Commits

Author SHA1 Message Date
cutealien
3469582bac Make CD3D9RenderTarget::setTexture code more similar to COpenGLCoreRenderTarget::setTexture.
Add log warnings when users try to set depth/stencil textures which have no depth color format.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5845 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-08-15 20:18:45 +00:00
cutealien
4d32f93c21 Add SOverrideMaterial.h to the VS project files.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5843 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-08-15 15:51:46 +00:00
cutealien
53bc690af6 Minor optimization when creating opengl textures
Delay switching back to previous active texture until mipmap generation is done. 
Avoids 4 GL calls in most cases (not really noticable for speed, but makes reading api-traces of GL calls a bit easier).


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5842 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-08-08 13:35:44 +00:00
cutealien
2178368d71 Update mouse position for CSceneNodeAnimatorCameraMaya also on click events.
Before it updated only on move events. That could lead to troubles when the camera was actived by click as it then started the rotation with the position of the last move event it had.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5835 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-07-11 15:25:54 +00:00
cutealien
985b3ba3a2 Initialize COpenGLExtensionHandler::pGlActiveStencilFaceEXT to 0
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5834 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-07-07 15:18:29 +00:00
cutealien
7aaf3cce9d Refactor COpenGLCoreRenderTarget::setTexture slightly.
Just making it easier to see when DepthStencil can be set (we never have a depth texture format when we have no texture).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5833 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-07-04 21:54:57 +00:00
cutealien
52e41751a8 Marks some function parameters (for internal functions) as const
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5832 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-07-04 21:30:20 +00:00
cutealien
1dd0b4338e Bugfix: IrrlichtDevice::isWindowMinimized no longer returns true when it's maximized on Windows.
SW_SHOWMINIMIZED isn't a bitflag as was probably assumed.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5827 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-07-03 13:53:13 +00:00
cutealien
c89676d042 Ignore degenerated faces in obj file loader when they would generate triangles where 2 vertices use identical indices.
This mostly happens because we merge vertices by position in the meshloader. But such triangles tend to cause troubles and won't render, so kick them out.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5826 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-06-24 10:13:09 +00:00
cutealien
a57e1c07d2 Initialize new GL function pointers and re-order intialization.
GenerateTextureMipmap had been forgotten in initialization when they got added recently.
Re-ordering initialization to avoid compiler warnings.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5823 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-06-06 13:46:27 +00:00
cutealien
8db58f1505 Add more GL functions and function-pointers to OpenGLExtensionHandler.
Thx @ criss and devsh for this patch (got applied with minor adaptions).
New functions are about functions using new direct state access functions from GL 4.5
And array textures.
Not yet used internally in the engine (but possible to access it with some hacks from apps, we probably should make the extension handler public at some point).

Also now using glActiveTexture as default instead of glActiveTextureARB.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5818 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-30 15:58:35 +00:00
cutealien
1a6d8e2913 Replace polygon offsetting in SMaterial with a new implementation.
Deprecate PolygonOffsetFactor and PolygonOffsetDirection in SMaterial.
Replace it by PolygonOffsetDepthBias and PolygonOffsetSlopeScale.
Old values still work for now (as well as they did), but will be removed after Irrlicht 1.9.
The old implementation was based a lot on the way Direct3D8 had worked.
- We only had values -1 and 1 for the slope bias before, but sometimes other values are necessary.
- An int value for PolygonOffsetFactor couldn't worked for Direct3D9 which (unlike D3D8) uses a value range of -1 to 1. 
Thx @ Criss and devsh for implementing some code which showed that different slope scaling is sometimes needed.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5817 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-29 19:48:08 +00:00
cutealien
93b308554d Set line-endings in new header to \n\r as usual in Irrlicht.
(was still unix-style as I just copied this header from khronos).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5816 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-29 14:01:50 +00:00
cutealien
6021b1c856 Updating OpenGL headers.
Note: Khronos made glext.h now depend on a new file KHR/khrplatform.h
The idea seems to be that some common types can be shared with other gl headers (for gles versions).
But I run into some problem with that as it was included with <> instead of "" so Visual Studio wouldn't find 
it without adding include paths to all projects for new KHR folder. Didn't want that (can't test that for example on iOS), 
so I modified official khronos header by changing the include to using "".


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5815 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-28 17:20:35 +00:00
cutealien
3a39815633 Add COpenGLCoreCacheHandler::getDepthTest (thx@ Criss)
While COpenGLCoreCacheHandler wasn't meant to be accessed externally, it is possible with some hacks (a few casts and including internal headers) and sometimes necessary.
And that's one of the state-flags people have a need to know from outside the engine.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5814 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-28 15:00:54 +00:00
cutealien
dcfe4bcc0a Octree triangleselector nodes now release memory they don't need.
Before they could get pretty large as each node used the maximum memory it started with.
Also some changes to avoid unnecessary memory re-alloction when creating it.
Thanks @Squarefox for reporting the problem and proposing a patch.
See discussion at: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=52484


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5813 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-26 16:03:08 +00:00
cutealien
574357cb28 Reduce memory fragmentation in COctreeTriangleSelector.
Thx@  Squarefox for reporting (http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=52484)
Basically the loop was split into 2 loops so children do their allocations after the parent node
has finished his. Otherwise we got fragmentation by chaotic allocation order where parents/childs
switched all the time.
Also indention of loop changed (sorry, should have done that before).


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5812 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-26 15:45:19 +00:00
cutealien
278f5f14e4 Enable broken cubescenenodes again.
In r5805 they got broken when adding compile-flags for them.
Copy-paste error, define was missing a '_' at the end in some places, sorry.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5810 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-05-01 10:32:24 +00:00
cutealien
37ccfe58a2 Remove define _IRR_COMPILE_WITH_B3D_WRITER_ in CB3DMeshWriter.
(probably was added accidental, as it was always enabled that way which kills it's original purpose).
Thx@ LunaRebirth for report (http://irrlicht.sourceforge.net/forum/viewtopic.php?f=1&t=52471)


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5807 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-04-24 21:03:35 +00:00
cutealien
040aa5043a Add compileflags to allow removing specific scene-nodes from the engine.
Following flags got added: 
_IRR_COMPILE_WITH_OCTREE_SCENENODE_
_IRR_COMPILE_WITH_TERRAIN_SCENENODE_
_IRR_COMPILE_WITH_SHADOW_VOLUME_SCENENODE_
_IRR_COMPILE_WITH_BILLBOARD_SCENENODE_
_IRR_COMPILE_WITH_WATER_SURFACE_SCENENODE_
_IRR_COMPILE_WITH_SKYDOME_SCENENODE_
_IRR_COMPILE_WITH_CUBE_SCENENODE_
_IRR_COMPILE_WITH_SPHERE_SCENENODE_
Also the corresponding _NO_IRR_COMPILE_WITH... flags certainly.
More such flags might be added in future, but will test first if it really makes a difference for WebGL apps which were the main reason to add this.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5805 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-04-23 20:05:09 +00:00
cutealien
4aa790812f Add new headers to c::b project file.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5801 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-30 14:06:55 +00:00
cutealien
c87c63f31e Add IMemoryReadFile interface which allows direct access to memory block used as file.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5799 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-03-30 13:51:44 +00:00
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
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
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
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
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
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
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
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
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