298623541bFix number overflows in TGA loader causing crashes Image size calculation could overflow s32 in one place (but not others where it was done correct), which first lead to wrong amount of memory getting allocated for image data and later crash in the CColorConverter. Thanks @sfan5 for his fuzzing tests @https://github.com/minetest/irrlicht/issues/236 and @erlehmann for passing them on: https://irrlicht.sourceforge.io/forum/viewtopic.php?t=52925 Also updating changes.txt with TGA loader changes from this and previous commits.
cutealien
2023-09-23 19:01:01 +00:00
9f48103263Fix crash caused by memory overwriting in TGA loader caused by bad RLE data From sfan5's fuzzing test reported in Minetest here: https://github.com/minetest/irrlicht/issues/236 Was missing test if it writes beyond allocated memory which can be triggered by TGA's which lie in their RLE data.
cutealien
2023-09-23 18:33:46 +00:00
74d3a9967fTGA images with palettes in 24 or 32 bit now create 32 bit images Was creating 16-bit images for those before. Could also support 24-bit images, but either we need another convert function or another palette for that (the 16 and 32 bit both work with 32 bit palettes, the 24 bit conversion function only with 24 bit palettes)
cutealien
2023-09-23 17:08:43 +00:00
e81038237bAdd some comment that camera FOV is vertical Parameter already called fovy, but shouldn't hurt to mention it twice
cutealien
2023-09-23 14:24:36 +00:00
7ff82528f3Unify matrix4::buildProjectionMatrixPerspectiveFov functions We had 4 near identical functions, those now all call buildProjectionMatrixPerspectiveFov They were a bit hard to check for errors otherwise. Especially with the tiny confusing non-differences like one using (a-b) and other -(b-a) Also new one uses matrix template parameter in case someone needs for example a high-precision matrix.
cutealien
2023-09-22 16:06:40 +00:00
0735220f86Suppress a -Wunused-but-set-variable warning
Desour
2023-08-29 14:58:28 +02:00
0740d055acFix uninitialized memory error in operator- for ustring16 iterators
Desour
2023-08-29 14:14:14 +02:00
1d4672bd92Remove the now unused SMaterialLayer::setFiltersMinetest method
Gregor Parzefall
2023-08-24 12:25:41 +02:00
c602a39598Enable MultiProcessorCompilation in VC17 project file No reason to not have several times faster build-times
cutealien
2023-08-17 10:12:28 +00:00
ef3bab610dCIrrDeviceLinux: Fix type for NET_WM_PID XChangeProperty
Jessica Clarke
2023-08-15 17:47:03 +01:00
bd4ce386a2Clean-up include dependencies (video namespace)
cutealien
2023-08-15 18:42:05 +00:00
ce1cdd2543Clean-up include dependencies (scene namespace)
cutealien
2023-08-14 22:01:22 +00:00
f83697d0bbClean-up include dependencies Files in irr namespace Also some spelling fixes
cutealien
2023-08-14 20:38:23 +00:00
80ce85ecc2Clean-up include dependencies in gui and io modules
cutealien
2023-08-13 20:19:25 +00:00
1d58677e18Clean up include dependencies in public headers Removing includes which were not needed by headers Note that if you include those headers directly (instead of including irrlicht.h) you may have to add some new includes now. Thought I generally tried to avoid removing headers where it leads to too much changes in user-code Reason was mainly that IntelliSense in VisualStudio 17.7 added a new feature which shows those unused headers :) Has to be used a bit careful as it doesn't know about defines and other platforms And I only did clean up public headers so far (will probably do some more later or another time)
cutealien
2023-08-13 15:31:42 +00:00
dc6d89a170Fix compiling example 21 Somehow was broken since fixing the spelling of tessellation and never noticed
cutealien
2023-08-13 15:25:54 +00:00
2149bfb317Merging r6511 through r6520 from branch releases/1.8 to trunk Note: Due to OSX always failing merge OSX it's rather applying a second patch from Ryan Schmidt from bugreport #462 to trunk (Not sure why svn merging always fails for OSX. Probably related to MacOSX files getting moved in the past. Was that done without svn move commands? I guess that can't be fixed anymore now)
cutealien
2023-08-04 10:22:58 +00:00
e9c494503dMerging r6493 through r6517 from trunk to ogl-es branch
cutealien
2023-08-03 19:12:11 +00:00
03fc9c73b5Add missing word in changes.txt
cutealien
2023-08-03 19:09:22 +00:00
6f60edbdedMerging r6511 through r6515 from branch releases/1.8 to trunk Note that 6514 couldn't be merged as the xcode project seems to have been rewritten and the irrFramework-Info.plist no longer exists in trunk.
cutealien
2023-08-03 01:11:01 +00:00
7ecaa18949Merging r6506 through r6510 from branch releases/1.8 to trunk Note those were mostly backport, so trunk already had most changes. Also we've not merged all from 1.8 branch, will need another merge (backports tend to cause lots of ugly conflicts, so have to split this a bit)
cutealien
2023-08-03 00:59:44 +00:00
d98dc90b38cleanup: only build some files on WIN32 and compile EGL only if needed
Loïc Blot
2023-08-01 20:53:25 +02:00
2bfe7506c2Optimization in quaternion::rotationFromTo from Robert Eisele Turns out we can avoid a square root and a division. Patch comes even with proof: https://raw.org/proof/quaternion-from-two-vectors (I also tested it a while and indeed got same results)
cutealien
2023-07-30 16:34:24 +00:00
f7de9091a1Remove comment that addRenderTargetTextureCubemap only works in d3d9 It works since quite a while also in OpenGL
cutealien
2023-07-28 13:48:12 +00:00
27a73a81c6Merging r6423 through r6505 from branch releases/1.8 to trunk Those were backports from trunk to 1.8 so only changes.txt changed
cutealien
2023-07-26 15:31:41 +00:00
35a0c4df8fEnhance shader material to show how to pass material values Also document that gl_FrontMaterial is no longer supported in Irrlicht 1.9 (this has been the case for a few years, I just never noticed this was changed as I never even knew that was possible in the past...). Will keep it that way is it's definitely going in the right direction (getting rid of legacy support and going towards OpenGL core instead),
cutealien
2023-06-24 15:42:31 +00:00
83699a835dRemove content-less comments
Gregor Parzefall
2023-06-14 16:09:38 +02:00
98589d2fd2Remove unused fixed function materials
Gregor Parzefall
2023-06-14 15:24:43 +02:00
8c856408f5Remove use of std::iterator
Desour
2023-06-12 18:53:06 +02:00
cbc7aeb302Bump C++ std to 17
Desour
2023-06-12 18:52:23 +02:00
cdcb8274eeImprove documentation What Irrlicht calls ShaderConstants is called uniforms by everyone else. So let's mention this at least. Also reworked setVertexShaderConstant interface had an example for the old interface in the header.
cutealien
2023-06-12 19:26:43 +00:00
09af5ac00dActually fix Android build
Gregor Parzefall
2023-06-06 15:45:12 +02:00
a44e5e3d17Add updateBoundingBox parameter to IMeshBuffer::append and some fixes and optimizations Fix: When appending to an empty mesh boundingbox has to be initialized with first position Adding updateBoundingBox parameter as there is a bit costs involved in updating that and it might not be necessary at that point Default is still to do it - and with the default parameter it's at least compile compatible to old interface (unless users created their own meshbuffers). Optimizing the copying of vertices in CDynamicMeshBuffer::append by using memset when possible instead of pushing each vertex (which goes through quite a few virtual functions)
cutealien
2023-05-17 14:31:50 +00:00
7c92944860Don't let MeshBuffer append functions shrink memory as this prevents optimizations Couldn't allocate enough memory before appending several buffers for all of them as first append shrunk the memory again.
cutealien
2023-05-16 16:33:30 +00:00
428fcca7fbCDynamicMeshBuffer::append can now handle appending meshbuffers with different vertex/index types Doesn't change it's own type - so can still drop data. Or overflow 16-bit buffers (which creates broken models, but no crashes). But it no longer has a problem adding 16-bit index-buffers to a 32-bit index-buffer for example.
cutealien
2023-05-16 16:05:24 +00:00
01588b58ebGet (more) append functions working for CMeshBuffer and CDynamicMeshBuffer Some in CMeshBuffer got disabled in svn r1515 (before Irrlicht 1.7) without comment. I suspect reason might have been that they are a bit unsafe and it was meant to be reworked. Maybe was planned to put that into MeshManipulator? And CDynamicMeshBuffer never had them. Anyway, it's useful stuff and having functions do nothing doesn't help. So now they do at least basic work. Meaning - as long as index and vertex types are identical it's possible to attach meshbuffers again. While totally ignoring things like 16-bit index overflow for now (so could be improved). It would probably be better if attach functions had info about vertex/index types, but just keeping interface as it is/was for now. This also fixes Bug #310 reported by Gaz.
cutealien
2023-05-15 17:28:42 +00:00
510976f130Prefer GLVND at CMake>=3.11
JosiahWI
2023-05-14 13:54:03 -05:00
1de0ec5459Merging r6488 through r6491 from trunk to ogl-es branch
cutealien
2023-05-13 12:25:10 +00:00
b958fdc271Fix casing for Android device name (MATCHES is case sensitive)
numzero
2023-05-11 21:47:20 +03:00
31931b0455Fix problems in rendering nodes outside SceneManager caused by new render-per-buffer code Did no longer render nodes which were rendered in SceneManager + outside SceneManager if they didn't have the per-buffer-rendering enabled.
cutealien
2023-05-09 10:11:49 +00:00
79e435d02aReduce header dependencies in IVideoDriver.h
cutealien
2023-05-08 16:19:31 +00:00
2a04d747d1Fix: r6469 broke fixed function materials when shader materials where created but not used
cutealien
2023-05-08 14:15:49 +00:00
9ce63bc7d3Fix SMaterialLayer operator!= and optimize operator= SMaterialLayers are now identical when both have identity matrices. Before it didn't consider them identical when one layer had set the identity matrix explicitly and the other didn't. Generally didn't matter, just caused very rarely some extra state switches in the drivers. And just as rarely had a cheaper comparison. Just seems more correct this way.
cutealien
2023-05-07 14:51:09 +00:00
1670db617bMerging r6468 through r6486 from trunk to ogl-es branch Also updating ES&ES2 interface to work with removal of IMaterialRendererServices::setBasicRenderStates
cutealien
2023-05-05 19:28:40 +00:00
c57da57edcRemove IMaterialRendererServices::setBasicRenderStates Wasn't ever used by anything and not that well defined anyway. So they all just passed it on to the drivers. And then sometimes the driver version was called and sometimes the IMaterialRendererServices version. So now everything just calls the driver - all places which need it have access to the driver anyway. Also made the driver version non-virtual for now. If someone actually really needs this for some reason I can add it back as virtual function directly in IVideoDriver. But I doubt it - the interface was hardly accessible until recently and originally only meant for internal stuff. GLES version still to do, but checked them earlier and they also just do nothing with it.
cutealien
2023-05-05 18:47:22 +00:00
3683a2f8eeReset last debug menu entry after reloaded the model in example 09 Reset 'em all! Was one short ;-)
cutealien
2023-05-05 17:45:35 +00:00
c4504c1d48Add IMeshSceneNode::setNodeRegistration to allow registering MeshSceneNodes to the SceneManager per buffer instead of per node
cutealien
2023-05-04 16:07:18 +00:00
9679fa7006Use ConstIterator instead of Iterator in a few places
cutealien
2023-05-02 18:43:45 +00:00
04d814ee31Allow nodes ignoring parent transformations with ESNUA_RELATIVE New AbsPosUpdateBehavior which makes updateAbsolutePosition calls behave as if a node had no parent. Allows for micro optimizations in cases where we have non-moving root node (all scenenodes are always added to the SceneManager which is generally not moved but it's transformation is still multiplied each frame for each node) As a side-effect this also allows abusing the SceneManager to group objects without affecting transformations. No real extra cost since I added ESNUA_TRANSFORM_POSITION already. Thought turns out those matrix transformations are so fast that I also didn't noticed any difference in tests with > 20.000 nodes.
cutealien
2023-05-02 16:05:22 +00:00
1b4912fcc4Collada loader can now handle 32-bit meshbuffers
cutealien
2023-04-29 15:12:49 +00:00
1387370260OpenGL3: Sort out texture color format support
numzero
2023-04-20 17:40:51 +03:00
49b6ccde72SDL: Implement getDisplayDensity() and setWindowIcon()
Desour
2023-03-25 02:52:42 +01:00
acbc90a000Add the platform-dependent stuff from renderingengine.cpp
Desour
2023-03-25 01:40:13 +01:00