Commit Graph

333 Commits

Author SHA1 Message Date
numzero
4ee1ab261e OpenGL3: Add driver-dependent feature checks 2023-04-18 23:22:53 +02:00
numzero
ab628e641c OpenGL3: Add two missing OpenGL extensions to COGLESCoreExtensionHandler 2023-04-18 23:22:53 +02:00
numzero
1d782702e1 OpenGL3: new version format 2023-04-18 23:22:53 +02:00
rubenwardy
896c825b9e
Fix ComboBox changing on scroll when in a scroll container (#192) 2023-04-14 19:58:13 +01:00
nephele
7a3fc62ada
Haiku: build fix 2023-04-11 20:16:35 +02:00
sfan5
2d81374b34 Revert "Fix: Listbox was sometimes sending EGET_LISTBOX_SELECTED_AGAIN instead of EGET_LISTBOX_CHANGED."
This broke scrolling in listboxes, as they would always reset to top position.
reverts commit 1967d71cfb
2023-04-11 14:36:44 +02:00
Vitaliy
aa1696a7e6
Use a buffer for quads indices
also use glDrawRangeElements for quad drawing
2023-04-08 19:08:03 +02:00
numzero
e01f285c8f Extract and use singular CNullDriver::checkImage 2023-04-08 19:07:16 +02:00
numzero
5eb607f86f Drop createImagesFromFile in favor of createImageFromFile 2023-04-08 19:07:16 +02:00
numzero
fc0440ff89 Drop IImageLoader::loadImages as only IImageLoader::loadImage is usable 2023-04-08 19:07:16 +02:00
numzero
6a152e8629 OpenGL3: Drop unused material property uniforms 2023-04-07 17:42:54 +02:00
numzero
718ba69e1b OpenGL3: Drop unused fixed-function emulation materials 2023-04-07 17:42:54 +02:00
sfan5
54314691ec
Fix mistake in a677f5a01a 2023-04-06 15:00:12 +02:00
sfan5
36a3a7f349 Don't compile unused driver sources 2023-04-06 12:38:25 +02:00
sfan5
ca5f005b74 Fix OpenGL3 driver to compile standalone
also test this configuration in CI
2023-04-06 12:38:25 +02:00
sfan5
e850bd102a Minor adjustments to configuration flow 2023-04-06 12:12:46 +02:00
sfan5
a677f5a01a Only try to link libraries when relevant feature is enabled
fixes #182
2023-04-06 11:56:04 +02:00
sfan5
3a074e4124 Merge branch 'opengl3' of https://github.com/numberZero/irrlicht 2023-04-06 11:20:03 +02:00
numzero
70ee4b05aa Indicate chosen OpenGL ES 2 driver during configuration 2023-04-05 22:52:43 +03:00
DS
ba1cd19983
Use non-static member vars for SDL clipboard / primary selection buffers 2023-03-26 14:13:58 +02:00
sfan5
a67f3003de Revert "Avoid some broken calculations for IBoneSceneNode positions."
This was reported to cause broken models in some cases.
reverts commit edb381bd50
2023-03-26 14:09:40 +02:00
numzero
4dda28450f Provide sources as private to IRRVIDEOOBJ 2023-03-25 11:26:52 +03:00
numzero
219b7fd7d2 Fix line endings in the new driver 2023-03-25 11:11:09 +03:00
numzero
d97d1708d6 Resolve conflicts with master 2023-03-25 10:42:47 +03:00
Desour
799c8b936f SDL: Support primary selection
Requires SDL >= 2.25.0 (newest master).
2023-03-24 17:59:06 +01:00
Desour
8da1bcf58b SDL: Support clipboard 2023-03-24 17:59:06 +01:00
Desour
d86abb40c1 CGUIEditBox: Use primary selection
This is essentially the same as the commit in the minetest repo for GUIEditBox.
2023-03-24 17:59:06 +01:00
Desour
53b9eaa831 Implement X11 primary selection 2023-03-24 17:59:06 +01:00
cutealien
1967d71cfb Fix: Listbox was sometimes sending EGET_LISTBOX_SELECTED_AGAIN instead of EGET_LISTBOX_CHANGED.
When pressed mouse was moved over an item before releasing the mouse button it was sending immediately EGET_LISTBOX_SELECTED_AGAIN instead of expected EGET_LISTBOX_CHANGED (mouse  move changes do not send any events).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6454 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
939b3f7bfb Avoid undefined arithmetic on nullptr in buffer_offset function
Not quite sure why it was done that way. Maybe to ensure we work with byte-pointers of correct size or something?
Anyway, this doesn't seem to be defined in c++, so let's try working with a cast instead.
Just something cppcheck tool complained about.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6447 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
6f3435f349 Prevent potential 0 pointer access when release not acquired joystick.
Found by clang analyser. Not sure if it could really ever have happened, but won't hurt to fix

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6443 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
edb381bd50 Avoid some broken calculations for IBoneSceneNode positions.
This is based on bugreport #458 reported by viwrap who also made a nice test-case model.
Note: While solution seems to work and would even be faster, I'm not 100% sure yet if there are no downsides.
The other solution seems to regard last column in matrices - thought I don't think we ever set or use that.
And I also haven't found out yet _why_ the original solution goes wrong.
But animation system uses right-hand quaternions unlike rest of Irrlicht which is obviously a bit dangerous, will have to check the conversions some day.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6438 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
8ffa7eafea Fix warning
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6434 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
2bff147904 Fix: Make CBillboardSceneNode bounding-box large enough to fit the billboard inside.
It still won't work yet for scaled boundingboxes (or parents being scaled).
But at least it's now large enough for typical unscaled boundingboxes.
Before it was always too small - even for the simplest quadratic billboard case seen without rotation.
Now it's always a bit too large, but that's way less of a problem (collisions still work and culling simply happens a bit less often, but not too often which is way worse)

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6431 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
98df6eae77 Unify & improve log messages
Lots of places where coders did not realize our Printer::log with hint adds a ": " string between message and hint
Which caused uglier messages in a few places (added documentation for that, maybe helps?)
Some added info in a few places
Some whitespace unification
Some spelling unification

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6414 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
3ce4b2b5dc Prevent crash when creating CCameraSceneNode while rendertarget has height 0
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6405 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
424eb85f4d Minor const changes.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6402 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
6a9e0f109c Avoid potential number overflows.
Found by VS code analyser

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6393 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
engineer_apple
15e3f15b48 SpriteBank: error check on non existing textureNumber
seen in broken Fonts. unified getFrameNr

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6368 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
cutealien
739a9eaf7c IVideoDriver::setMaterialRendererName now using u32 for index like other similar functions
Other functions like getMaterialRendererName got switched to u32 in the past. I can see no reason why this one was left out, so changing it to be same as the rest.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6300 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-03-24 17:09:11 +01:00
numzero
52a0b9d8e5 Drop dependency on FileSystem from SceneManager 2023-03-19 19:47:43 +01:00
numzero
0160cdc51d Drop unused dependency of SceneManager on GUIEnvironment 2023-03-19 19:47:43 +01:00
numzero
5a1565072a Drop unused dependency on FileSystem in mesh loaders 2023-03-19 19:47:43 +01:00
numzero
25a7074c9a Remove all mentions of iOS 2023-03-14 17:54:08 +01:00
numzero
df8881898d Remove CIrrDeviceiOS 2023-03-14 17:54:08 +01:00
numzero
ba77d01c91 Error out early on unsupported SDL2+GLES1 combo 2023-03-13 19:16:06 +03:00
numzero
ea0ca7f917 Small Fixes 2023-03-13 18:33:58 +03:00
numzero
82d1feb933 Accommodate lack of ETS_TEXTURE_1 2023-03-13 18:17:47 +03:00
numzero
d81db9dd6d Merge branch 'drop-irr-compile-config' into opengl3 2023-03-13 18:07:25 +03:00
Vitaliy
5a5a7d04b7
Drop IrrCompileConfig (#163) 2023-03-11 15:04:09 +01:00
numzero
ceb53be9e3 Merge branch 'master' into opengl3 2023-03-03 22:01:30 +03:00
numzero
df28a4cc46 Fix ifdefs around includes in CIrrDeviceSDL 2023-03-03 21:23:07 +03:00
numzero
8dd8652f5f Split new GL3/GLES2 drivers
The classes are tiny wrappers currently but should they be customized, they are there
2023-03-03 20:29:36 +03:00
numzero
2932065346 Report as OpenGL 3 2023-03-02 03:03:17 +03:00
numzero
1326dfbcb1 Error out on unsupported configurations 2023-03-02 02:44:52 +03:00
numzero
1bbe341daa Support both OpenGL3 and GLES2 on SDL2 2023-03-02 02:44:52 +03:00
numzero
d6716ec31b Support GLES2 2023-03-02 02:41:58 +03:00
numzero
05384fdc5e Unify drawing functions 2023-02-28 00:51:29 +03:00
numzero
48270029cd Drop obsolete stuff 2023-02-27 23:36:56 +03:00
numzero
c5ce853148 Unify quad drawing 2023-02-27 23:36:47 +03:00
numzero
4fba496917 Unify plain image drawing 2023-02-27 21:27:23 +03:00
numzero
79fdab0551 Drop obsolete IVideoDriver features 2023-02-27 21:26:46 +03:00
numzero
608aa150ff Load extensions the OpenGL 3 way 2023-02-27 20:32:06 +03:00
numzero
1f750cd7b2 Add debug handler 2023-02-27 20:31:51 +03:00
numzero
8c521939b9 Enumerate extensions in the OpenGL 3 way 2023-02-27 17:41:03 +03:00
numzero
cfa8dd7845 Request OpenGL 3.2 2023-02-27 17:39:28 +03:00
numzero
01295c9ce6 Add OpenGL3 renderer 2023-02-27 17:05:11 +03:00
numzero
5a95b40a0e Reduce IrrCompileConfig usage to files that actually need it 2023-02-22 21:11:12 +03:00
numzero
8efd4527f6 Drop _IRR_MATERIAL_MAX_TEXTURES_ 2023-02-22 21:11:12 +03:00
numzero
a0e1e39ea7 Drop _IRR_SCENEMANAGER_DEBUG 2023-02-22 21:11:12 +03:00
numzero
d8e09f14bd Drop _IRR_COMPILE_WITH_GUI_ 2023-02-22 21:11:12 +03:00
numzero
67f852be57 Drop obsolete configuration macros 2023-02-22 21:11:12 +03:00
numzero
5a2b807890 Move import/export macros into CMake 2023-02-22 21:11:12 +03:00
numzero
06db7b7ab7 Move platform detection to CMake 2023-02-22 21:11:12 +03:00
Desour
ea297196b7 Resolve some -Wreorder warnings 2023-02-22 11:43:42 +01:00
DS
5527b9f373
SDL: Use SDL_WINDOW_FULLSCREEN_DESKTOP and allow to maximize+fullscreen at once (#156) 2023-02-20 13:22:28 +01:00
ndren
cd3e784534
Refactor SDL input code to fix menu exit (#146) 2023-02-18 16:16:17 +01:00
DS
51dffc416a
Add WindowMaximized creation parameter and isWindowMaximized() (#142) 2023-02-06 15:05:44 +01:00
Lars
3de3ff524a Avoid reskinning joints for animated meshes twice for each frame. 2023-01-07 16:59:02 -08:00
sfan5
7d3142b969 Remove leftover code from software rendering 2023-01-02 21:21:53 +01:00
sfan5
a9230e5f49 Delete profiler 2023-01-02 21:05:07 +01:00
sfan5
b5a6dc0a15 Delete leak hunter 2023-01-02 20:37:18 +01:00
x2048
2ae816b5a6
Use swap_control from MESA and EXT before SGI (#151)
SGI extension does not support interval == 0 (disabling VSync)
2022-12-29 23:42:52 +01:00
x2048
61af99adfa Use swap_control from MESA and EXT before SGI
SGI does not support disabling vsync (interval == 0)
2022-12-29 22:48:36 +01:00
SmallJoker
afbe41019c CGUITabControl: Center selected tab whenever possible
This greatly improves the navigation speed by clicking through the tabs
without losing track of the current scroll position.
2022-12-23 20:07:15 +01:00
sfan5
05a00a8d91 Completely remove irrAllocator 2022-12-23 19:56:21 +01:00
sfan5
07fd32da50 Replace core::string implementation with std::basic_string 2022-12-23 19:17:08 +01:00
DS
1579ce2740
SDL: implement cursor icon API (#135) 2022-11-12 15:52:39 +01:00
Andrei E
a549d0bfed Add setRelativeMode for SDL driver (#123) 2022-10-24 21:19:11 +02:00
sfan5
cac4e62852 Fix buffer overflow in COBJMeshFileLoader 2022-10-24 11:07:51 +02:00
Lars Müller
e46ab74859
Fix line drawing: Explicitly draw both first & last pixel (#110) 2022-10-16 23:47:51 +02:00
DS
57705d57cf
SDL: Always set X, Y, Shift and Control in mouse input events 2022-10-16 17:42:15 +02:00
sfan5
2709c937d9 Fix SDL device to work with null driver 2022-10-15 11:13:20 +02:00
JosiahWI
59fc4401f1 Replace _IRR_OVERRIDE_ macro with override keyword
The commit also establishes a precedent of leaving off the `virtual`
keyword in overrides. Although not strictly necessary, I believe this is
good for readability because it makes it clear it is an override and not
a pure virtual function, and it helps keep line lengths shorter. We
should move towards eliminating the macro altogether, but the definition
has been left in with a note on deprecation so that in-progress work
will not suffer merge conflicts.
2022-10-15 01:09:09 +02:00
Riceball LEE
1128d9deab
win32: use the unicode window instead of ansi window (#138) 2022-10-14 15:52:10 +02:00
Tobias Frost
1cf0f3bef0
Fix typo in CXMeshFileLoader.cpp (#133)
This patch was provided from J. Puydt to Debian.
Origin: https://salsa.debian.org/games-team/minetest/-/blob/master/debian/patches/fix-typos.patch
2022-09-21 10:47:19 +02:00
sfan5
e9f205f952 Avoid using XIWarpPointer on certain setups where it's broken
fixes minetest/minetest#12697
2022-09-12 16:20:31 +02:00
Herman Semenov
d733e03430
Fix glHint parameter, type size and add more null checks (#130) 2022-09-02 08:40:02 +02:00
savilli
f0766c845f
Fix crash in COGLES1Driver (#128) 2022-08-22 19:12:40 +02:00
sfan5
f6ec00e1c4 Include revision in SOVERSION for (in)compatibility checks 2022-07-21 20:04:34 +02:00
sfan5
91edd214aa Enable XInput2 by default (and improve CMake detection)
closes #73
2022-07-18 21:42:43 +02:00
sfan5
538c9e5cde Drop gamma ramp code
We definitely won't be wanting to set the gamma for the entire display in the future.
2022-07-18 21:22:38 +02:00
ndren
67c0cb5740
Support Unicode characters properly in SDL2 (#114) 2022-07-17 12:08:37 +02:00
sfan5
a7b306f702 Drop Console and Framebuffer device
fbdev is long legacy and the console was just an ASCII art gimmick
2022-07-09 23:53:04 +02:00
sfan5
074e81f78f Stop dlopening libGL(ESv2).so
GLX/EGL are supposed to abstract exactly this away,
this is a bad hack at best and might totally break stuff at worst.
2022-07-09 23:03:53 +02:00
sfan5
25ae156944 Fix CreateContextAttribsARB fallback behaviour
fixes minetest/minetest#12518
2022-07-09 22:04:51 +02:00
JosiahWI
b787ec3e3e
Cleaner ListItem initialization (#117)
Should fix Coverity report CIDs 1516434 and 1518460.
2022-07-07 21:44:15 +02:00
JosiahWI
6db035e0aa
Fix null dereference reported by coverity (#115) 2022-07-04 12:12:33 +02:00
JosiahWI
6064e12133
Remove dead code detected by Coverity (#116)
fixes coverity reports CID 1518478, 1518465
2022-07-03 19:34:12 +02:00
Dmitry Kostenko
53e1b52ff4 Reset blend equation in 2D mode in OGLES1 and OGLES2 drivers 2022-06-10 08:35:05 +02:00
Dmitry Kostenko
a04a0d2a4b Reset blend operation in 2d mode 2022-06-09 08:20:23 +02:00
paradust7
392df9bae3 Use CGWarpMouseCursorPosition 2022-06-06 12:03:16 +02:00
sfan5
426730bf91 Don't crash attempting to scale zero-sized images
fixes minetest/minetest#12393
2022-06-01 23:33:17 +02:00
sfan5
aa095d9525
Remove more dead code (#108) 2022-06-01 15:03:52 +02:00
paradust7
128cf1696c
Remove core::list and replace uses with std::list (#105) 2022-05-22 00:00:32 +02:00
paradust7
3e81f38098
Make irrArray backed by std::vector (#101) 2022-05-21 23:56:36 +02:00
sfan5
593103a261 Refactor SDL device to use the same abstraction as other devices
In particular this makes the OpenGL procedure stuff work.
fixes https://github.com/minetest/minetest/issues/12265
2022-05-21 15:26:38 +02:00
sfan5
0732807cc8 Improve IrrCompileConfig handling in cmake 2022-05-21 15:26:38 +02:00
paradust7
00a7741cd4 Remove irrMap and use std::map instead 2022-05-18 13:12:47 +02:00
paradust7
51ae495c4a
Remove extra memcpy in ogles2 driver 2022-05-11 13:25:50 +02:00
paradust7
401e769114 Enable GL_ALPHA_TEST in OpenGL driver for custom transparent alpha shaders 2022-05-04 17:35:31 +02:00
ndren
24594ce226
Add missing overrides to fix compiler warnings 2022-04-30 16:53:53 +02:00
paradust7
ba0396e93d
Replace HWBufferMap with a list and back pointers (#99) 2022-04-29 12:04:22 +02:00
sfan5
e469c54f76 Fix COSOperator::getSystemMemory
The values it returns are in Kilobytes and it was broken on macOS.
2022-03-09 22:52:11 +01:00
sfan5
df908ef4ea Get rid of various old compiler and platform checks 2022-02-26 12:11:27 +01:00
sfan5
95af6d7c08 Get rid of all sprintf calls 2022-02-26 12:11:27 +01:00
sfan5
00dd274510 Fix uninitialized variable in previous commit 2022-02-26 12:11:27 +01:00
sfan5
d59bcdbd07 Create OpenGL context using CreateContextAttribsARB 2022-02-20 23:18:17 +01:00
sfan5
09b8837ef9 Fix SDL2 include paths
closes #96
2022-02-14 18:26:59 +01:00
cutealien
4fb1c55ec5 IBillboardSceneNode got functions to access meshbuffers.
So uv-coordinates can now be modified directly (previously only possible via texture matrix).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6299 dfc29bdd-3216-0410-991c-e03cc46cb475
2022-02-09 19:09:04 +01:00
cutealien
684293f527 Prefer static_cast to reinterpret_cast where possible.
Just safer. Could probably do in a lot more places... another time.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6293 dfc29bdd-3216-0410-991c-e03cc46cb475
2022-02-09 19:05:49 +01:00
sfan5
fa2a7dc236 Gracefully handle lack of bundle on macOS
should fix https://github.com/minetest/minetest/issues/10170
2022-01-31 21:03:21 +01:00
sfan5
7d1dc8b2d5 Get rid of ancient workaround
...that probably negatively impacted performance or something else
2022-01-22 21:01:17 +01:00
Emmanuel Hansen
53db262bd2
Update CIrrDeviceSDL to support SDL2 (#85) 2022-01-16 12:16:15 +01:00
sfan5
195759100f CB3DMeshFileLoader: abort if offsets point outside of file
fixes #70
2022-01-15 16:06:30 +01:00
x2048
2fec5e5dd3
Reset mesh animation state before recalculating normals (#90) 2022-01-02 20:41:03 +01:00
ROllerozxa
52e03a8485
Remove unused attribute saving and loading (#86) 2021-12-29 23:00:56 +01:00
sfan5
dd09fdcb4e
Remove more unused code (#87) 2021-12-29 13:12:09 +01:00
William L. DeRieux IV
4bdecbc6b7 Automatically use SSE registers for FP operations on i386 (#83) 2021-12-15 16:33:20 +01:00
JosiahWI
6d133e1bcc Fix various GCC warnings
- fix overload hiding
- handle missing enumeration values in switch
- remove extraenous semicolons
- always have defaults in color converter switch
- fix root cause of stringop warning
2021-11-24 22:07:26 +01:00
JosiahWI
d4119ba664 Remove unused functions
renderLine16_Blend(), renderLine16_Decal(), renderLine32_Blend(), renderLine32_Decal()
clipLine()
frand()
drawRectangle() and drawLine()

remove unused private fields
2021-11-24 22:06:12 +01:00
sfan5
d322b73e4c Get rid of MATERIAL_MAX_TEXTURES_USED
Another configurable knob of questionable usefulness,
especially since this inhibits certain optimizations
by making loop length dependent on a global variable.
2021-11-19 20:16:57 +01:00
sfan5
6779cb7254 Unconditionally load first texture matrix in OpenGL driver
This used to work in Irrlicht 1.8 and I tried to figure out
why it no longer did, but failed.
fixes minetest/minetest#11206
2021-11-19 19:34:53 +01:00
x2048
39cad3e618
Fix updating of vertex normals for animated meshes (#77)
Updates cached positions and normals of animated vertices
from the mesh. Useful when using meshManipulator to update
the normals.
2021-11-16 12:30:31 +01:00
sfan5
dbd39120e7 Limit dimensions of all image loaders to 23000x23000 2021-10-05 11:17:36 +02:00
sfan5
594de99153 CImageLoaderJPG: protect size calculation from overflow by rejecting huge dimensions 2021-09-14 20:07:44 +02:00
ROllerozxa
ac57007c55
Readd TGA format support (#64) 2021-09-13 21:21:26 +02:00
sfan5
4389a15e0f Remove unused locale-like code, utf8 functions and headers 2021-08-30 22:42:13 +02:00
sfan5
8f386999a6 Change clipboard to UTF-8 on macOS
(untested)
2021-08-30 21:53:12 +02:00
sfan5
34f1f8d089 Make clipboard UTF-8 on Windows too 2021-08-30 21:51:24 +02:00