Commit Graph

80 Commits

Author SHA1 Message Date
mic rooney
fc120ce54f Fixing crash in AssetThumbnail.cpp due to unchecked pointer to an unloaded asset.
[REVIEW] [at]josh.andersen, [at]Aaron.eady, [at]Robert.Manuszewski

#ROBOMERGE-AUTHOR: mic.rooney
#ROBOMERGE-SOURCE: CL 20441202 via CL 20441261 via CL 20441384 via CL 20441412
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20449482 by mic rooney in ue5-main branch]
2022-06-01 04:23:35 -04:00
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Matt Peters
7ad238a806 AssetRegistry includes (Engine/Source): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270509a220f89f0ad573030

[CL 20016982 by Matt Peters in ue5-main branch]
2022-05-02 18:06:48 -04:00
wouter burgers
ad8b1e1d79 SAssetThumbnail: Create the viewport for the thumbnail with the desired dimensions to fix problems with using SAssetThumbnail in a ListViewRow where the thumbnail desired height remained at 240 (=the default), stretching the row height in the process.
#jira none
#review-19847858
#preflight 6261550fdd47b4ad21aaffdf

[CL 19899376 by wouter burgers in ue5-main branch]
2022-04-25 04:41:34 -04:00
sebastien lussier
7ce43b9fee Fixed warning "DoesPackageExist called on PackageName that will always return false" in PIE
#jira UE-145653
#rb patrick.enfedaque, jeanfrancois.dube
#preflight 622f1ffb0a342dea04dee251
#lockdown simon.tourangeau

#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19371966 in //UE5/Release-5.0/... via CL 19372335
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19374620 by sebastien lussier in ue5-main branch]
2022-03-14 13:23:31 -04:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
lonnie li
f512048038 Fix thumbnail refresh for generated textures (non-asset).
#rb trivial
#rnx
#jira none

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 17804120 in //UE5/Release-5.0/... via CL 17805307
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17805378 by lonnie li in ue5-release-engine-test branch]
2021-10-13 16:30:43 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
geoff evans
70a2a1479e Fixup bad merge [at]16163576. A deletion went missing during conflict resolution. Original change with the deletion was [at]14673948.
#jira UE-118806
#rb trivial

#ROBOMERGE-SOURCE: CL 17179522 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17179548 by geoff evans in ue5-release-engine-test branch]
2021-08-16 14:52:30 -04:00
alexis matte
56e2b6322b Fix bad merge that remove the async validation before rendering a thumbnail.
#jira none
#rb danny.couture
#preflight 60bfa53ab68c7000016a39dd

#ROBOMERGE-SOURCE: CL 16591330 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16591336 by alexis matte in ue5-release-engine-test branch]
2021-06-08 15:33:09 -04:00
Marc Audy
f02d489290 Update Release-Engine-Test from Release-Engine-Staging @ 16264272
[CL 16264458 by Marc Audy in ue5-release-engine-test branch]
2021-05-11 01:10:20 -04:00
UnrealBot
8afb476248 Branch snapshot for CL 16260158
[CL 16260158 in ue5-release-engine-staging branch]
2021-10-05 20:06:24 +00: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
matt kuhlenschmidt
fa3ea308fa Fix generic thumbnail images for content browser assets not scaling based on user thumbnail size
#jira UE-112761

#ROBOMERGE-SOURCE: CL 15918539 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15920961 by matt kuhlenschmidt in ue5-main branch]
2021-04-05 14:56:18 -04:00
danny couture
190b7d4450 Fix thumbnails not showing up or refreshing properly when shaders are finished compiling
- This bug is a combination of CL 14673948 and 14688146 that were tested separately

#rb Matt.Kuhlenschmidt
#robomerge Release-5.0-EarlyAccess

[CL 15851219 by danny couture in ue5-main branch]
2021-03-29 10:59:19 -04:00
geoff evans
48f5a95482 Change to using ensure() for verifying thumbnail dimensions.
I misunderstood the difference when I changed these to ensureAlways a while back.

#rb trivial

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

[CL 15571676 by geoff evans in ue5-main branch]
2021-03-02 14:24:52 -04:00
Alexis Matte
202c368746 Make sure skeletalmesh thumbnail do not render async skeletalmesh, the flags must be removed before the thumbnail can be updated.
#rb danny.couture
#jira UEENT-3936

