Commit Graph

89 Commits

Author SHA1 Message Date
sfan5
a7a719261e
Minimize data sent in the default user agent (#14851) 2024-07-20 10:27:04 +02:00
sfan5
fac9aac821
Move malloc_trim invocations to background thread (#14744) 2024-06-17 15:59:35 +02:00
sfan5
71893807b3
Call malloc_trim() regularly to improve deallocation behavior (#14707) 2024-06-07 16:57:30 +02:00
sfan5
39fd9b93c3 Introduce proper error handling for file streams 2024-05-14 18:33:08 +02:00
sfan5
72eeb9fecb Refactor profiler and related classes 2024-04-20 13:03:42 +02:00
sfan5
d5d6e36ae0
Create CACHEDIR.TAG in path_cache (#14458) 2024-03-15 11:24:08 +01:00
David Heidelberg
225aa107f6 Define strlcpy only on platforms where it's not available
Linux musl-libc and recent glibc > 2.38 have it.

Signed-off-by: David Heidelberg <david@ixit.cz>
2024-01-19 11:53:08 +01:00
sfan5
1ba26d67bd Remove excessive includes from porting.h 2024-01-14 13:17:53 +01:00
sfan5
6f494a968d Move setenv compat code to porting.h 2024-01-14 13:17:53 +01:00
sfan5
93c2aff2cf Clean up OS-specific initialization 2023-12-29 21:52:08 +01:00
superfloh247
16c22477c2
Update porting.h to fix build errors on macOS 14 / Xcode 15 2023-12-16 12:52:07 +01:00
sfan5
bd06466d3a Improve clock_gettime usage
- correctly use value of _POSIX_MONOTONIC_CLOCK
- drop special path for macOS: it supports clock_gettime since macOS 10.12
2023-12-15 10:23:19 +01:00
sfan5
d4123a387c Clean up porting.h a bit 2023-12-15 10:23:19 +01:00
ndren
53c594abe0
Introduce and start using microsecond sleep on Linux (#13445) 2023-07-22 17:19:49 +02:00
sfan5
15445a0fbe Raise and clean up _WIN32_WINNT constant 2023-05-11 22:51:01 +02:00
sfan5
87d509e462
Implement --debugger option to improve UX when debugging crashes (#13157) 2023-01-23 00:19:30 +01:00
Lars Müller
b5eda416ce
Slap u64 on everything time-y (#10984) 2021-02-24 12:05:17 +01:00
rubenwardy
664f5ce960
Add open user data button to main menu (#10579) 2020-12-19 13:27:15 +00:00
David CARLIER
cf5547227d
Complete Haiku platform support. (#10311)
Fixing linkage/libraries missing issue.
Implements missing platform specifics.
2020-08-23 15:39:32 +02:00
rubenwardy
a9c3a42323
Add core.open_url() to main menu API (#8592) 2020-05-17 19:09:10 +01:00
nOOb3167
9537cfd3f8 Add a MSVC / Windows compatible snprintf function (#7353)
Use sizeof where applicable for mt_snprintf
2018-07-22 21:56:06 +02:00
Loïc Blot
ae9b5e0098 Modernize code: very last fixes (#6290)
Last modernization fixes
2017-08-20 19:37:29 +02:00
Loïc Blot
7528986e44 Code modernization: src/p*, src/q*, src/r*, src/s* (partial) (#6282)
* Code modernization: src/p*, src/q*, src/r*, src/s* (partial)

* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* C++ STL header style
* Spelling: vertice -> vertex
2017-08-19 14:25:35 +02:00
Loïc Blot
921151d97a C++ modernize: Pragma once (#6264)
* Migrate cpp headers to pragma once
2017-08-17 22:19:39 +02:00
Loïc Blot
b3a36f7378 Isolate irrlicht references and use a singleton (#6041)
* Add Device3D class which will contain IrrlichtDevice interface

move getSupportedVideoDrivers to Device3D

Add Device3D singleton & use it in various places

Rename Device3D to Rendering engine & add helper functions to various device pointers

More singleton work

RenderingEngine owns draw_load_screen

move draw functions to RenderingEngine

Reduce IrrlichtDevice exposure and guienvironment

RenderingEngine: Expose get_timer_time() to remove device from guiEngine

Make irrlichtdevice & scene manager less exposed

* Code style fixes

* Move porting::getVideoDriverName, getVideoDriverFriendlyName, getDisplayDensity, getDisplaySize to RenderingEngine

Fix XORG_USED macro -> RenderingEngine + create_engine_device from RenderingEngine constructor directly

* enum paralax => enum parallax
2017-06-26 20:11:17 +02:00
ShadowNinja
6c5e5e2023 Remove threads.h and replace its definitions with their C++11 equivalents (#5957)
This also changes threadProc's signature, since C++11 supports arbitrary
thread function signatures.
2017-06-11 09:43:05 +02:00
ShadowNinja
b662a4577d Clean up getTime helpers
This increases size of the getTime return values to 64 bits.
It also removes the TimeGetter classes since the getTime functions
are now very precise.
2017-04-28 14:43:18 -04:00
adrido
676951d90d Windows: Skip cmd for release builds (#5416) 2017-04-07 07:14:39 +02:00
adrido
cc1ff26c3f Windows: Set window icon (#5486) 2017-03-30 20:28:37 +02:00
est31
f092dac979 Also support X11 icon for minetest copies installed via make install (#4407)
Fixes #4323.
2016-08-20 21:26:44 +02:00
est31
5d4d3f8366 Finally set a window icon on X11
Since the creation of minetest, it had no window icon on X11.
Now we have one.

The misc/minetest-xorg-icon-128.png file is a rendering of the
misc/minetest.svg file with inkscape, created with something like:

inkscape -z -e misc/minetest-xorg-icon-128.png -w 128 -h 128 misc/minetest.svg
2016-07-05 17:02:06 +02:00
Rogier-5
1dfd977ec4 Fix & make linux conditionals uniform (#4278)
The source used a hodge-podge of different combinations of different
macros to check for linux: 'linux', '__linux', '__linux__'.

As '__linux__' is standard (Posix), and the others are not, the source
now uniformly uses __linux__. If either linux or __linux are defined,
it is made sure that __linux__ is defined as well.
2016-07-04 21:00:57 +02:00
Pavel Puchkin
83583aa2d5 Fix OSX building issue caused by ad884f2 2016-01-29 10:54:50 -05:00
Auke Kok
4ac1e9bccb Clocksource: use a better clock if available.
clock_gettime() is a far better clock than gettimeofday().

Even better than clock_gettime() is that you can select either
CLOCK_MONOTONIC, or even CLOCK_MONOTONIC_RAW. These clocks offer
high precision time. And the _RAW variant will never roll back
due to NTP drift or daylight savings, or otherwise.

I've adjusted this code to select the right clock method auto-
matically based on what's available in the OS. This means that
if you're running a very old linux version, MacOS or other,
you will automatically get the best clocksource available.

I've tested all Linux clocksources by selectively compiling and
running a 10k+ timer test suite. In all cases I confirmed that
the 3 POSIX Linux clocksources worked properly, and were
selected properly.

I've modified the OS X compile path to use the high-res clock
source for all time functions, but I can't confirm it works or
that it compiles.

As for WIN32, I confirmed that the used clocksource is indeed
a Monotonic clocksource, so good news: that code section appears
to be exactly what it should be.
2016-01-29 00:58:08 -05:00
ShadowNinja
ea2964f5a1 Add seperate cache path
This is set to the XDG cache path where possible.
It's set to the app's cache path on Android.
2015-12-07 13:51:41 -05:00
est31
ad5ac39d8d Add LuaSecureRandom 2015-11-08 15:57:15 -05:00
ShadowNinja
645e208673 Use CUSTOM_LOCALEDIR if specified 2015-09-06 11:21:26 +02:00
Pavel Puchkin
588f0c1fb0 Fix building on OSX, broken since "Clean up threading"
Commit

e4bff8be94c0db4f94e63ad448d0eeb869ccdbbd - Clean up threading

by @ShadowNinja has broken the OSX build.

Including things inside a namespace isn't good.

Also fixes #3124.
2015-09-06 05:34:02 +02:00
ShadowNinja
e4bff8be94 Clean up threading
* Rename everything.
    * Strip J prefix.
    * Change UpperCamelCase functions to lowerCamelCase.
  * Remove global (!) semaphore count mutex on OSX.
  * Remove semaphore count getter (unused, unsafe, depended on internal
    API functions on Windows, and used a hack on OSX).
  * Add `Atomic<type>`.
  * Make `Thread` handle thread names.
  * Add support for C++11 multi-threading.
  * Combine pthread and win32 sources.
  * Remove `ThreadStarted` (unused, unneeded).
  * Move some includes from the headers to the sources.
  * Move all of `Event` into its header (allows inlining with no new includes).
  * Make `Event` use `Semaphore` (except on Windows).
  * Move some porting functions into `Thread`.
  * Integrate logging with `Thread`.
  * Add threading test.
2015-08-23 22:04:06 -04:00
Loic Blot
e6f0178e83 Little coding style fix on porting.h 2015-07-10 19:04:05 +02:00
kwolekr
386d695330 Porting: Refactor initalizePaths()
Add support for Solaris and HP-UX
Search additional potential procfs locations for current executable
2015-04-19 16:52:58 -04:00
Craig Robbins
2430b2e998 Add Lua function get_video_modes() for main menu
Also updates and uses porting::getSupportedVideoModes()
2015-03-28 13:26:03 +10:00
Markus Koschany
cfca5f99e6 Fix FTBFS on GNU/Hurd platform
Minetest fails to build on GNU/Hurd due to a name clash with OSX/Apple,
both are defining the __MACH__ keyword. This commit fixes the issue.
2015-02-11 15:59:58 +10:00
kwolekr
43f102271d Create minidump on fatal Win32 exceptions
Remove software exception translator function, simplifying exception handler
macros.  FatalSystemExceptions are left unhandled.
2015-02-02 01:39:17 -05:00
kwolekr
976d0b2caa Reorganize supported video driver query mechanisms 2015-01-18 13:24:25 -05:00
kwolekr
8661b3587b Set WM_CLASS window hint for Xorg 2014-12-15 13:52:10 -05:00
ShadowNinja
c4e393deea Simplify loading of Android version of menu 2014-11-20 15:37:20 -05:00
sapier
1cc40c0a7c Add support for Android 2.3+
There have been plenty of ppl involved in creating this version.
I don't wanna mention names as I'm sure I'd forget someone so I
just tell where help has been done:
- The partial android versions done by various ppl
- Testing on different android devices
- reviewing code (especially the in core changes)
- testing controls
- reviewing texts

A big thank you to everyone helping this to be completed!
2014-06-29 18:17:56 +02:00
Martin Doege
c410e9182d OS X compatibility fixes 2014-06-29 17:27:33 +02:00
sapier
003634e049 Add support for exiting formspecs by doubleclicking outside 2014-06-12 23:15:05 +02:00