summaryrefslogtreecommitdiff
path: root/core/io
AgeCommit message (Collapse)Author
2020-09-19Fix crash when opening a ZIP data packHugo Locurcio
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2020-09-07Merge pull request #38308 from bruvzg/sad_security_circusRémi Verschelde
Adds PCK encryption support (using script encryption key for export).
2020-09-07Merge pull request #38944 from Wavesonics/http-gzipFabio Alessandrelli
HttpRequest now handles gzipping response bodies
2020-09-05Adds PCK encryption support (using script encryption key for export).bruvzg
Change default encryption mode from ECB to CFB.
2020-09-03[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg
2020-09-03Ensure header guards enclose entire header.Marcel Admiraal
2020-09-03Merge pull request #41460 from Calinou/improve-resource-load-fail-messageRémi Verschelde
Improve the resource loading error message to mention the need to import
2020-09-03Merge pull request #40400 from Arivval/load-resourcepack-with-offsetRémi Verschelde
Added PCK file loading with offset feature
2020-09-02added load resource pack with offset featureYilin Ma
updated variables to use size_t removed line break to make code style more consistent added conditional check to return an error if offset field is used when loading a ZIP package fixed typo formatted file added commit regarding self contained exe files handled error loging for load zip file with offset spelling tweak updated conditional statement for magic check udpated error message when load Zip file with offset is called fix CI Trying to fix CI fix CI done Added error message for loading self-contained exe with offset. Updated documentation. Fix indent final fix indent Updated documentation. fix indents Updated doc based on suggestion Final fix fixed format
2020-09-02HTTPRequest now accepts gzipAdam Brown
Added request_raw to HttpRequest Added decompress_dynamic to Compression class Added decompress_dynamic to BytePoolArray Merge doc fix revert
2020-08-31[funexpected] clear missed remaps on deinitialization, fixes ↵Yakov Borevich
godotengine/godot#34221
2020-08-22Improve the resource loading error message to mention the need to importHugo Locurcio
This is a common pitfall when setting up projects in a headless environment.
2020-08-19Updated Translation architecture to have TranslationPO, did some commit ↵SkyJJ
fixes and updated class Reference.
2020-08-19Added plurals and context support to TranslationSkyJJ
2020-07-27Make all String float conversion methods be 64-bitAaron Franke
2020-07-22issue-40396 - Added missing error strings to JSON parsing when array or ↵Adam Bates
object is never closed.
2020-07-21Fix spelling & grammar in comments, docs, and messagesAndy Maloney
2020-07-14Merge pull request #40374 from Faless/udp/server_abstractionRémi Verschelde
UDPServer uses single socket, abstract clients.
2020-07-14UDPServer handles PacketPeerUDP-client associationFabio Alessandrelli
UDPServer now uses a single socket which is shared with the PacketPeerUDP it creates and has a new `poll` function to read incoming packets on that socket and delivers them to the appropriate peer. PacketPeerUDP created this way never reads from the socket, but are allowed to write on it using sendto. This is needed because Windows (unlike Linux/BSD) does not support packet routing when multiple sockets are bound on the same address/port.
2020-07-14PO loader: Fix unclosed files and error messagesRémi Verschelde
Trying to get `f->get_path()` after deleting `f` was not super clever :) Fixes #40324.
2020-07-10Add override keywords.Marcel Admiraal
2020-07-08Enable file logging by default on desktops to help with troubleshootingHugo Locurcio
- Use the `.log` file extension (recognized on Windows out of the box) to better hint that generated files are logs. Some editors provide dedicated syntax highlighting for those files. - Use an underscore to separate the basename from the date and the date from the time in log filenames. This makes the filename easier to read. - Keep only 5 log files by default to decrease disk usage in case messages are spammed.
2020-07-03Remove String::find_last (same as rfind)Stijn Hinlopen
2020-06-19Ensure FileAccessBuffered structs are properly initializedAndy Maloney
2020-06-06Fix editor crash when mbedtls is disabled.Fabio Alessandrelli
2020-05-19Style: Remove unnecessary semicolons from `core`Rémi Verschelde
Semicolons are not necessary after function definitions or control flow blocks, and having some code use them makes things inconsistent (and occasionally can mess up `clang-format`'s formatting). Removing them is tedious work though, I had to do this manually (regex + manual review) as I couldn't find a tool for that. All other code folders would need to get the same treatment.
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-14Enforce use of bool literals instead of integersRémi Verschelde
Using clang-tidy's `modernize-use-bool-literals`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2020-05-14Modernize remaining uses of 0/NULL instead of nullptr (C++11)Rémi Verschelde
Using clang-tidy's `modernize-use-nullptr`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2020-05-14Port member initialization from constructor to declaration (C++11)Rémi Verschelde
Using `clang-tidy`'s `modernize-use-default-member-init` check and manual review of the changes, and some extra manual changes that `clang-tidy` failed to do. Also went manually through all of `core` to find occurrences that `clang-tidy` couldn't handle, especially all initializations done in a constructor without using initializer lists.
2020-05-10New lightmapperJuan Linietsky
-Added LocalVector (needed it) -Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too) -Fixes and changes all around the place -Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10Revert "Renamed plane's d to distance"Rémi Verschelde
This reverts commit ec7b481170dcd6a7b4cf0e6c1221e204ff7945f3. This was wrong, `d` is not a distance but the `d` constant in the parametric equation `ax + by + cz = d` describing the plane.
2020-05-10Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde
Part of #33027.
2020-05-10Style: clang-format: Disable AllowShortIfStatementsOnASingleLineRémi Verschelde
Part of #33027, also discussed in #29848. Enforcing the use of brackets even on single line statements would be preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10Renamed plane's d to distanceMarcus Elg
2020-05-03Remove some C++11 polyfill defines that are no longer neededHugo Locurcio
2020-04-20Exposed RenderingDevice to script APIJuan Linietsky
Also added an easier way to load native GLSL shaders. Extras: Had to fix no-cache for subresources in resource loader, it was not properly working, making shaders not properly reload. Note: The precommit hooks are broken because they don't seem to support enums from one class being used in another. Feel free to fix this after merging this PR.
2020-04-20Revert "Made possible to specify where to dump the contents when loading a ↵Rémi Verschelde
".pck" file" This reverts commit 3c261e0dfa19d9c661ad6ca908a3b8ccee050016. This was not so useful as is due to the way dependency paths are stored in scenes and resources.
2020-04-16Made possible to specify where to dump the contents when loading a ".pck" fileMichael Alexsander
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-30SCons: Format buildsystem files with psf/blackRémi Verschelde
Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
2020-03-25Style: Harmonize header guards to style guide [Core]Rémi Verschelde
2020-03-21Fix potential divisions by 0 reported by MSVCRémi Verschelde
The `TextEdit` one was indeed a potential bug. The `PCKPacker` one seems to be a false positive, it's already in a `for` loop that depends on `files.size()`.
2020-03-20i18n: Fix parsing of multiple escapes before quotesThakee Nathees
See https://github.com/godotengine/godot/pull/37114#issuecomment-601463765
2020-03-20i18n: Add support for translating the class referenceRémi Verschelde
- Parse `.po` files from `doc/translations/*.po` like already done with `editor/translations/*.po`. - Add logic to register a doc translation mapping in `TranslationServer` and `EditorSettings`. - Add `DTR()` to lookup the doc translation mapping (similar to `TTR()`). Strings are automatically dedented and stripped of whitespace to ensure that they would match the translation catalog. - Use `DTR()` to translate relevant strings in `EditorHelp`, `EditorInspector`, `CreateDialog`, `ConnectionsDialog`. - Small simplification to `TranslationLoaderPO`, the path argument was not really meaningful.
2020-03-17Style: Set clang-format Standard to Cpp11Rémi Verschelde
For us, it practically only changes the fact that `A<A<int>>` is now used instead of the C++03 compatible `A<A<int> >`. Note: clang-format 10+ changed the `Standard` arguments to fully specified `c++11`, `c++14`, etc. versions, but we can't use `c++17` now if we want to preserve compatibility with clang-format 8 and 9. `Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-13Merge pull request #36599 from AndreaCatania/gen_rpc_data_exportRémi Verschelde
Generates the rpc and rset info for exported GDScript.
2020-03-08Refactor ScriptDebugger.Fabio Alessandrelli
EngineDebugger is the new interface to access the debugger. It tries to be as agnostic as possible on the data that various subsystems can expose. It allows 2 types of interactions: - Profilers: A subsystem can register a profiler, assigning it a unique name. That name can be used to activate the profiler or add data to it. The registered profiler can be composed of up to 3 functions: - Toggle: called when the profiler is activated/deactivated. - Add: called whenever data is added to the debugger (via `EngineDebugger::profiler_add_frame_data`) - Tick: called every frame (during idle), receives frame times. - Captures: (Only relevant in remote debugger for now) A subsystem can register a capture, assigning it a unique name. When receiving a message, the remote debugger will check if it starts with `[prefix]:` and call the associated capture with name `prefix`. Port MultiplayerAPI, Servers, Scripts, Visual, Performance to the new profiler system. Port SceneDebugger and RemoteDebugger to the new capture system. The LocalDebugger also uses the new profiler system for scripts profiling.