1
0
KF2-Dev-Scripts/GameFramework/Classes/SeqEvent_HudRenderImage.uc

58 lines
1.8 KiB
Ucode
Raw Normal View History

2020-12-13 15:01:13 +00:00
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* This is the base class of all Mobile sequence events.
*/
class SeqEvent_HudRenderImage extends SeqEvent_HudRender;
/** The color to modulate the text by */
var(HUD) LinearColor DisplayColor;
/** The Location to display the text at */
var(HUD) vector DisplayLocation;
/** The texture to display */
var(HUD) Texture2D DisplayTexture;
/** The Size of the image to display */
var(HUD) float XL, YL;
/** The UVs */
var(HUD) float U,V,UL,VL;
/**
* Perform the actual rendering
*/
function Render(Canvas TargetCanvas, Hud TargetHud)
{
local float UsedX, UsedY, UsedXL, UsedYL;
local float GlobalScaleX, GlobalScaleY;
if (bIsActive)
{
PublishLinkedVariableValues();
// cache the global scales
GlobalScaleX = class'MobileMenuScene'.static.GetGlobalScaleX() / AuthoredGlobalScale;
GlobalScaleY = class'MobileMenuScene'.static.GetGlobalScaleY() / AuthoredGlobalScale;
// for floating point values, just multiply it by the canvas size
// otherwise, apply GlobalScaleFactor, while undoing the scale factor they author at
UsedX = (DisplayLocation.X < 1.0f) ? DisplayLocation.X * TargetCanvas.SizeX : (DisplayLocation.X * GlobalScaleX);
UsedY = (DisplayLocation.Y < 1.0f) ? DisplayLocation.Y * TargetCanvas.SizeY : (DisplayLocation.Y * GlobalScaleY);
UsedXL = (XL <= 1.0f) ? XL * TargetCanvas.SizeX : (XL * GlobalScaleX);
UsedYL = (YL <= 1.0f) ? YL * TargetCanvas.SizeX : (YL * GlobalScaleY);
TargetCanvas.SetPos(UsedX, UsedY);
TargetCanvas.DrawTile(DisplayTexture, UsedXL, UsedYL, U, V, UL, VL, DisplayColor);
}
}
defaultproperties
{
ObjName="Draw Image"
ObjCategory="HUD"
VariableLinks(2)=(ExpectedType=class'SeqVar_Vector',LinkDesc="Display Location",bWriteable=true,PropertyName=DisplayLocation,MaxVars=1)
}