- The change is authored by Steve Robb.
- Can make code more efficient by passing some args by value.
- Ugly due to typename not allowed outside of templates by MSVC (error C2899).
#codereview Mike.Fricker, Josh.Adams, Nick.Penwarden, Steve.Robb, Michael.Trepka, Marcus.Wassmer, Gil.Gribb
[CL 2287913 by Dmitry Rekman in Main branch]
* Both paths still exist in code during this transition. The GetDynamicMeshElements path is currently disabled, enable with 'r.UseGetDynamicMeshElements 1'.
* DrawDynamicElements was called once per pass, all sorts of pass-specific cruft had leaked in along with short-term modifications of shared structures (vertex factories and material proxies). DrawDynamicElements was not const, so a bunch of 'update' type work had leaked in. Various PreRenderView implementations relied on the view being in the view family.
* GetDynamicMeshElements is called once in InitViews, and the resulting meshes are used in various passes. GetDynamicMeshElements is const and must not modify the proxy, update work should be pushed to the proxy from the game thread. GetDynamicMeshElements can be called on views that are not in the view family, which allows a proper view for shadow depth passes.
* View mode override functionality moved out of the individual proxies into a centralized place, ApplyViewModeOverrides
* GPU particles not working yet, FRecastRenderingSceneProxy not implemented
[CL 2253795 by Daniel Wright in Main branch]
* For several preview components (cascade + a couple of animation previews), don't create a separate FXSystem for the preview world. Just use the one created internally by the world
* Several bug fixes and improvements to dynamic feature level switch
* Continued conversion of code that references to global feature level.
#codereview Nick.Penwarden
[CL 2229679 by Graeme Thornton in Main branch]
- Material editor preview nodes now work when the editor is in es2 mode
- Make editor primitives work in ES2 mode
- Fix slate font rendering in ES2 mode
- Remove ES2 shader de-gamma when in the editor
- Add a new linear sampler type for linear textures
- Various fixes for dynamic feature level switching
- When in an emulated feature level mode, display some text in the level editor viewport saying what feature level we're running
- Removed feature level parameter from USkeletalMesh::GetResourceForRendering. Not used for anything
- ParticleVertexFactoryPool is now creates feature level specific vertex factories.
[CL 2187558 by Graeme Thornton in Main branch]
Last render time for textures can now be exposed via an FLastRenderTimeContainer provided at construction time. Only implemented for texture references. Eventually this can unify last render time for normal textures and texture references.
[CL 2170350 by Nick Penwarden in Main branch]
Moved console variables to their corresponding cpp files where possible.
#ttp 319909 - UE4: RENDERING: Change the ConsoleManager code over to use the new typed TAutoConsoleVariable
[CL 2116537 by Joe Tidmarsh in Main branch]
Add explicit constructor to UStaticMeshComponent, ULandscapeComponent and FModelElement so they can be implmented in cpp file, which includes LightMap/ShadowMap.h
Rename PackedNormal.inl to PackedNormal.h and move rest of declaration, so it can be included independent of RenderUtils.h
Move FMaterialRelevance definition from PrimitiveComponent.h to MaterialInterface.h
Move FExpressionInput/FExpressionOutput/FMaterialInput etc. from MaterialShared.h into new MaterialExpressionIO.h, to avoid Material.h pulling in RHI includes
Other required includes added
#codereview rolando.caloca
[CL 2113877 by James Golding in Main branch]