Files
UnrealEngineUWP/Engine/Source/Developer/ScreenShotComparisonTools/Private/ScreenShotScreenNode.h
Matthew Griffin bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00

74 lines
2.0 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
/*=============================================================================
ScreenShotScreenNode.h: Declares the FScreenShotScreenNode class.
=============================================================================*/
#pragma once
class FScreenShotScreenNode : public FScreenShotBaseNode
{
public:
/**
* Construct test data given a name.
*
* @param InName The Name of this test data item.
* @param InAssetName The Name of this asset.
*/
FScreenShotScreenNode( const FString& InName, const FString& InAssetName = "" )
: FScreenShotBaseNode( InName, InAssetName )
{}
public:
//~ Begin IScreenShotData Interface
virtual void AddScreenShotData( const FScreenShotDataItem& InScreenDataItem ) override
{
// First stage of adding screen shot data - create the screen shot node, then add the platform
TSharedRef<IScreenShotData> ScreenNode = AddChild( InScreenDataItem.DeviceName );
ScreenNode->AddScreenShotData( InScreenDataItem );
};
virtual EScreenShotDataType::Type GetScreenNodeType() override
{
return EScreenShotDataType::SSDT_ScreenView;
};
virtual bool SetFilter( TSharedPtr< ScreenShotFilterCollection > ScreenFilter ) override
{
FilteredChildren.Empty();
bool bPassesFilter = ScreenFilter->PassesAllFilters( SharedThis( this ) );
if( bPassesFilter )
{
for ( int32 Index = 0; Index < Children.Num(); Index++ )
{
if ( Children[Index]->SetFilter( ScreenFilter ) )
{
FilteredChildren.Add( Children[Index] );
}
}
}
return FilteredChildren.Num() > 0;
}
//~ End IScreenShotData Interface
//~ Begin SScreenShotNodeBase Interface
virtual TSharedRef<IScreenShotData> CreateNode( const FString& ChildName ) override
{
TSharedPtr< IScreenShotData > ScreenShotNode = MakeShareable( new FScreenShotPlatformNode( ChildName ) );;
Children.Add( ScreenShotNode.ToSharedRef() );
return ScreenShotNode.ToSharedRef();
};
//~ End SScreenShotNodeBase Interface
};