Commit Graph

  • 35a0c4df8f Enhance 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 +0000
  • 83699a835d Remove content-less comments Gregor Parzefall 2023-06-14 16:09:38 +0200
  • 98589d2fd2 Remove unused fixed function materials Gregor Parzefall 2023-06-14 15:24:43 +0200
  • b3984b1e81 Remove content-less comments #203 Gregor Parzefall 2023-06-14 16:09:38 +0200
  • 5f2b08cc8a Remove unused fixed function materials Gregor Parzefall 2023-06-14 15:24:43 +0200
  • 8c856408f5 Remove use of std::iterator Desour 2023-06-12 18:53:06 +0200
  • cbc7aeb302 Bump C++ std to 17 Desour 2023-06-12 18:52:23 +0200
  • cdcb8274ee Improve 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 +0000
  • db0f12c62c Remove use of std::iterator #202 Desour 2023-06-12 18:53:06 +0200
  • f79a7d377b Bump C++ std to 17 Desour 2023-06-12 18:52:23 +0200
  • 09af5ac00d Actually fix Android build Gregor Parzefall 2023-06-06 15:45:12 +0200
  • cd1574243d Actually fix Android build #201 Gregor Parzefall 2023-06-06 15:45:12 +0200
  • 2c6efbdf06 Remove native_app_glue linkage 1.9.0mt11 sfan5 2023-06-04 19:40:54 +0200
  • a44e5e3d17 Add 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 +0000
  • 7c92944860 Don'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 +0000
  • 428fcca7fb CDynamicMeshBuffer::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 +0000
  • 01588b58eb Get (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 +0000
  • 510976f130
    Prefer GLVND at CMake>=3.11 JosiahWI 2023-05-14 13:54:03 -0500
  • 729987d123
    Remove extra blank line #199 JosiahWI 2023-05-13 09:02:22 -0500
  • c06b4ba4e5
    Merge branch 'master' into feat/prefer_glvnd JosiahWI 2023-05-13 08:58:41 -0500
  • 1de0ec5459 Merging r6488 through r6491 from trunk to ogl-es branch cutealien 2023-05-13 12:25:10 +0000
  • 7fc5aa695a
    Prefer GLVND at CMake>=3.11 JosiahWI 2023-05-12 15:50:13 -0500
  • 1acb32d8cd CI: Android: Use the new toolchain numzero 2023-05-12 00:21:03 +0300
  • 82fb9a35ae CI: Android: Parallelize builds numzero 2023-05-11 22:35:46 +0300
  • 47912f384c CI: Android: Cache the NDK numzero 2023-05-11 22:09:59 +0300
  • d2abbcf082 CI: Android support numzero 2023-04-23 15:29:03 +0300
  • b958fdc271 Fix casing for Android device name (`MATCHES` is case sensitive) numzero 2023-05-11 21:47:20 +0300
  • 6298e811e3 Fix casing for Android device name (`MATCHES` is case sensitive) #198 numzero 2023-05-11 21:47:20 +0300
  • 31931b0455 Fix 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 +0000
  • 79e435d02a Reduce header dependencies in IVideoDriver.h cutealien 2023-05-08 16:19:31 +0000
  • 2a04d747d1 Fix: r6469 broke fixed function materials when shader materials where created but not used cutealien 2023-05-08 14:15:49 +0000
  • 9ce63bc7d3 Fix 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 +0000
  • 1670db617b Merging 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 +0000
  • c57da57edc Remove 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 +0000
  • 3683a2f8ee Reset last debug menu entry after reloaded the model in example 09 Reset 'em all! Was one short ;-) cutealien 2023-05-05 17:45:35 +0000
  • c928d1e1a6 Unify newlines cutealien 2023-05-05 12:30:28 +0000
  • c4504c1d48 Add IMeshSceneNode::setNodeRegistration to allow registering MeshSceneNodes to the SceneManager per buffer instead of per node cutealien 2023-05-04 16:07:18 +0000
  • 9679fa7006 Use ConstIterator instead of Iterator in a few places cutealien 2023-05-02 18:43:45 +0000
  • 04d814ee31 Allow 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 +0000
  • 1b4912fcc4 Collada loader can now handle 32-bit meshbuffers cutealien 2023-04-29 15:12:49 +0000
  • 1387370260 OpenGL3: Sort out texture color format support numzero 2023-04-20 17:40:51 +0300
  • 49b6ccde72 SDL: Implement getDisplayDensity() and setWindowIcon() Desour 2023-03-25 02:52:42 +0100
  • acbc90a000 Add the platform-dependent stuff from renderingengine.cpp Desour 2023-03-25 01:40:13 +0100
  • 6a2a569233 Add IImage::copyToNoScaling Desour 2023-04-13 23:00:58 +0200
  • 55e29d3347 Add SMaterialLayer::hasSetTextureMatrix and SMaterialLayer::resetTextureMatrix cutealien 2023-04-28 17:46:30 +0000
  • e4bb544079 Support startUseProgram in COGLES2MaterialRenderer Not tested much, but seems to be easier in es2 than in normal OpenGL Probably because it doesn't have to care about switching back to fixed function pipeline cutealien 2023-04-27 20:02:09 +0000
  • 23ebdbe978 Merging r6468 through r6476 from trunk to ogl-es branch Note: Not yet using latest changes to IMaterialRendererServices in ES2 driver cutealien 2023-04-27 19:51:22 +0000
  • 13619d8fdf Remove unused variable in CGUIContextMenu y was set in 2 places, but never used for anything. cutealien 2023-04-27 19:46:05 +0000
  • 36fc0bc8d2 Spelling fixes cutealien 2023-04-27 18:44:33 +0000
  • 80788a4198 More fixes for CCubeSceneNode with multi-material cube CCubeSceneNode::getMaterialCount now returning correct count CCubeSceneNode::clone now cloning all materials cutealien 2023-04-27 12:58:55 +0000
  • 8b0534d4b7 Fix CCubeSceneNode using correct material per side for multi-material cubes cutealien 2023-04-27 12:50:20 +0000
  • 28856e78b6 CCubeSceneNode can now handle new multi-material cube type cutealien 2023-04-26 18:52:08 +0000
  • e55af78b31 No longer move context sub-menu to left if there's even less space there Probably still moving too often to the left - should find some better solution. But at least some improvement. cutealien 2023-04-25 13:14:52 +0000
  • 1f15fd0805 OpenGL3: Support min/max blend modes numzero 2023-04-20 17:44:14 +0300
  • 37d821dcc3 Add MaterialType in COpenGLSLMaterialRenderer::OnSetMaterial back in Shouldn't have been removed with last commit. But adding some comments as it's slightly confusing. cutealien 2023-04-24 16:01:13 +0000
  • c4bbbe1aaf Add IMaterialRendererServices::startUseProgram/stopUseProgram This makes it possible to set high-level shader constants (which are attached to shader programs) to be set outside of OnSetConstants. IShaderConstantSetCallBack::OnCreate has it set automatically now so it works the same as OnSetConstants. D3D9 and burnings both work different, so there hadn't been a problem with those. cutealien 2023-04-24 14:46:09 +0000
  • eddde50fb9 OpenGL3: Support min/max blend modes #196 numzero 2023-04-20 17:44:14 +0300
  • 8f0d057185 OpenGL3: Sort out texture color format support #195 numzero 2023-04-20 17:40:51 +0300
  • 81ad195aa3 OpenGL3: New extension listing system numzero 2023-04-20 17:37:15 +0300
  • dd16d578d8 Support IShaderConstantSetCallBack::OnCreate in ogles2/webgl1 driver ogles1 has no shader support, so nothing to be done there. cutealien 2023-04-22 21:56:17 +0000
  • 621bad3111 Merging r6426 through r6466 from trunk to ogl-es branch Note: Updated IShaderConstantSetCallBack not yet supported by ogl-es drivers cutealien 2023-04-22 21:50:32 +0000
  • e184e4aedb Fix compiler warnings cutealien 2023-04-22 21:30:14 +0000
  • 16c960c5ed Add IShaderConstantSetCallBack::OnCreate to allow earlier access to IMaterialRendererServices Accessing IMaterialRendererServices outside of OnSetConstants can be useful and Irrlicht made this a bit too hard to access. Also OnCreate allows actually for nicer code where initialization and update of shader constants are strictly separated (see changed example). cutealien 2023-04-21 14:41:01 +0000
  • 02165eccc8 CD3D9HLSLMaterialRenderer now implementing IMaterialRendererServices itself Basically now the same as GLSL material renderer already worked. Before it was using IMaterialRendererServices from CD3D9Driver, but there had been several problems with that: - The d3d9 driver called functions through the CD3D9MaterialRenderer interface, but CD3D9HLSLMaterialRenderer is not (or maybe no longer?) derived from that class. Reason it still worked was accidental luck - the same functions had been in the same order and due to casts the compiler wasn't noticing it was calling the functions of an unrelated class. - It was making calls to set shader constants depend on the currently set material in the driver. Which was not necessary and just prevents we can use the IMaterialRendererServices interface without setting the material first (how I found the bug). Still some problems left for now: - There's 2 ways to call shader constants. One seems to be only used by hi-level shaders which links constants to the shader. The the other only by low-level shaders which uses global (shader independent) registers. So maybe this should be 2 interfaces? But not certain, glsl material renderer seems to prevent setting the global registers, but maybe those could be used additionally? I've still allowed it for now in HLSL, just in case it had it's uses. - setBasicRenderStates probably should not be in IMaterialRendererServices. I'm not seeing any case where this isn't just passed on to the driver. And all classes using it have access to the driver unless I missed one. So probably can just avoid that additional indirection and kick that out of the IMaterialRendererServices interface. cutealien 2023-04-21 14:04:57 +0000
  • 7e2e4b9fa9 OpenGL3: New extension listing system #194 numzero 2023-04-20 17:37:15 +0300
  • ce3dcfde56 Fix recently broken scroll behaviour of listbox with moveOverSelect This also fixes the combobox which users the listbox like that. This got broken in [r6454] which had fixed the events send out by the listbox Note: Still a bit strange behaviour when leaving the combobox at the bottom, but that was already that way in Irrlicht 1.8, so I've got to investigate that on it's own. cutealien 2023-04-19 15:17:39 +0000
  • 13680ef42d OpenGL3: Use DrawBuffer[s] from mt_opengl Vitaliy 2023-04-16 17:58:43 +0300
  • 44f7c22bbf OpenGL3: Version asserts numzero 2023-04-16 01:03:33 +0300
  • 2e477a07d1 OpenGL3: Add version check helper numzero 2023-04-16 01:00:41 +0300
  • 78d0819a2c Add missing include numzero 2023-04-16 00:20:30 +0300
  • df07b3bf99 OpenGL3: Remove stencil buffer presence test numzero 2023-04-15 20:11:11 +0300
  • 523590e16c OpenGL3: Refuse 3.0 and 3.1 numzero 2023-04-15 20:12:42 +0300
  • 8cf02ea27f OpenGL3: ExtensionHandler::initExtensionsNew: use GetInteger numzero 2023-04-15 19:33:23 +0300
  • efb660e7ed OpenGL3: drop unused ExtensionHandler functions numzero 2023-04-15 18:17:59 +0300
  • 5f88555ed3 OpenGL3: restore MRT support numzero 2023-04-15 18:17:45 +0300
  • 4ee1ab261e OpenGL3: Add driver-dependent feature checks numzero 2023-04-15 18:11:08 +0300
  • ab628e641c OpenGL3: Add two missing OpenGL extensions to COGLESCoreExtensionHandler numzero 2023-04-15 18:10:02 +0300
  • 1d782702e1 OpenGL3: new version format numzero 2023-04-15 16:52:15 +0300
  • 41bc7a1430 Tiny spelling fixes cutealien 2023-04-16 21:52:36 +0000
  • 26cd612cc8
    OpenGL3: Use DrawBuffer[s] from mt_opengl #193 Vitaliy 2023-04-16 17:58:43 +0300
  • 6f3e05078f OpenGL3: Version asserts numzero 2023-04-16 01:03:33 +0300
  • 11492d7aa0 OpenGL3: Add version check helper numzero 2023-04-16 01:00:41 +0300
  • 4c0caff7ea Add missing include numzero 2023-04-16 00:20:30 +0300
  • ce4fbba83d OpenGL3: Remove stencil buffer presence test numzero 2023-04-15 20:11:11 +0300
  • 75e92d5881 OpenGL3: Refuse 3.0 and 3.1 numzero 2023-04-15 20:12:42 +0300
  • 6630c59f9d OpenGL3: ExtensionHandler::initExtensionsNew: use GetInteger numzero 2023-04-15 19:33:23 +0300
  • 1f180608a5 OpenGL3: drop unused ExtensionHandler functions numzero 2023-04-15 18:17:59 +0300
  • 0705b3cbad OpenGL3: restore MRT support numzero 2023-04-15 18:17:45 +0300
  • ee0a468e58 OpenGL3: Add driver-dependent feature checks numzero 2023-04-15 18:11:08 +0300
  • ce29446a42 OpenGL3: Add two missing OpenGL extensions to COGLESCoreExtensionHandler numzero 2023-04-15 18:10:02 +0300
  • adbd54397a OpenGL3: new version format numzero 2023-04-15 16:52:15 +0300
  • c4ab49201b
    Fix compile warning when appending UTF-8/ASCII strings to ustring16 Ben Gardner 2023-04-15 02:43:40 -0500
  • 4a072f0af2 Fix compile warning when appending UTF-8/ASCII strings to ustring16 #187 Ben Gardner 2023-04-14 14:44:49 -0500
  • 896c825b9e
    Fix ComboBox changing on scroll when in a scroll container (#192) rubenwardy 2023-04-14 19:58:13 +0100
  • b585061e44 Fix ComboBox changing on scroll when in a scroll container #192 rubenwardy 2023-04-14 17:00:29 +0100
  • e2bd9940f3 SDL: Implement getDisplayDensity() and setWindowIcon() #181 Desour 2023-03-25 02:52:42 +0100
  • 8483438609 Add the platform-dependent stuff from renderingengine.cpp Desour 2023-03-25 01:40:13 +0100
  • 63525f3127 Add IImage::copyToNoScaling Desour 2023-04-13 23:00:58 +0200
  • 0887770a1e Fix spelling (comments) cutealien 2023-04-12 13:22:03 +0000
  • 7a3fc62ada
    Haiku: build fix nephele 2023-04-11 20:16:35 +0200