Commit Graph

80 Commits

Author SHA1 Message Date
Helge Mathee
f99750ec7a Json: Move precision / writing numbers to policy to allow for customizatoin
#rb halfdan.ingvarson
#jira na

[CL 16551515 by Helge Mathee in ue5-main branch]
2021-06-03 15:31:30 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
sebastian nordgren
1b2a1ceacb Added some includes to fix non-unity compile issues.
#jira UE-107391
#rb trivial

#ROBOMERGE-SOURCE: CL 15311900 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15311992 by sebastian nordgren in ue5-main branch]
2021-02-04 05:47:39 -04:00
sebastian nordgren
6fe795953f Initial submit of the new JSON-based editor config system. This consists of two layers - the JSON config system enables access to JSON objects through the use of JSON paths of the form $.Object.Array[3].Member. The editor config system applies this system to UObjects and UStructs.
#rb chris.gagnon
#jira UETOOL-2769

[CL 15208207 by sebastian nordgren in ue5-main branch]
2021-01-26 11:48:50 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Andrew Davidson
10bca5261b Double math ambiguity Engine fixes
#rb jeanfrancois.dube, trivial

[CL 14974758 by Andrew Davidson in ue5-main branch]
2021-01-04 07:59:22 -04:00
Marc Audy
68150e0be7 Merge UE5/Release-Engine-Staging to UE5/Main @ 14611496
This represents UE4/Main @ 14594913

[CL 14612291 by Marc Audy in ue5-main branch]
2020-10-29 13:38:15 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
Marc Audy
50a3d7d368 Merge Release-Engine-Staging to Main @ CL# 14467590
This represents UE4/Main @ 14432125 + some cherrypick fixes

[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
federico oro
431995c895 prevent crash in TJsonWriter by checking if WriteObjectStart can be executed
#rb Cory.Kolek

#ROBOMERGE-SOURCE: CL 12508127 via CL 12508133 via CL 12508137 via CL 12508141
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12508147 by federico oro in Main branch]
2020-04-01 12:51:29 -04:00
michel champoux
93388a3b77 Fixed indentation on comment block.
[FYI] [at]Rob.Cannaday


#ROBOMERGE-SOURCE: CL 11261731 via CL 11271810 via CL 11272686
#ROBOMERGE-BOT: (v647-11244347)

[CL 11272835 by michel champoux in Main branch]
2020-02-05 19:12:27 -05:00
michel champoux
5dde356362 Added the possibility to serialize FString - float maps using the Json Serializer Macros.
[FYI] [at]Mic.Rooney, [at]Simon.Berube
#rb [at]Mic.Rooney, [at]Simon.Berube, [at]Rob.Cannaday


#ROBOMERGE-SOURCE: CL 11261262 via CL 11271792 via CL 11272683
#ROBOMERGE-BOT: (v647-11244347)

[CL 11272811 by michel champoux in Main branch]
2020-02-05 19:12:20 -05:00
fernando pereira
dd59911be9 Adds 2 new Json Serializer macros.
JSON_SERIALIZE_DATETIME_MILLISECONDS_TIMESTAMP converts to and from a FDateTime to a value in milliseconds (based on the Unix time).

JSON_SERIALIZE_ENUM converts to and from an Enum using LexToString and LexFromString functions for that specific enum.



#ROBOMERGE-SOURCE: CL 11195132 via CL 11195186 via CL 11195197
#ROBOMERGE-BOT: (v640-11091645)

[CL 11195388 by fernando pereira in Main branch]
2020-01-31 10:25:30 -05:00
james hopkin
6673c68622 #json Added FJsonValueString::IsEmpty, to allow for avoiding copies
#ROBOMERGE-SOURCE: CL 11153367 via CL 11153368 via CL 11153369
#ROBOMERGE-BOT: (v640-11091645)

[CL 11153370 by james hopkin in Main branch]
2020-01-29 06:13:57 -05:00
michael noland
2d6847d01a Core: Fixes for various unsafe implicit type conversion warnings in the Core module (WIP; some files still suppress the warning)
- Ptrdiff -> int32
- Float/int confusion and double/float
- size_t stuff; various changes to the algorithms to use a deduced IndexType template argument and/or decltype to use the appropriate size for indicies and counts
- Fixed GetNum(FString) incorrectly returning SIZE_T instead of int32, and GetNum(container) now returns whatever container.Num() does (so usually int32)
#jira UE-86949
#rb marc.audy, steve.robb


