You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Copying //UE4/Release-Staging-4.20 to //UE4/Dev-Main (Source: //UE4/Release-4.20 [at] 4119625) ============================ MAJOR FEATURES & CHANGES ============================ Change 4119625 by Thomas.Sarkanen Prevented Blueprint notifies from destroying the animation preview actor We now use a custom actor class in the preview scene. Also prevented snim instnace class from being altered from Blueprint. #jira UE-55335 - Modifying animation preview actors from notifies can crash the engine Change 4119481 by Cosmin.Sulea UE-58371 - Various actions utilizing Cook by the Book for certain platforms crash the editor #jira UE-58371 Change 4119455 by Cosmin.Sulea UE-59711 - TVOS/iOS fails to build from Windows with numerous errors 'no such file or directory' (reviewed) #jira UE-59711 Change 4119195 by Ryan.Gerleve Fixing shootergame leaderboards to increment properly. This fixes rows not incrementing properly. #Jira UE-58999 #AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 of change#4085065 by Jake.Leonard on 2018/05/21 20:10:53. Change 4119192 by Ryan.Gerleve Fixing the SteamAuth interface from not shutting off if the packet handlers do not exist. #Jira UE-58697 #AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 of change#4072153 by Jake.Leonard on 2018/05/14 18:44:30. Change 4119191 by Ryan.Gerleve SetDedicatedServer before login to fix bad functional usage. #Jira UE-58310 #AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 of change#4059028 by Jake.Leonard on 2018/05/08 18:19:10. Change 4119104 by Shaun.Kime Syncing with fixing in Dev-Niagara up to CL 4118934 Making it so that you can only AddParameters in graphs where it makes sense to do so. Promoting variables also follows the same logic. #jira UE-58070 #tests made dynamic input, function, and module graphs and made sure that each one was only capable of creating the types that were proper Fix for community issue where you could connect an input and output node and encounter a check that the warnings variable array was no longer the same size as the variables array. #jira UE-60076 #tests auto-tests pass as well as jira use case Houdini - Niagara: Added a version to FNiagaraDataInterfaceParametersCS_HoudiniCSV to avoid further issue when deserializing them. Fixed bug causing no points to spawn when all points in a file spawned at the same time value. Removed unneeded tests/restriction when calling functions requiring time value on file without time values. When no time value is in the file, it is cosidered to always be 0. Fixed differences between GPU/CPU code. Fixed special attributes column for Vectors in the CSV file not properly named after being expanded. Houdini - Niagara: Moved the logic of GetPointIDsToSpawnAtTime to HoudiniCSV so the function can be called from blueprints. Renamed the MinIndex/MaxIndex parameters on it to MinId/MaxID. Multiple fixes to the spline component, which hasn't received attention in a long time. It is only supported on CPU VM. #tests new auto-test now passes #jira UE-60111 System Sim for Update On Spawn #jira UE-59518 Fix for crash where dynamic inputs didn't have a proper parameter map input value. #tests new auto-test added #jira UE-50994 Houdini-Niagara: Updated the uplugin file. Change 4119056 by Nick.Shin #jira UE-59573 HTML5 foliage is being scaled massively Change 4119055 by Nick.Shin #jira UE-58440 HTML package crashes when F5 key is pressed Change 4118965 by Joe.Conley #jira UE-59755 "Magic Leap: Project setting to set vulkan or ES2 needs to be removed" - Removing "EditAnywhere" from ULuminRuntimeSettings::bUseVulkan (and category because it errors if you have a category on something that is not EditAnywhere) - Defaulting [/Script/LuminRuntimeSettings.LuminRuntimeSettings] bUseVulkan to true Tested that bUseVulkan is true in a new project, and that the setting is now hidden from Project Settings > Magic Leap > Build Change 4118929 by Wyeth.Johnson Niagara Content Examples Friction and restitution examples #jira UE-60030 Change 4118832 by Fred.Kimberley Mirror CL 4070790 from Dev-Framework fix crash in watch window when blueprints that are being watched get deleted. Add support to the watch window for renaming assets that are being watched. Fix a bug that made the non-instanced watches show up if the watch window was opened while execution was paused at a breakpoint. #jira UE-58974, UE-58977 Change 4118826 by Brandon.Schaefer Use setlocale to be portable for all locales #jira UE-59922 Change 4118817 by Frank.Fella Niagara - Reset cached dependency data when the emitter view models are refreshed in the system. Fixes incorrect dependencies when applying changes from parent emitters in systems. #jira UE-60005 Change 4118785 by Wyeth.Johnson Niagara Content Examples Simple collision example (and collision queries dependencies) #jira UE-60030 Change 4118775 by Lauren.Ridge Fix for undo spam when changing colors in the gradient editor #jira UE-57194 Change 4118724 by Frank.Fella Niagara - Fix issues with editing burst keys through the timeline context menu. #jira UE-60133 Change 4118490 by Frank.Fella Niagara - Prevent parameter store change events with uninitialized data. #jira UE-60122 Change 4118383 by Frank.Fella Niagara - Prevent a crash when the user sets the loop duration of their emitter to be negative. #jira UE-60118 Change 4118297 by Dan.Oconnor Unhide debug filter for level blueprints - it is useful when a user wants to filter based on the world #jira UE-59915 Change 4118288 by Ben.Marsh Force the Visual Studio interop library to be included in the installed build. This isn't technically necessary (it has EmbedInteropTypes=true, so gets compiled into the executable), but QA sometimes attempt to rebuild it in-place. #jira UE-60048 Change 4118271 by Max.Chen Movie Scene Capture: Fix crash switching capture protocols. #jira UE-60113 Change 4118185 by Arne.Schober RL - Fix circlebreaking code in the resorting of force delete #jira UE-60083 Change 4118048 by Ben.Marsh Fix runtime dependencies referenced by precompiled modules for monolithic target platforms not being included in the receipt. #jira UE-59721 Change 4118015 by Wyeth.Johnson Niagara Content Examples Solver position management, event generators, event receivers, ribbon even receiver. #jira UE-60030 Change 4117936 by Lauren.Ridge Can attempt to enter simulate no matter what the last play session is. Using Alt+S while using any PIE method other than Play in Current Viewport will silently fail; Alt+S using Play In Current Viewport will transition to simulate. #jira UE-60075 Change 4117883 by Andrew.Rodham Sequencer: Fixed crash caused by re-allocation of the same named camera cuts track #jira UE-47661 Change 4117876 by Mitchell.Wilson Initial check in of combined PhotorealisticCharacter and DigitalHuman samples. #jira UE-60097 Change 4117819 by Lina.Halper Fix issue where master bone map does not exists when master pose component is serialized - allow force update master pose component #jira: UE-59634 Change 4117800 by Lina.Halper Prevent Master pose component chain #jira:UE-59957 Change 4117750 by Martin.Wilson Keep source raw animation data in sync with raw when cropping. #jira UE-58675 Change 4117717 by Frank.Fella Niagara - Fix an issue where deleting a module and undoing would not restore input values for rapid iteration parameters. #jira UE-60080 Change 4117702 by Ben.Marsh Add a static assert that Visual Studio 15.6 must be installed to build the engine. Previous versions had various issues, including bad code generation causing crashes in the editor, UTF-8 BOMs being inserted into source files, etc... #jira Change 4117516 by Dmitriy.Dyomin Fixed: Crash when performing an undo after generating LOD of a level #jira UE-58293 Change 4117318 by Simon.Therriault D3D12Viewport - Fix for D3D12 Invalid Error message #jira UE-60091 Change 4117293 by Dan.Oconnor Add warning to detect default value changes when assets were saved in earlier versions of the editor, which may have had bad default value information on some call function nodes #jira UE-58298 Change 4116709 by Marc.Audy Fix bitpacking regression in FBodyInstance #jira Change 4116693 by Wyeth.Johnson ContentExamples: Dynamic beams with variable start points, end points, tangents in local or worldspace. #jira UE-60030 Change 4116691 by Frank.Fella Niagara - Prevent multiple save prompt dialogs on shut down when you have script or emitter editors open with unsaved changes and you decide not to save them. #jira UE-60068 Change 4116648 by Michael.Trepka Updated minumum macOS version required to run the editor to 10.13.5 #jira none Change 4116639 by mason.seay Updated Sequence to be 60fps #jira UE-29618 Change 4116634 by Frank.Fella Niagara - Prevent missing dependencies from loading all niagara script assets. #jira UE-60038 Change 4116629 by Frank.Fella Niagara - Prevent an assert when undoing dependency fixes in the stack. #jira UE-60039 Change 4116626 by Frank.Fella Niagara - Fix a crash caused by delegates not being cleaned up properly in the emitter view model. #jira UE-60063 Change 4116618 by Max.Chen Movie Scene Capture: Fix to use automated level sequence capture ui name so that it's the same as the dialog settings. #jira UE-59997 Change 4116522 by Wyeth.Johnson ContentExamples: Simple sprite emitter, simple mesh emitter, and deleted the temp particle in the content examples stub folder. #jira UE-60030 Change 4116479 by Francis.Hurteau fixed compilation by commenting static assert in AddReferencedObject #jira UE-60058 Change 4116407 by Uriel.Doyon Fixed texture ending up in the unkown ref heuristic when changing material quality levels. #jira UE-60060 Change 4116340 by Jamie.Dale Avoid Memcmp if size is zero #jira none Change4116132by Francis.Hurteau fixed a crash when GC triggered while Sequencer FBX import window is opened (i.e. Autosave) added missing static asserts and fixed resulting compilation error #jira UE-60049 Change 4116036 by Wyeth.Johnson Rollback //UE4/Release-4.20/Samples/ContentExamples/ContentExamples.uproject to revision 2 #jira UE-60030 Change 4116011 by Lina.Halper We set default setting to tick on init - as it's more user friendly option #jira: UE-56303 Change 4115980 by Michael.Dupuis #jira none: buildfix linux Change 4115975 by Wyeth.Johnson Beam content example, static beams. Adjust size and distribution of content example map #jira UE-60030 Change 4115900 by Mark.Satterthwaite More build fixes, this time for Debug on iOS. #jira UE-59883 Change 4115740 by Uriel.Doyon Fixed asset thumbnail crash when exiting at the same time the game engine is closing. #jira UE-58271 Change 4115686 by Francis.Hurteau Do not import a camera track if we aren't creating cameras or importing on selected objects #jira UE-59347 Change 4115682 by Marc.Audy Fix crash when Pin has been deleted already Use MoveTemp in a few places with construction of FWatchRows #jira UE-59847 Change 4115673 by Lina.Halper Fix crash when remapping pose asset to new skeleton #jira: UE-59499 Change 4115668 by Uriel.Doyon Re-enabled pix on windows #jira UE-59174 Change 4115540 by Michael.Dupuis #jira UE-59256: When rebuilding procedural foliage allow the foliage to be rebuilt Fixed a scale issue that would give a much lower fistance factor than expected Change 4115468 by Lina.Halper Merging using Fortnite-Main<->Release4.20 Change to ensure to track down the issue better. #jira: UE-58010 Change4115399by Mitchell.Wilson Submitting initial Niagara content examples level and content path. #jira UE-60025 Change 4115375 by Sorin.Gradinaru UE-59066 Intermittent RemoteSessionApp crash #jira UE-59066 #4.30 Memory leak fixed. Change 4115373 by Sorin.Gradinaru UE-55180 Cook on the Fly server quits unexpectedly using Windows UFE to iOS #jira UE-55180 #4.20 rb Jack.Porter Check if the CookOutputDir exists to prevent exception on EnumerateFiles().ToList() Change 4115246 by Benn.Gallagher From Nvidia: Fixes to incremental AABB to better organise the query tree as we were quickly blowing a stack in one of our tests. Test now succeeds with these changes. #jira UE-59191 Change 4115125 by Benn.Gallagher Fixed clothing LOD update receiving empty bone transform array on initialization if a master pose component was used #jira UE-59878 Change 4114593 by Tim.Gautier Enabling Niagara, Niagara Extras, and HoudiniNiagara by default in QAGame #jira UE-29618 Change 4114589 by Ryan.Vance Oculus SI 1.25 #jira UEVR-1143 Change 4114420 by Matt.Kuhlenschmidt Fix UMG anchor prompts being wrong on mac #jira UE-59998 Change 4114351 by Uriel.Doyon Refactor LargeMemoryWriter code so that the DuplicateDataArchive could reuse the large alloc managment. #jira UE-56509 Change 4114271 by Uriel.Doyon Changed virtual path when streaming textures, so that it clears the IO requests on an async task instead of in the renderthread. #jira UE-57614 Change 4114258 by Arne.Schober RL - The uniformbuffer description is cached in multiple levels for shader compilation. Notable Caches are the ShaderDirectoryFileMapping the MMCP File cache and multiple other smaller file caches along the way. Instead of invalidating those caches I made the Uniform buffer layout completely immutable for all Platform varieties. Differences in lauout are triggered via defines as a progammer would have done it writing the code by hand. THe padding has been unified between GLSL and HLSL padding rules and theoretically work for both of them uniformly. #jira UE-58707 Change 4114182 by Max.Chen Sequencer: Expand the clamp range when necessary if the sequencer window expands. This fixes a new bug where the view range would not update because TimeSliderController::SetViewRange now clamps the incoming view range to the clamp range. In one case, tick marks in the display were cached using the view range and weren't getting updated as the window was resizing because the view range remained clamped. #jira UE-59982 Change 4114156 by Mark.Satterthwaite Update for new Xcode metal shader compiler requiring different arguments. Make some slight changes to make some behaviour and error reports clearer. #jira UE-60011 Change 4114143 by mason.seay Resaved asset to remove error #jira UE-29618 Change 4114128 by Chris.Babcock Add Mali G72 device profile for Android #jira UE-60009 #ue4 #android Change 4114070 by Jamie.Dale Fixed crash on shutdown after binding python member function to delegate #jira UE-59949 Change 4114030 by Max.Chen Sequencer: Fix crash with stale section pointer #jira UE-59971 Change 4113978 by Arne.Schober RL - D3d12 issues with resource allocation and de allocation when the RHI is not alive yet. UDN https://udn.unrealengine.com/questions/434516/check-problems-in-shipping.html #jira none Change 4113967 by Arne.Schober RL - The uniformbuffer description is cached in multiple levels for shader compilation. Notable Caches are the ShaderDirectoryFileMapping the MMCP File cache and multiple other smaller file caches along the way. Instead of invalidating those caches I made the Uniform buffer layout completely immutable for all Platform varieties. Differences in lauout are triggered via defines as a progammer would have done it writing the code by hand. THe padding has been unified between GLSL and HLSL padding rules and theoretically work for both of them uniformly. #jira UE-58707 Change 4113957 by Arne.Schober RL - The uniformbuffer description is cached in multiple levels for shader compilation. Notable Caches are the ShaderDirectoryFileMapping the MMCP File cache and multiple other smaller file caches along the way. Instead of invalidating those caches I made the Uniform buffer layout completely immutable for all Platform varieties. Differences in lauout are triggered via defines as a progammer would have done it writing the code by hand. THe padding has been unified between GLSL and HLSL padding rules and theoretically work for both of them uniformly. #jira UE-58707 Change 4113946 by Arne.Schober RL - Fix issue where force delete materials crashes because the creation order gets out of order #jira UE-58480 Change 4113936 by Arne.Schober RL - Fix CPU skin emulation, where the SSE code was unpacking the underlying tangent SNORM data as UNORM #jira UE-58732 Change 4113881 by Shaun.Kime Catching up 4.20 to Dev-Niagara as of CL 4111104 Change 4075849 by Wyeth.Johnson Metadata on location and velocity modules, new DI Change 4076028 by Frank.Fella Niagara - Fix an issue where the list of relevant scripts in the shared script view model could get out of sync when changing properties on an emitter such as interpolated spawning and gpu simulation. This could result in an emitter recompiling forever if it started as GPU and was then switched to CPU and then a force compile was requested since it would include the GPU script when determing the compile status, but it would never compile it. #jira UE-59220 Change 4076925 by Frank.Fella Niagara - Adding and removing pins from an assignment node wasn't correctly invalidating the graph which I broke with my crash fix 4058428 since I thought the refresh call would do that. #jira UE-59249 Change 4076971 by Frank.Fella Niagara - Made few changes to stack issue handling while fixing an issue where the stack error wouldn't change when the compile error changed. + Changed the unique identifier for stack issues to be automatically generated from a hash of the combined stack editor data key and the long description of the error. + Changed the stack issue unique identifier from an FName to an FString to avoid poluting the name table with lots of generated hash strings. + Encapsulated all of the stack issue data to validate the required inputs. #jira UE-59251 Change 4076974 by Frank.Fella Niagara - Minor change missed in last checkin. Change 4076990 by Frank.Fella Niagara - Fix the assignment node so that it uses a "Begin Defaults" node instead of a regular input node when it's hooking up linked defaults. #jira UE-59224 Change 4077392 by jonathan.lindquist Changing pin order Change 4077426 by Wyeth.Johnson transform position DI Change 4077636 by Frank.Fella Niagara - Fix an issue where the stack function input collection wasn't generating errors correctly due to data being cached between refreshes which became stale. #jira UE-59269 Change 4078004 by jonathan.lindquist Submitting progress on a module Change 4078009 by jonathan.lindquist changing a variable name in rotate around point Change 4078043 by Frank.Fella Niagara - Fix the stack function input so that it cleans up properly when removing pins from assignment nodes, also fix undo for the remove operation. #jira UE-59271 Change 4078063 by Shaun.Kime Fixing debug particle data texture usage #tests n/a Change 4079110 by jonathan.lindquist Submitting a cone mask function Change 4079161 by jonathan.lindquist Adding a new cone mask module Change 4079164 by jonathan.lindquist Adding a description to the cone mask function Change 4079166 by jonathan.lindquist Submitting a new cone mask dynamic input Change 4079988 by Yannick.Lange Set persistend guid for if node input pins on creating a new output pin. Change 4080531 by jonathan.lindquist New cone based mask for curl noise contributions. Additional meta data descriptions for other inputs. Change 4080541 by jonathan.lindquist Exposing the cone axis variable Change 4080544 by jonathan.lindquist One more meta data tweak :D Change 4081107 by Shaun.Kime Fixing underlying GPU collision system after Rendering refactored to use the FSceneTexturesUniformParameters instead of individual textures. Note that GPU collision only works with the primary back buffer. We will need more work to support split-screen or PIP. #tests Collsion test GPU now is functional, but we still get a few nondeterministic strays in different directions keeping me from turning it on at the moment Change 4081111 by Shaun.Kime Updating the compile GUID because the previous change adjusted generated code #tests n/a Change 4081231 by Shaun.Kime Allowing several descriptions to be multiline, accessible by Shift + Enter. #tests created descriptions for both module fields and modules themselves that were multi-line. confirmed UI was correct. Change 4081552 by Jonathan.Lindquist Additional tooltips/documentation Change 4081566 by Jonathan.Lindquist Changing split linear color's pin order Change 4081646 by Shaun.Kime Added tooltips to the parameter map get and set nodes that should grealy improve understanding. #tests n/a Change 4082769 by Yannick.Lange Pins and parameters unique name on creation Change 4082792 by Yannick.Lange Fix: Adding a property pin to a Niagara Module Script map node creates a duplicate of that property in the Properties menu #jira UE-58823 Change 4082851 by jonathan.lindquist Ensuring that the latest version of this content is available for Simon Change 4082875 by Yannick.Lange Parameter, source and dest pins of a parameter map node have a subcategories. Only pins with the parameter subcategory will be found by the graph. #jira UE-57692 Change 4083076 by Wyeth.Johnson Gnomon asset for example content Change 4083783 by Frank.Fella Niagara - Fix issues with drag/drop + Don't allow the user to drop a module if the usage flags of the target script aren't supported. + Allow dragging to different scripts event if they are in different graphs, or different emitters. + Transfer rapid iteration paramters correctly when moving modules between scripts. + Fix undo for rapid iteration paramters when undoing a move. #jira UE-59340 #jira UE-59401 Change 4083999 by Bradut.Palas Improved functionality of module dependencies: intercategory module dependencies now work, module order is fixed. #tests none #jira UE-58200 Change 4084002 by Shaun.Kime Validating modules reads and writes. You cannot read/write from particles namespace in system and emitter scripts You cannot write to user or NPC namespaces ever You cannot write to system/emitter namespaces in particle scripts #tests auto-tests pass Change 4084419 by jonathan.lindquist Changing default texture assignments to work with the new project directory. Change 4084595 by jonathan.lindquist Submitting a new material that will generate a 3d sphere on a sprite using world position offset and pixel depth offset. Change 4084603 by Jonathan.Lindquist New thumbnail Change 4084607 by jonathan.lindquist Submitting final variable settings for the skeletal mesh reproduction particle system Change 4084649 by jonathan.lindquist Finalizing sampling mesh code after exploring multiple approaches. Change 4084746 by Frank.Fella Niagara - When creating the render state in the niagara component, also send the dynamic data the same frame since the emitter might not actually tick the next frame. #jira UE-57696 #tests engine tests. Change 4085536 by Yannick.Lange Fix assert attempting to add a Niagara emitter parameter to a system before tracking an emitter. Also passes all graphs to the add button, to avoid any use of Graphs[0] in SNiagaraParameterMapView. #jira UE-58832 Change 4085757 by Yannick.Lange Prevent circular connections when trying to connect pins #jira UE-55541 Change 4086086 by Bradut.Palas Fixing static code analysis issues by moving the RefreshIssues call inside the FunctionCallNode nullcheck #tests none Change 4086155 by jonathan.lindquist Updating meta data etc. Change 4086965 by Olaf.Piesche Fixing uniform buffer alignment and padding to 16 bytes for all vector types; bumping vec2 and vec3 uniforms to vec4, and adding component mask to code chunk for accesses to uniform chunks according to their initial type OpenGL requires this since because adherence to the std140 memory layout is shaky at best when it comes to sub-16-byte vector types Change 4086968 by Olaf.Piesche Making division by 0xFFFFFFFF explicitly unsigned, because OpenGL otherwise assumes it's a signed int, just dividing by -1 Change 4086975 by Frank.Fella Niagara - Renderer update fixes. + Trigger data object changed when adding, removing, and changing the enabled state of renderers so that the simulation updates. + Fix undo for changing the enabled state on renderers. #jira UE-57696 #jira UE-59390 Change 4087008 by Frank.Fella Niagara - When refreshing the sequencer tracks in the emitter/system editor don't set sequencer the time to 0. This fixes an issue where modifying data in the timeline and undo would reset the time to 0 when paused rather than resimulating. #jira UE-59463 Change 4087030 by Shaun.Kime Fixing when you can create certain pin types to prevent invalid types from appearing in the list. #tests autotests pass on PC Change 4087271 by jonathan.lindquist Adding an option to clamp particles.velocity's magnitude. Change 4087279 by Wyeth.Johnson Comments and dependencies Change 4087333 by Wyeth.Johnson Bitmask useage flags on forces to adhere to standards, plus dependencies Change 4087636 by Wyeth.Johnson Age related dependencies on update modules Change 4087702 by Shaun.Kime Getting translation set up for Frank's rapid iteration parameter rework in support for default dynamic inputs #tests n/a Change 4087992 by jonathan.lindquist Adding a limit force module Change 4088872 by Yannick.Lange Fix renaming variables will not work if the user is only changing capitalization. #jira UE-59119 Change 4088891 by Yannick.Lange Fix adding a new attribute makes it hidden in the attribute spreadsheet. Now shows the added attribute when doing a new capture. #jira UE-57167 Change 4089072 by Yannick.Lange Reorder parameter list categories Change 4089164 by jonathan.lindquist Adding a velocity clamp feature and an acceleration clamp Change 4089953 by Bradut.Palas Disabled modules no longer display errors. Also, enabling/disabling modules is now registered with the Undo system Also fixed the GUID generation for all issues, now issues are properly differentiated from each other on refresh. #tests none Change 4090194 by Shaun.Kime Fixing auto tests after acceleration force defaulted to world instead of local #tests all pass Change 4090195 by Shaun.Kime Cleaning up UI for code view #tests n/a Change 4090198 by jonathan.lindquist Setting the fallback vector to 0,0,0 Change 4090430 by jonathan.lindquist Removing a reciprocal operation from the node. Now we use a single divide. Also, I added another length calculation to provide the proper length of the input fallback vector. This is important for cases in which the user specifies that the fallback vector should be 0,0,0 or another unnormalized value. Previously, the fallback vector length always returned 1. Change 4090512 by Shaun.Kime Fix for crash during Jonathan's deletion of the Set node in SolveForcesInVelocity. #tests n/a Change 4090534 by jonathan.lindquist New acceleration limit Change 4090676 by Olaf.Piesche GPU Spawning auto test Change 4090770 by Shaun.Kime Curl noise bug test case Change 4090796 by Olaf.Piesche Added missing abs for GPU sim Change 4091368 by Bradut.Palas Also removing issues from disabled input collections and renderer items #tests none Change 4091417 by Simon.Tovey Making emitter local space a constant embeded directly into emitter and particle scripts. Allows a lot of optimization and exposes the value to emitter scripts properly. Change 4091727 by jonathan.lindquist Exposing delta time as an advanced input and organizing the graph Change 4091788 by Bradut.Palas #jira UE-54678 fIxing issues with refresh of skeletal mesh details #tests none Change 4092040 by Frank.Fella Niagara - Fix some issues with modify, transactions, and change ids which was causing assets to be dirty or modified on load, or were allowing internal operation to be undone. + Move some transactions from public utility functions into private functions called by menu items in the UNiagaraNodeWithDynamicPins. + Prevent a few modify calls in UNiagaraEmitter from marking the package dirty since they're sometimes called as a result of compiling and in the other cases earlier modifies would have already marked the package dirty. + In the system view model, don't create transactions when adding an emitter if the system view model is in emitter asset mode since the user should be able to undo it. + In the system toolkit when opening an emitter asset initialize, clean up, and propagate the rapid iteration parameters before copying the emitter to prevent the change ids from getting out of sync after the compile completes. + In the system toolkit when trying to see if an emitter has changed using the change ids, use the last synced id from the copied emitter instead of the original emitter since duplicating the emitter can change the id, and there's not way to set it externally. #jira UE-59517 #jira UE-59566 Change 4092700 by jonathan.lindquist Removed param groups. We're now using inline bools to enable or disable limits on velocity and acceleration Change 4093032 by Shaun.Kime Fixing display of errors #tests now errors in compilation properly display Change 4093172 by Shaun.Kime Curl noise cpu/gpu test map #tests added last known good Change 4094156 by Damien.Pernuit Fixed crash in the editor when opening a Niagara Emitter/Script containing outdated script functions. Fixed incorrect type cast, FNiagaraFloat instead of FNiagaraInt32. Change 4094515 by Tim.Gautier Enabled Niagara + Niagara Extras in QAGame Change4094674by jonathan.lindquist submitting an example of variable defaults not working as intended Change 4094712 by Damien.Pernuit Niagara - Houdini: Houdini Niagara Data Interface: - Removed the GetCSVFloatValueByString function as String aren't currently supported by Niagara. - Particles in the CSV file can now be updated over time (not just spawned) - Added GetParticlePositionAtTime, GetParticleValueAtTime, GetParticleVectorValueAtTime returning a linearly interpolated value for a given particle at a given time. - Added GetParticleIndexesAtTime for getting the previous/next row indexes and weight to access the values for a given particle at a given time and handle the interpolation of the values. - Added GetCSVVectorValue for accessing a Vector value at a given row/col. Houdini CSV Assets now looks for the following attributes in the CSV "Title" line: - pos for position. - id and # for particle ID. - alive and life for calculating a particles LifeTime. Change 4094932 by Frank.Fella Niagara - Fix a few more issues where asset editors would open with their assets modified. + Fix rapid iteration parameter preparation so that it doesn't modify the parameter store if it doesn't change after syncing with the graphs and propagating from dependencies. This fixes the emitter editor allowing changes to be applied on open. + Refactor the change notification for the script tool kit so that it uses the graph change and property change messages to determine if any changes have been made and can be applied. #jira UE-59517 #tests auto tests Change 4094978 by Damien.Pernuit Niagara - Houdini: Houdini Niagara Data Interface: - Since we can now update particles over time, renamed/modified most of the functions to make a clear distinction between row indexes (row) and particle ids (N) - Replaced GetNumberOfPointsInCSV by GetNumberOfRowsInCSV and GetNumberOfParticlesInCSV - Renamed GetParticleIndexesAtTime to GetRowIndexesForParticleAtTime and GetLastParticleIndexAtTime to GetLastRowIndexAtTime - Fixed some DI Functions that were using floats for input parameter instead of using integers. Change 4095428 by Damien.Pernuit Niagara - Houdini: Houdini Niagara Data Interface: Fixed incorrect behavior of the GetLastRowIndexAtTime and GetParticleIndexesToSpawnAtTime functions due to supporting particle update over time. Houdini CSV Asset: Fixed missing UPropery for SpawnTimes and LifeValues array. Change4096355by Damien.Pernuit Houdini Niagara: Fixed performance warning for UHoudiniCSV::GetParticleLifeAtTime() Change 4096419 by Damien.Pernuit Niagara - Houdini: Houdini Niagara Data Interface: Added GetParticleLifeAtTime for accessing a given particle's life at a given time value. Fixed GetParticleVectorValueAtTime not bound properly. Fixed GetRowIndexesForParticleAtTime returning incorrect values when the time value was past the particle's last update. Change 4096466 by Damien.Pernuit Niagara - Houdini: - Added GetNumberOfColumnsInCSV to the Houdini Data Interface - Added descriptions to the functions exposed by the DI Change 4096528 by Damien.Pernuit Niagara - Houdini: Houdini CSV Asset: - As the DI expects the values to be sorted by time, if it's not the case, the CSV importer will sort them on import. - As the DI spawning functions relies on the particle IDs starting at zero and increment, the CSV importer will fix the particles IDs on import if it's not the case. Change 4096838 by Yannick.Lange Fix focus search box on add parameter menu #jira UE-59502 Change 4097205 by Bradut.Palas Fixes for metadata details in script toolkit (now the apply and compile buttons refresh and sort the metadata collection). The metadata functionality is fixed. Delete, add and modify work just as before, but the sorting isn't applied because refreshing the whole collection is skipped for internal changes. #jira UE-58745 #jira UE-59589 #tests none Change 4097593 by Shaun.Kime Now generating compiler debug info for VM shaders just like the rest of Materials using the r.DumpShaderDebugInfo #tests now properly generate data in a VM folder sibling to other generated debug shader data Change 4097721 by Frank.Fella Niagara - Make the lifetime of stack entries well defined so that we can safely remove delegate bindings and clear out pointers. Change 4097962 by Bradut.Palas Stack issues now update fix delegates on each refresh, even if the fix GUIDs don't change, to account for other possible changes in the graph. Had to introduce unique identifiers for fixes too, now the issue entry is using the same recycle mechanism for fixes that the base stack entry uses for issues. #tests none Change 4098063 by Frank.Fella Niagara - Fix input initialization for drag/drop with a "Set Variables" node. #jira UE-57699 Change 4098192 by Damien.Pernuit Niagara - Houdini: Houdini CSV Asset: When importing the CSV file, the importer creates a list of the row indexes updating each particle. This greatly improves performance when accessing data in large files with a lot of particles updating over time. Change 4098406 by Damien.Pernuit Niagara - Houdini: Houdini Niagara Data Interface: Added helper functions for accessing Color and Velocity values in the CSV file. Houdini CSV Asset: The importer now looks for the Color (Cd, color), Alpha (A, Alpha) and velocity (V) attributes. Change 4099945 by Frank.Fella Niagara - Fix op description tool tip and keyword searches in the graph add menu, fix and standardize tool tip handling for script objects in menus, and add support for keyword searches for user defined scripts to match the built in ops. #jira UE-59402 Change 4100451 by Shaun.Kime Fixing wyeth's torus error, which was caused by us not properly initializing defaults. We now initialize defaults in three waves in spawn scripts. Wave 1 are any straight up constants at the top of the spawn function. Wave 2 is inlined in spawn just before the function that needs them is called. Wave 3 is at the bottom of spawn in a section called HandleMissingDefaultValues. Also updated the error and warning messages to be much clearer text. #jira UE-59723, UE-59762 #tests auto-tests pass Change 4100568 by Shaun.Kime Removing the old compile debug file generation and now unified with the existing shader compiler workflow for the future. If r.DumpShaderDebugInfo=1, make sure that we generate the assembly, ush, and params files in the Saved\ShaderDebugInfo\VM\<SYSTEM_NAME>\<EMITTER_NAME>\<SCRIPT_NAME_AND_USAGE_ID_IF_NONZERO> #jira UE-59767 #tests auto-tests pass Change 4100913 by jonathan.lindquist changing the pin order Change 4100932 by jonathan.lindquist setting the input pin order on a, b and alpha Change 4101546 by jonathan.lindquist Submitting a dynamic input that returns the exec index as an int Change 4101734 by Shaun.Kime Fixing static analysis errors #tests n/a Change 4101736 by Shaun.Kime Creating new last known good for GPU Functional Test auto-test #tests n/a Change 4102305 by Simon.Tovey Fix for VM Crash #codereivew Frank.Fella, Shaun.Kime, Olaf.Piesche Change 4102552 by Yannick.Lange Tooltip variable types #jira UE-59520 Change 4102599 by Yannick.Lange New variables in maps or parameter view will get the name Namespace.NewVariable. This is not an actual fix for UE-59633, but gives the user the incentive to rename variables. #codereveiw Shaun.Kime Change 4102752 by Yannick.Lange Fix auto expanding all the sections for the niagara parameters list view. #jira UE-59121 Change 4102779 by Yannick.Lange Fix auto expanding all the sections for the niagara parameters list view. Fix incorrect comment changelist: 4102752 #jira UE-59121 Change 4103419 by Shaun.Kime Fixing build issues #tests n/a Change 4103522 by Damien.Pernuit Houdini - Niagara: Big renaming pass on the Houdini CSV Assets and Data Interface to follow naming conventions: Replaced the GetCSVXXX functions by GetXXXX (GetCSVPosition is now GetPosition) Always use "row" instead of "line", "Point" instead of "Particle", "PointID" instead of "N" or "ID" etc. Houdini Data Interface: - Added the GetVectorValueEx and GetPointVectorValueAtTimeEx functions that allow the user to decide how the vector conversion from houdini to unreal's coordinate system is handled. - Replaced the GetParticleLifeAtTime function by GetPointLife, that returns the life of a particle at spawn time. - Added the GetPointType function returning the type of a given point. Houdini CSV Asset: - Added the editable SourceTitleRow UProperty. Editing this will trigger a reimport of the source CSV file and might be used to fix/modify column titles in the file. - Added support for "type" attributes. - Removed the unused StringValues buffer and GetCSVStringValues() functions. - Added assetTags so the Houdini CSV asset thumbnails show more infos on the CSV data. - Added the "FindSourceCSV" asset action to browse to the source CSV file. Change 4104008 by Shaun.Kime Missing header in Monolithic builds Fixed indent issues, was using spaces vs tabs #jira UE-59705 Change 4105249 by Simon.Tovey Fixes in VMM backend and propagation visitors to ensure proper optimization for VM external function calls. also adding a visitor to strip empty stats scopes. Change 4105250 by Simon.Tovey Updated windows binaries for hlslcc Change 4105283 by Yannick.Lange Fix creating an input parameter node from an input pin. #jira UE-57362 Change 4105509 by Yannick.Lange Fix being able to drop parameters in the system view on incorrect execution categories. Change 4105726 by Wyeth.Johnson Fix detection of valid toolchain directories with Visual Studio 2017 desktop (change by Ben.Marsh) Change 4105727 by Shaun.Kime Fixing nightly build due to missing GetAssetTags definition due to mismatches in WITH_EDITORONLY_DATA #tests n/a Change 4106034 by Damien.Pernuit Houdini-Niagara: Houdini CSV Asset: - Fixed build break due to GetAssetRegistryTags() - Replaced the different hardcoded ColumnIndexes member variables by an array. Change 4106254 by Frank.Fella Niagara - Fix playback issues where completed systems wouldn't simulate again until you pressed play. #jira UE-58616 #jira UE-58721 Change 4106617 by Frank.Fella Niagara - Prevent crash on shutdown. #jira UE-59516 Change 4106623 by Frank.Fella Niagara - Fix static analysis warning for posible null dereference in UNiagaraScriptItemGroup Change 4106988 by Shaun.Kime Resaved test assets with latest non-zero version #tests cooking no longer complains about file versions Change 4106992 by Shaun.Kime Now when errors appear in a cook for Niagara GPU shaders, we see them in the same location as the cook log #tests n/a Change 4108852 by Simon.Tovey Fix for transforms in emitter scripts. Param->Dataset bindings weren't handling structs correctly. Change 4109260 by Wyeth.Johnson Normalize Vector dynamic input Change 4109748 by Marcus.Wassmer olaf.piesche: Fresh build of hlslcc for Mac Change 4110624 by Rolando.Caloca -fresh build of hlslcc for Linux -fixed a warning in NiagaraStackModuleItem.cpp Change 4111103 by Shaun.Kime Fixing nightly build issues with redundant left and right side of && CI Issue: d:\build\++ue4+dev-niagara+compile\sync\engine\plugins\fx\niagara\source\niagaraeditor\private\viewmodels\niagarasystemviewmodel.cpp(1425): warning V501: There are identical sub-expressions 'bStartedPlaying == false' to the left and to the right of the '&&' operator. #tests auto-tests pass Change 4111104 by Shaun.Kime Fix for CI issue: d:\build\++ue4+dev-niagara+compile\sync\engine\plugins\fx\niagara\source\niagaraeditor\private\viewmodels\stack\niagarastackscriptitemgroup.cpp(553): warning V595: The 'SourceModuleItem' pointer was utilized before it was verified against nullptr. Check lines: 553, 554. #tests auto-tests pass Change 4113839 by Ryan.Vance #jira UE-59992 Enables mobile multi-view for translucent objects. Change 4113461 by Lina.Halper Fix build error #jira: none Change 4113429 by Brandon.Schaefer If we are using the native bundled toolchain set LC_ALL=C to avoid locale issues #jira UE-59416 Change 4113369 by Mitchell.Wilson Removing bShouldBeLoaded from CinematicPrestreamer BP. The base class ignored the bShouldBeLoaded value, so it was moved out of the class. #jira UE-59944 Change 4113181 by Phillip.Kavan Add missing Bookmarks command in macro and interface editors. - Mirrored from //UE4/Dev-Framework (4113177). #jira UE-58623 Change 4113010 by Marcin.Undak Audio: immediately stop sounds when destroying it's data #jira UE-59823 #jira UE-59593 Change 4112968 by Phillip.Kavan The Blueprint editor Bookmarks tab now updates when switching to a new graph tab, when showing only the current graph context. - Mirrored from //UE4/Dev-Framework (4112217). #jira UE-58588 Change 4112934 by Martin.Wilson Extra logging for marker sync issue #jira UE-54705 Change 4112932 by Arciel.Rekman Vulkan: disable unused device features (UE-59930). #jira UE-59930 (Edigrating CL 4111492 from Dev-Console to Release-4.20) Change 4112927 by paulo.souza ARPG - Fixes impact pause effect not working #jira UE-59906 Change 4112877 by Mitchell.Wilson Saving assets to resolve empty engine version warnings. #jira UE-59947 Change 4112830 by Lina.Halper Fix issue with displaying class that is in transient due to mid compilation #jira: UE-58936 Change 4112821 by Lina.Halper Merging using Dev-Anim_Release-4.20 Fix on changing hierarchy transform #jira: UE-59964 Change 4112799 by Lina.Halper #DUPEMERGE Fix issue with a huge scale of root causing retarget to create invalid transform #jira: UE-58837 Change 4112795 by Lina.Halper #DUPE MERGE - Fix issue where keep state not working properly when montage is used for sequencer because montage is advancing and blends out automaticaly - added option to "auto blend out" so that we can disable it. #jira: UE-59049 Change 4112790 by Martin.Wilson Make sure bone references are up to date on update (skeletal control nodes can crash otherwise) #Jira UE-56395 Change 4116663 by Andrew.Grant Fix VirtualCamera plugin no longer working and some RemoteSession tweaks - Channel selection now done programatically by VirtualCamera plugin - VirtualCamera no longer creates as ARCameraChannel (wasn't used, and interefered with tracking). - Fixed missing object references in RemoteSessionApp - Added some missing devices to UE4Game provisioning file. #jira UE-59478 #tests Tested RemoteSession in VirtualCameraSample Change 4116464 by Andrew.Grant Moved Gauntlet Plugin out of NFL and into experimental folder #jira UE-59937 #tests Compiled ElementalDemo #lockdown Nick.Penwarden #rb none #ROBOMERGE-SOURCE: CL 4122701 in //UE4/Main/... #ROBOMERGE-BOT: DEVVR (Main -> Dev-VR) #ROBOMERGE-OWNER: jason.bestimt [CL 4122839 by ben marsh in Dev-VR branch]
274 lines
7.7 KiB
C++
274 lines
7.7 KiB
C++
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "UnixCommonStartup.h"
|
|
#include "Misc/OutputDeviceRedirector.h"
|
|
#include "Misc/OutputDeviceError.h"
|
|
#include "Misc/FeedbackContext.h"
|
|
#include "HAL/ExceptionHandling.h"
|
|
#include "Unix/UnixPlatformCrashContext.h"
|
|
#include "Modules/ModuleInterface.h"
|
|
#include "Modules/ModuleManager.h"
|
|
#include "Misc/EngineVersion.h"
|
|
#include "HAL/PlatformApplicationMisc.h"
|
|
|
|
#include <locale.h>
|
|
#include <sys/resource.h>
|
|
|
|
static FString GSavedCommandLine;
|
|
extern int32 GuardedMain( const TCHAR* CmdLine );
|
|
extern void LaunchStaticShutdownAfterError();
|
|
|
|
#if WITH_ENGINE
|
|
// see comment in LaunchUnix.cpp for details why it is done this way
|
|
extern void LaunchUnix_FEngineLoop_AppExit();
|
|
#endif // WITH_ENGINE
|
|
|
|
/**
|
|
* Game-specific crash reporter
|
|
*/
|
|
void CommonUnixCrashHandler(const FGenericCrashContext& GenericContext)
|
|
{
|
|
// at this point we should already be using malloc crash handler (see PlatformCrashHandler)
|
|
|
|
const FUnixCrashContext& Context = static_cast< const FUnixCrashContext& >( GenericContext );
|
|
printf("CommonUnixCrashHandler: Signal=%d\n", Context.Signal);
|
|
|
|
// better than having mutable fields?
|
|
const_cast< FUnixCrashContext& >(Context).CaptureStackTrace();
|
|
if (GLog)
|
|
{
|
|
GLog->Flush();
|
|
}
|
|
if (GWarn)
|
|
{
|
|
GWarn->Flush();
|
|
}
|
|
if (GError)
|
|
{
|
|
GError->Flush();
|
|
GError->HandleError();
|
|
}
|
|
|
|
return Context.GenerateCrashInfoAndLaunchReporter();
|
|
}
|
|
|
|
|
|
/**
|
|
* Sets (soft) limit on a specific resource
|
|
*
|
|
* @param Resource - one of RLIMIT_* values
|
|
* @param DesiredLimit - desired value
|
|
* @param bIncreaseOnly - avoid changing the limit if current value is sufficient
|
|
*/
|
|
bool SetResourceLimit(int Resource, rlim_t DesiredLimit, bool bIncreaseOnly)
|
|
{
|
|
rlimit Limit;
|
|
if (getrlimit(Resource, &Limit) != 0)
|
|
{
|
|
fprintf(stderr, "getrlimit() failed with error %d (%s)\n", errno, strerror(errno));
|
|
return false;
|
|
}
|
|
|
|
if (bIncreaseOnly && (Limit.rlim_cur == RLIM_INFINITY || Limit.rlim_cur >= DesiredLimit))
|
|
{
|
|
if (!UE_BUILD_SHIPPING)
|
|
{
|
|
printf("- Existing per-process limit (soft=%lu, hard=%lu) is enough for us (need only %lu)\n", Limit.rlim_cur, Limit.rlim_max, DesiredLimit);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
Limit.rlim_cur = DesiredLimit;
|
|
if (setrlimit(Resource, &Limit) != 0)
|
|
{
|
|
fprintf(stderr, "setrlimit() failed with error %d (%s)\n", errno, strerror(errno));
|
|
|
|
if (errno == EINVAL)
|
|
{
|
|
if (DesiredLimit == RLIM_INFINITY)
|
|
{
|
|
fprintf(stderr, "- Max per-process value allowed is %lu (we wanted infinity).\n", Limit.rlim_max);
|
|
}
|
|
else
|
|
{
|
|
fprintf(stderr, "- Max per-process value allowed is %lu (we wanted %lu).\n", Limit.rlim_max, DesiredLimit);
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Expects GSavedCommandLine to be set up. Increases limit on
|
|
* - number of open files to be no less than desired (if specified on command line, otherwise left alone)
|
|
* - size of core file, so core gets dumped and we can debug crashed builds (unless overridden with -nocore)
|
|
*
|
|
*/
|
|
static bool IncreasePerProcessLimits()
|
|
{
|
|
// honor the parameter if given, but don't change limits if not
|
|
int32 FileHandlesToReserve = -1;
|
|
if (FParse::Value(*GSavedCommandLine, TEXT("numopenfiles="), FileHandlesToReserve) && FileHandlesToReserve > 0)
|
|
{
|
|
if (!UE_BUILD_SHIPPING)
|
|
{
|
|
printf("Increasing per-process limit of open file handles to %d\n", FileHandlesToReserve);
|
|
}
|
|
|
|
if (!SetResourceLimit(RLIMIT_NOFILE, FileHandlesToReserve, true))
|
|
{
|
|
fprintf(stderr, "Could not adjust number of file handles, consider changing \"nofile\" in /etc/security/limits.conf and relogin.\nerror(%d): %s\n", errno, strerror(errno));
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// core dump policy:
|
|
// - Shipping disables it by default (unless -core is passed)
|
|
// - The rest set it to infinity unless -nocore is passed
|
|
// (in all scenarios user wish as expressed with -core or -nocore takes priority)
|
|
// Note that we used to have Test disable cores by default too. This has been changed around UE 4.15.
|
|
bool bDisableCore = (UE_BUILD_SHIPPING != 0);
|
|
if (FParse::Param(*GSavedCommandLine, TEXT("nocore")))
|
|
{
|
|
bDisableCore = true;
|
|
}
|
|
if (FParse::Param(*GSavedCommandLine, TEXT("core")))
|
|
{
|
|
bDisableCore = false;
|
|
}
|
|
|
|
if (bDisableCore)
|
|
{
|
|
printf("Disabling core dumps.\n");
|
|
if (!SetResourceLimit(RLIMIT_CORE, 0, false))
|
|
{
|
|
fprintf(stderr, "Could not set core file size to 0, error(%d): %s\n", errno, strerror(errno));
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
printf("Increasing per-process limit of core file size to infinity.\n");
|
|
if (!SetResourceLimit(RLIMIT_CORE, RLIM_INFINITY, true))
|
|
{
|
|
fprintf(stderr, "Could not adjust core file size, consider changing \"core\" in /etc/security/limits.conf and relogin.\nerror(%d): %s\n", errno, strerror(errno));
|
|
fprintf(stderr, "Alternatively, pass -nocore if you are unable or unwilling to do that.\n");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
int CommonUnixMain(int argc, char *argv[], int (*RealMain)(const TCHAR * CommandLine))
|
|
{
|
|
FString EarlyInitCommandLine;
|
|
FPlatformApplicationMisc::EarlyUnixInitialization(EarlyInitCommandLine);
|
|
GSavedCommandLine += EarlyInitCommandLine;
|
|
|
|
FPlatformMisc::SetGracefulTerminationHandler();
|
|
|
|
if (UE_BUILD_SHIPPING)
|
|
{
|
|
// only printed in shipping
|
|
printf("%s %d %d\n", StringCast<ANSICHAR>(*FEngineVersion::Current().ToString()).Get(), GPackageFileUE4Version, GPackageFileLicenseeUE4Version);
|
|
}
|
|
|
|
int ErrorLevel = 0;
|
|
|
|
if (setenv("LC_NUMERIC", "en_US", 1) != 0)
|
|
{
|
|
int ErrNo = errno;
|
|
fprintf(stderr, "Unable to setenv(LC_NUMERIC): errno=%d (%s)", ErrNo, strerror(ErrNo));
|
|
}
|
|
|
|
setlocale(LC_ALL, "");
|
|
|
|
for (int32 Option = 1; Option < argc; Option++)
|
|
{
|
|
GSavedCommandLine += TEXT(" ");
|
|
// we need to quote stuff that has spaces in it because something somewhere is removing quotation marks before they arrive here
|
|
FString Temp = UTF8_TO_TCHAR(argv[Option]);
|
|
if (Temp.Contains(TEXT(" ")))
|
|
{
|
|
int32 Quote = 0;
|
|
if(Temp.StartsWith(TEXT("-")))
|
|
{
|
|
int32 Separator;
|
|
if (Temp.FindChar('=', Separator))
|
|
{
|
|
Quote = Separator + 1;
|
|
}
|
|
}
|
|
Temp = Temp.Left(Quote) + TEXT("\"") + Temp.Mid(Quote) + TEXT("\"");
|
|
}
|
|
GSavedCommandLine += Temp; // note: technically it depends on locale
|
|
}
|
|
|
|
if (!UE_BUILD_SHIPPING)
|
|
{
|
|
GAlwaysReportCrash = true; // set by default and reverse the behavior
|
|
if ( FParse::Param( *GSavedCommandLine,TEXT("nocrashreports") ) || FParse::Param( *GSavedCommandLine,TEXT("no-crashreports") ) )
|
|
{
|
|
GAlwaysReportCrash = false;
|
|
}
|
|
}
|
|
|
|
if (FPlatformApplicationMisc::ShouldIncreaseProcessLimits() && !IncreasePerProcessLimits())
|
|
{
|
|
fprintf(stderr, "Could not set desired per-process limits, consider changing system limits.\n");
|
|
ErrorLevel = 1;
|
|
}
|
|
else
|
|
{
|
|
#if UE_BUILD_DEBUG
|
|
if( true && !GAlwaysReportCrash )
|
|
#else
|
|
if( FPlatformMisc::IsDebuggerPresent() && !GAlwaysReportCrash )
|
|
#endif
|
|
{
|
|
// Don't use exception handling when a debugger is attached to exactly trap the crash. This does NOT check
|
|
// whether we are the first instance or not!
|
|
ErrorLevel = RealMain( *GSavedCommandLine );
|
|
}
|
|
else
|
|
{
|
|
FPlatformMisc::SetCrashHandler(CommonUnixCrashHandler);
|
|
GIsGuarded = 1;
|
|
// Run the guarded code.
|
|
ErrorLevel = RealMain( *GSavedCommandLine );
|
|
GIsGuarded = 0;
|
|
}
|
|
}
|
|
|
|
// Final shut down.
|
|
#if WITH_ENGINE
|
|
LaunchUnix_FEngineLoop_AppExit();
|
|
#endif // WITH_ENGINE
|
|
|
|
// check if a specific return code has been set
|
|
uint8 OverriddenErrorLevel = 0;
|
|
if (FPlatformMisc::HasOverriddenReturnCode(&OverriddenErrorLevel))
|
|
{
|
|
ErrorLevel = OverriddenErrorLevel;
|
|
}
|
|
|
|
if (ErrorLevel)
|
|
{
|
|
printf("Exiting abnormally (error code: %d)\n", ErrorLevel);
|
|
}
|
|
return ErrorLevel;
|
|
}
|
|
|
|
|
|
class FUnixCommonStartupModule : public IModuleInterface
|
|
{
|
|
/** IModuleInterface implementation */
|
|
virtual void StartupModule() override {};
|
|
virtual void ShutdownModule() override {};
|
|
};
|
|
|
|
IMPLEMENT_MODULE(FUnixCommonStartupModule, UnixCommonStartup);
|