void FWebBrowserViewport::Tick( const FGeometry& AllottedGeometry, double InCurrentTime, float DeltaTime ) { // Calculate max corner of the viewport using same method as Slate FVector2D MaxPos = AllottedGeometry.AbsolutePosition + AllottedGeometry.GetLocalSize(); // Get size by subtracting as int to avoid incorrect rounding when size and position are .5 WebBrowserWindow->SetViewportSize(MaxPos.IntPoint() - AllottedGeometry.AbsolutePosition.IntPoint()); }
FSlateMaterialResource::FSlateMaterialResource(const UMaterialInterface& InMaterial, const FVector2D& InImageSize, FSlateShaderResource* InTextureMask ) : MaterialObject( &InMaterial ) , SlateProxy( new FSlateShaderResourceProxy ) , TextureMaskResource( InTextureMask ) , Width(FMath::RoundToInt(InImageSize.X)) , Height(FMath::RoundToInt(InImageSize.Y)) { SlateProxy->ActualSize = InImageSize.IntPoint(); SlateProxy->Resource = this; }
void FSlateMaterialResource::UpdateMaterial(const UMaterialInterface& InMaterialResource, const FVector2D& InImageSize, FSlateShaderResource* InTextureMask ) { MaterialObject = &InMaterialResource; if( !SlateProxy ) { SlateProxy = new FSlateShaderResourceProxy; } TextureMaskResource = InTextureMask; SlateProxy->ActualSize = InImageSize.IntPoint(); SlateProxy->Resource = this; Width = FMath::RoundToInt(InImageSize.X); Height = FMath::RoundToInt(InImageSize.Y); }
bool FVertexSnappingImpl::SnapLocationToNearestVertex( FVector& Location, const FVector2D& MouseLocation, FLevelEditorViewportClient* ViewportClient, FVector& OutVertexNormal, bool bDrawVertexHelpers ) { bool bSnapped = false; // Make a box around the actor which is the area we are allowed to snap in FBox AllowedSnappingBox = FBox( Location-VertexSnappingConstants::MaxSnappingDistance, Location+VertexSnappingConstants::MaxSnappingDistance ); FSceneViewFamilyContext ViewFamily(FSceneViewFamily::ConstructionValues( ViewportClient->Viewport, ViewportClient->GetScene(), ViewportClient->EngineShowFlags ) .SetRealtimeUpdate( ViewportClient->IsRealtime() )); FSceneView* View = ViewportClient->CalcSceneView( &ViewFamily ); TArray<FSnapActor> ActorsInBox; TSet<TWeakObjectPtr<AActor> > ActorsToIgnore; // Ignore actors currently being moved ActorsToIgnore.Append( ViewportClient->GetDropPreviewActors() ); GetPossibleSnapActors( AllowedSnappingBox, MouseLocation.IntPoint(), ViewportClient, View, EAxisList::Screen, ActorsToIgnore, ActorsInBox ); FViewportCursorLocation Cursor(View, ViewportClient, MouseLocation.X, MouseLocation.Y ); FPlane ActorPlane( Location, Cursor.GetDirection() ); FVertexSnappingArgs Args ( ActorPlane, Location, ViewportClient, View, Cursor.GetCursorPos(), EAxisList::Screen, bDrawVertexHelpers ); // Snap to the nearest vertex FSnappingVertex ClosestVertex = GetClosestVertex( ActorsInBox, Args ); Location = ClosestVertex.Position; OutVertexNormal = ClosestVertex.Normal; bSnapped = true; return bSnapped; }