You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
* CL#2446826 Lukasz.Furman Back out changelist 2445212 Broken direct paths to goal, will fix it soon. * CL#2446871 Lukasz.Furman fixed path updates of direct path (FAbstractNavigationPath) #fortnite * CL#2447293 John.Abercrombie Resubmit CL 2443888 - Looks like things are working correctly, potentially due to my changes in CL 2444830 (Back out changelist 2443888 - which backed out CL 2443888 originally) * CL#2447787 Ben.Zeigler #UE4 Fix for cooking gameplay cue notifies, keep hard references to them during cooking as they get GCd out otherwise * CL#2448460 Lukasz.Furman added cleanup for duplicated subtree assets on behavior tree graph save #fortnite * CL#2449132 David.Nikdel #UE4 #DataTable #JSON: Added WriteRowAsJSON to serialize a single row from a table to Json and adjusted WriteTableAsJSON to use this internally * CL#2449208 Fred.Kimberley Fix crashes when compiling some blueprints. A recent change (2447719) added a one frame delay during blueprint compiling where some data may be NULL. Added null checks to handle this situation. #ue4 * CL#2449329 Josh.Andersen #engine - Added more info to an assert that can happen in an animsequence at runtime. * CL#2449869 sebastian.kowalczyk Changed timer in visual logger to use FTimerHandle. Fixed possible issue with missing log on LogVisualizer timeline. * CL#2450394 John.Abercrombie Part of the fix for FORT-4986 - Blaster will become inactive towards a specific player if player goes out of range during the blasters attack. - The set next montage section and wait was using callbacks from the end of the animation, rather than when it is blended out - Fixed up function names to match the functionality of animations blending out rather than the animation ended * CL#2451683 Josh.Andersen #engine - Enhanced PlaySlotAnimation by allowing looping counts as a parameter. Enhanced StopSlotAnimation by adding the ability to stop only a specific slot node. * CL#2452151 Ben.Zeigler #UE4 Fix ability block tags to correctly handle parent expansion, we want to expand the parents of the ability we're checking, not the blocked tags Fix it so AbilitySystemComponent::PlayMontage correctly sets the start section if called on a predicted client * CL#2452733 Ben.Zeigler #UE4 Fix replication bug where an actor without a root component was treated as being at 0,0,0 for computing net priority, leading to different priority based on facing direction * CL#2453024 Lukasz.Furman added navigation filter to EQS pathfinding tests * CL#2453422 Ben.Zeigler #UE4 Fix bug with FGameplayTagCountContainer, where if you added A, then A.B, then removed A, then removed A.B, A would still be in the explicit tag list. Switch to using a separate map for explicitly added tags * CL#2453874 Josh.Markiewicz #UE4 - check that the http module is available before attempting to remove pending http requests in mcp - prevents an assert in the http module that it was unloaded based on shutdown order of modules and timing of pending requests at shutdown * CL#2453906 Josh.Markiewicz #UE4 - added IsValid function to party reservation structure - added a few more checks to validate input on reservation request - prevent empty or invalid reservation ids on reservation requests * CL#2454211 Bob.Tellez #UE4 CategoryText for tags that were added by being parent tags of others is now properly registered when inserting tags into the tag manager tree. * CL#2454353 Billy.Bramer - Fixes for issues in GE pending list implementation: - PendingAdds could become out of sync due to additional removals or additions occuring during a scope lock; Removed pending add integer optimization to guarantee accuracy - GetActiveGameplayEffect(Idx) could return results in the pending list that weren't actually being actively used at the moment - RemoveActiveEffects needs to scope lock because removals can cause additional removals earlier in the array * CL#2454740 Laurent.Delayen Fixed SlotNode being registered multiple times when inside of a State. (Triggered by FAnimNode_StateMachine::SetState) * CL#2455611 Ben.Zeigler #UE4 Changes to GameplayCue handling to improve network performance: Add wrapper to FGameplayCueManager to handle batching together Execute gameplay cues. FScopedGameplayCueSendContext can be used to create a batched context, cues created during that period will all be sent after the context falls out of scope. Subclasses of GameplayCueManager can implement ProcessPendingCueExecute to do processing on the execute cues before networking and display. Fixed bug where Remove cue events would be sent twice for loose cues, deleted the RPC. Fixed bug where WhileActive/Removed cue events would happen twice on a predicted client * CL#2455653 Ben.Zeigler #UE4 Add code to support checking networking conditions like OwnerOnly for custom delta serialization used by fast tarray serialization. They were ignored before and it always replicated. * CL#2455995 Lukasz.Furman fixed losing pending task execution data after failed search attempt * CL#2456247 John.Abercrombie - The FBlackboardKeySelector ActorToCheck's KeyID is an invalid value for some reason (only occurs in cooked content) - Made it so if we detect an invalid KeyID we get the correct KeyID at runtime - This could be causing problems elsewhere, but it'll at least fix this particular issue on AIs for now - Not marking the bug fixed because it needs a real fix, this code will be removed. Passing to Lukasz. * CL#2456854 John.Abercrombie Fixed crash when writing to VLog while it was making a string with invalid data * CL#2457309 Eric.Newman Don't update LastUserInteractionTime for WindowActivated events unless it was mouse triggered. This fixes an issue where "kicked from game" popups would cause the user to be treated as active. * CL#2457658 Sammy.James Double-Deferred Slate Widgets will now properly render :) * CL#2458196 Lukasz.Furman proper fix for UBTDecorator_CheckGameplayTagsOnActor * CL#2458334 sebastian.kowalczyk Fix for issue "Pause does not stop the Visual Logger from recording data while PIEing with dedicated server". * CL#2459893 Billy.Bramer [FORT-6059] Add GE removal tech necessary to support Phil fixing AE damage clouds - Add RemoveActiveGameplayEffectBySourceEffect to ability system component (implemented via CustomMatch delegate in query so as to avoid risking query changes before OT2; query needs a refactor in general) - Change CustomMatch query delegate to take the active effect by reference instead of making copies - Fix bug with stacking where the stacking limit could be completely ignored on aggregate by target stacks if the newly added effect didn't have a valid instigator ASC (can happen on delayed application like via projectiles) * CL#2462362 Daniel.Broder Minor cleanup while investigating a crash: In FBlueprintVarActionDetails::PopulateCategories: * Split up check with && into two separate checks so the exact issue can be seen * Replaced repeated calls to MyBlueprint->GetBlueprintObj() with Blueprint, which already existed and was already assigned to that value. * Made a few spacing discrepancies consistent within the function. * CL#2462580 John.Abercrombie Added a decorator that can set a tag cooldown but does not test affect BT execution flow * CL#2463013 John.Abercrombie Added extra info to VLog when we need to smash something as part of our path. - Exposed the PathFollowing log category outside of the AI Module * CL#2463138 Josh.Markiewicz #UE4 - found some compile errors when LOG_SLATE_EVENTS is 1 - doesn't actually make it work, but they were compile errors * CL#2464208 Ben.Zeigler #UE4 Flush MustBeMappedGUIDs list after flushing dormancy, those avoids warnings the next time something is replicated * CL#2464231 Josh.Markiewicz #UE4 - added more descriptions to party beacon return results * CL#2466155 Lukasz.Furman added batch pathfinding test for EQS * CL#2466237 Lukasz.Furman EQS generators will now cache NavLocation of items if navmesh projection is enabled * CL#2466356 Lukasz.Furman added support for deprecated nodes in EQS editor * CL#2466358 Lukasz.Furman pathing grid EQS generator is now deprecated * CL#2466439 Lukasz.Furman added failsafe in EQS editor for recreating missing nodes * CL#2466643 Josh.Markiewicz #UE4 - removed cached "is talking" value as it doesn't persist across various travel mechanisms. Start/StopTalking handle their own state. * CL#2466813 Laurent.Delayen Fix for weapons not showing aiming angle on simulated proxies. * CL#2467308 Bob.Tellez #UE4 Fixed an issue where when following a redirector, a non-PIE world will be changed to the PIE world type. Also removed some log spam related to worlds while streaming. [CL 2474673 by Bob Tellez in Main branch]
122 lines
4.3 KiB
C++
122 lines
4.3 KiB
C++
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
VisualizeTexture.h: Post processing visualize texture.
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
struct IPooledRenderTarget;
|
|
class FViewInfo;
|
|
|
|
class FVisualizeTexture
|
|
{
|
|
public:
|
|
FVisualizeTexture();
|
|
|
|
/** renders the VisualizeTextureContent to the current render target */
|
|
void PresentContent(FRHICommandListImmediate& RHICmdList, const FViewInfo& View);
|
|
/** */
|
|
void OnStartFrame(const FSceneView& View);
|
|
/** */
|
|
void SetObserveTarget(const FString& InObservedDebugName, uint32 InObservedDebugNameReusedGoal = 0xffffffff);
|
|
// @return 0 if not found
|
|
IPooledRenderTarget* GetObservedElement() const;
|
|
/**
|
|
* calling this allows to grab the state of the texture at this point to be queried by visualizetexture e.g. "vis LightAttenuation@2"
|
|
* @param PooledRenderTarget 0 is silently ignored
|
|
* Warning: this may change the active render target and other state
|
|
*/
|
|
void SetCheckPoint(FRHICommandList& RHICmdList, const IPooledRenderTarget* PooledRenderTarget);
|
|
|
|
// @param bExtended true: with more convenience - not needed for crashes but useful from the console
|
|
void DebugLog(bool bExtended);
|
|
|
|
void QueryInfo( FQueryVisualizeTexureInfo& Out );
|
|
|
|
// VisualizeTexture console command settings:
|
|
// written on game thread, read on render thread (uses FlushRenderingCommands to avoid the threading issues)
|
|
|
|
// 0=off, >0=texture id, changed by "VisualizeTexture" console command, useful for debugging
|
|
int32 Mode;
|
|
//
|
|
float RGBMul;
|
|
//
|
|
float AMul;
|
|
// 0=view in left top, 1=whole texture, 2=pixel perfect centered, 3=Picture in Picture
|
|
int32 UVInputMapping;
|
|
// bit 1: if 1, saturation mode, if 0, frac mode
|
|
int32 Flags;
|
|
//
|
|
int32 CustomMip;
|
|
//
|
|
int32 ArrayIndex;
|
|
//
|
|
bool bSaveBitmap;
|
|
// stencil normally displays in the alpha channel of depth buffer visualization. This option is just for BMP writeout to get a stencil only BMP.
|
|
bool bOutputStencil;
|
|
//
|
|
bool bFullList;
|
|
// -1:by index, 0:by name, 1:by size
|
|
int32 SortOrder;
|
|
|
|
#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
|
|
// [DebugName of the RT] = ReuseCount this frame
|
|
TMap<const TCHAR*, uint32> VisualizeTextureCheckpoints;
|
|
#endif
|
|
|
|
// render target DebugName that is observed, "" if the feature is deactivated
|
|
FString ObservedDebugName;
|
|
// each frame this is counting up each time a RT with the same name is reused
|
|
uint32 ObservedDebugNameReusedCurrent;
|
|
// this is the count we want to reach, 0xffffffff if the last one
|
|
uint32 ObservedDebugNameReusedGoal;
|
|
|
|
private:
|
|
TRefCountPtr<IPooledRenderTarget> VisualizeTextureContent;
|
|
// only valid/useful if VisualizeTextureContent is set
|
|
FPooledRenderTargetDesc VisualizeTextureDesc;
|
|
TRefCountPtr<FRHIShaderResourceView> StencilSRV;
|
|
FTextureRHIRef StencilSRVSrc;
|
|
|
|
// The view rectangle that we are drawing to
|
|
FIntRect ViewRect;
|
|
|
|
// View rectange, constrained to the camera aspect ratio (if required). In game modes, the view rectangle is set to the correct aspect ratio constrained rectangle, but
|
|
// in the editor it is set to the full viewport window, and separate black bars are drawn to simulate the contrained area. We need to know about that so we can keep
|
|
// the texture visualization image inside this area
|
|
FIntRect AspectRatioConstrainedViewRect;
|
|
|
|
// Flag to determine whether texture visualization is enabled, currently based on the feature level we are rendering with
|
|
bool bEnabled;
|
|
|
|
// Store feature level that we're currently using
|
|
ERHIFeatureLevel::Type FeatureLevel;
|
|
|
|
// is called by FPooledRenderTarget
|
|
|
|
void GenerateContent(FRHICommandListImmediate& RHICmdList, const FSceneRenderTargetItem& RenderTargetItem, const FPooledRenderTargetDesc& Desc);
|
|
|
|
FIntRect ComputeVisualizeTextureRect(FIntPoint InputTextureSize) const;
|
|
};
|
|
|
|
|
|
struct FVisualizeTextureData
|
|
{
|
|
FVisualizeTextureData(const FSceneRenderTargetItem& InRenderTargetItem, const FPooledRenderTargetDesc& InDesc)
|
|
: RenderTargetItem(InRenderTargetItem), Desc(InDesc), StencilSRV(nullptr)
|
|
{
|
|
}
|
|
|
|
const FSceneRenderTargetItem& RenderTargetItem;
|
|
const FPooledRenderTargetDesc& Desc;
|
|
TRefCountPtr<FRHIShaderResourceView> StencilSRV;
|
|
float RGBMul;
|
|
float AMul;
|
|
FVector2D Tex00;
|
|
FVector2D Tex11;
|
|
bool bSaturateInsteadOfFrac;
|
|
int32 InputValueMapping;
|
|
int32 ArrayIndex;
|
|
int32 CustomMip;
|
|
}; |