[CL 14788599 by Alexis Matte in ue5-main branch]
2020-11-19 14:36:38 -04:00
danny couture
c23f6884fe Async Static Mesh Compilation / Loading
- Add protection against async property accessed during async build and postload.
   - Split PostLoad into 3 steps with the most part now being made async.
   - Make Build/BatchBuild API async when the feature is activated.
   - Add a new StaticMesh compilation manager. (This will be refactory later to reduce duplicated code with texture compiler).
   - Skip RenderState creation for any static mesh component still being built so they only show up when ready.
   - Fixed DistanceField and MeshCard computation that might trigger too soon if fixups are required to RenderData during PostLoad.
   - Dynamic priorisation for building and updating static meshes nearest to the viewport.
   - Implement different PIE modes, current default is to stall only for mesh that might affect nagivation/collision for players/bots.
   - Add a new generic interface for assets being built (still a WIP).
   - Add ability in FrontEnd filters to skip serialization of asset being async compiled and refresh when compilation finishes.
   - Prevent auto-save while textures and static meshes are being built (same as shaders)
   - Logic has been reordered in some Fortnite Building Component to avoid unnecessarily touching static mesh properties.

General Optimizations
   - Use cached thumbnails until shaders/textures/static meshes are ready to improve performance and avoid rendering incomplete thumbnails.

DEBUGGING
 - Can be forcibly enabled/disabled through command-line via -asyncstaticmeshcompilation=[off, on, paused]
 - Can pause staticmesh compilation using Editor.AsyncStaticMeshCompilation = 2 or -asyncstaticmeshcompilation=paused
 - Can manually resume a specified amount of paused compilation using Editor.AsyncStaticMeshCompilationResume [Num]
 - Can forcibly wait on all compilation using Editor.AsyncStaticMeshCompilationFlushAll

BENCHMARKS
 - 2m19s to 17.9s for Loading FortGPUTestbed's LumenTest with an empty local only DDC
 - 2h45m to 5mxxs for Loading Reverb's P_World with an empty local only DDC
 - 17m29 to 10m27s for Loading Apollo_Terrain_Edit with an empty local only DDC

TESTS
 - Loading maps from Reverb, Fortnite, ShooterGame, QAGame, FortGPUTestbed
 - Content browser interactions while still under heavy compilation
 - Importing with Datasmith / Dataprep
 - Working with the new Mesh Modeling Tool
 - Shutting down the editor while loading
 - Most of EngineTest Test Suite

REFERENCES
 - Design https://docs.google.com/document/d/1O4GI1G9AtQN6l0SaGFfXw0DyNhlLunLoEqne5INvxIQ
 - Documentation https://docs.google.com/document/d/1KCdFEMhhcsGwfgOisTVwlOwtsmEd7qbB0V6Tc39Gb10

#rb Francis.Hurteau

[CL 14688146 by danny couture in ue5-main branch]
2020-11-09 07:50:34 -04:00
geoff evans
bde28af943 Redefine Content Browser's "RealTime Thumbnails" to be only the item the cursor is hovering over instead of every thumbnail in an SAssetView.
This change removes the use of boolean attribute AreRealTimeThumbnailsAllowed. This attribute is less than ideal, design-wise, since it uses the thumbnail pool to drive the behavior of the thumbnails. Instead we build in default hover behavior to the thumbnail slate widgets, and implement plumbing for custom pathways to enable/disable real time behavior per thumbnail.

-> Add default OnMouseEnter/OnMouseLeave events on SAssetThumbnail for default hover behavior (over the actual thumbnail image), which supports detail panel, customizations, and things like FoliageEditor and Niagara Stack Overview thumbnail strip.
-> Add thumbnail initialize pathway support for disabling default hover behavior for use cases where the logical asset is more than just the thumbnail image (border elements, text elements with the asset name, etc).
-> Add custom OnMouseEnter/OnMouseLeave handlers on SAssetTileItem, SAssetListItem to perform real time behavior on entire logical asset item in Content Browser and Asset Picker.

#rb francis.hurteau
#fyi matt.kuhlenschmidt
#jira UETOOL-2363

[CL 14673948 by geoff evans in ue5-main branch]
2020-11-05 21:41:33 -04:00
Matt Kuhlenschmidt
0a187c6d0e Update content browser search and filter styling
[CL 14092115 by Matt Kuhlenschmidt in ue5-main branch]
2020-08-12 11:50:06 -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
Matt Kuhlenschmidt
2e1aa75fa4 Content browser reskin reworks
Changed the look of folders
Changed the look of filters
Changed the look of the text for asset tiles

[CL 13963307 by Matt Kuhlenschmidt in ue5-main branch]
2020-07-29 10:50:26 -04:00
Matt Kuhlenschmidt
5c064acc86 Initial pass on content browser reskin
[CL 13949190 by Matt Kuhlenschmidt in ue5-main branch]
2020-07-27 16:11:54 -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