#ROBOMERGE-OWNER: michael.noland
#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 11050799 via CL 11050828 via CL 11050837
#ROBOMERGE-BOT: (v637-11041722)

[CL 11051763 by michael noland in Main branch]
2020-01-17 13:49:41 -05:00
paul moore
fc392d6a9e - MMS server backfill implementation for battlelab/creative.
[at]jessica.hitchcock
[at]brad.johnston
[at]evan.kinney
[at]mitchell.fisher


#ROBOMERGE-OWNER: paul.moore
#ROBOMERGE-AUTHOR: paul.moore
#ROBOMERGE-SOURCE: CL 11034475 via CL 11035183 via CL 11035320 via CL 11035324
#ROBOMERGE-BOT: (v633-10983880)

[CL 11035327 by paul moore in Main branch]
2020-01-16 16:37:36 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00
Ben Marsh
bbe9fecb2f Copying //UE4/Dev-Build to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 9053338 by Ben Marsh in Main branch]
2019-09-24 16:13:51 -04:00
jamie dale
a287480c36 Allow FString instances containing code units outside of the basic multilingual plane to be losslessly processed regardless of whether TCHAR is 2 or 4 bytes.
Most UE4 platforms use a 2-byte TCHAR, however some still use a 4-byte TCHAR. The platforms that use a 4-byte TCHAR expect their string data to be UTF-32, however there are parts of UE4 that serialize FString data as a series of UCS2CHAR, simply narrowing or widening each TCHAR in turn. This can result in invalid or corrupted UTF-32 strings (either UTF-32 strings containing UTF-16 surrogates, or UTF-32 code points that have been truncated to 2-bytes), which leads to either odd behavior or crashes.

This change updates the parts of UE4 that process FString data as a series of 2-byte values to do so on the correct UTF-16 interpretation of the data, converting to/from UTF-32 as required on platforms that use a 4-byte TCHAR. This conversion is a no-op on platforms that use a 2-byte TCHAR as the string is already assumed to be valid UTF-16 data. It should also be noted that while FString may contain UTF-16 code units on platforms using a 2-byte TCHAR, this change doesn't do anything to make FString represent a Unicode string on those platforms (ie, a string that understands and works on code points), but is rather just a bag of code units.

Two new variable-width string converters have be added to facilitate the conversion (modelled after the TCHAR<->UTF-8 converters), TUTF16ToUTF32_Convert and TUTF32ToUTF16_Convert. These are used for both TCHAR<->UTF16CHAR conversion when needed, but also for TCHAR<->wchar_t conversion on platforms that use char16_t for TCHAR along with having a 4-byte wchar_t (as defined by the new PLATFORM_WCHAR_IS_4_BYTES option).

These conversion routines are accessed either via the conversion macros (TCHAR_TO_UTF16, UTF16_TO_TCHAR, TCHAR_TO_WCHAR, and WCHAR_TO_TCHAR), or by using a conversion struct (FTCHARToUTF16, FUTF16ToTCHAR, FTCHARToWChar, and FWCharToTCHAR), which is the same pattern as the existing TCHAR<->UTF-8 conversion. Both the macros and the structs are defined as no-ops when the conversion isn't needed, but always exist so that code can be written in a portable way.

Very little code actually needed updating to use UTF-16, as the vast majority makes no assumptions about the size of TCHAR, nor how FString should be serialized. The main places were the FString archive serialization and the JSON reader/writer, along with some minor fixes to the UTF-8 conversion logic for platforms using a 4-byte TCHAR.

Tests have been added to verify that an FString representing a UTF-32 code point can be losslessly converted to/from UTF-8 and UTF-16, and serialized to/from an archive.

#jira
#rb Steve.Robb, Josh.Adams


#ROBOMERGE-SOURCE: CL 8676728 via CL 8687863
#ROBOMERGE-BOT: (v421-8677696)

[CL 8688048 by jamie dale in Main branch]
2019-09-16 05:44:11 -04:00