101 lines
1.7 KiB
Ucode
101 lines
1.7 KiB
Ucode
/**
|
|
* MobileMenuImage
|
|
* This is a simple image.
|
|
*
|
|
*
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
class MobileMenuImage extends MobileMenuObject
|
|
native;
|
|
|
|
/** Holds the texture to display */
|
|
var Texture2D Image;
|
|
|
|
/** Determines how the image is displayed */
|
|
enum MenuImageDrawStyle
|
|
{
|
|
IDS_Normal,
|
|
IDS_Stretched,
|
|
IDS_Tile,
|
|
};
|
|
|
|
var MenuImageDrawStyle ImageDrawStyle;
|
|
|
|
/** Holds the texture UVs. Note, after InitMenuObject(), these will hold the values to use regardless of the bUseCustomUVs flag */
|
|
var UVCoords ImageUVs;
|
|
|
|
/** Holds the color override for the image */
|
|
var LinearColor ImageColor;
|
|
|
|
/**
|
|
* Render the widget
|
|
*
|
|
* @param Canvas - the canvas object for drawing
|
|
*/
|
|
|
|
function RenderObject(canvas Canvas, float DeltaTime)
|
|
{
|
|
local float W, H, U, V, UL, VL;
|
|
local LinearColor DrawColor;
|
|
|
|
// Set the position
|
|
SetCanvasPos(Canvas);
|
|
|
|
// Calculate the default set of rendering params
|
|
if (ImageUVs.bCustomCoords)
|
|
{
|
|
U = ImageUVs.U;
|
|
V = ImageUVs.V;
|
|
UL = ImageUVs.UL;
|
|
VL = ImageUVs.VL;
|
|
}
|
|
else
|
|
{
|
|
U = 0;
|
|
V = 0;
|
|
UL = Image.SizeX;
|
|
VL = Image.SizeY;
|
|
}
|
|
|
|
|
|
// Determine how we render the image.
|
|
|
|
switch (ImageDrawStyle)
|
|
{
|
|
case IDS_Normal: // Clip it
|
|
W = Width > UL ? UL : Width;
|
|
H = Height > VL ? VL : Height;
|
|
UL = W;
|
|
VL = H;
|
|
break;
|
|
|
|
case IDS_Stretched: // Stretch it
|
|
|
|
W = Width;
|
|
H = Height;
|
|
break;
|
|
|
|
case IDS_Tile: // Tile it
|
|
|
|
W = Width;
|
|
H = Height;
|
|
UL = W;
|
|
VL = H;
|
|
break;
|
|
}
|
|
|
|
DrawColor = ImageColor;
|
|
DrawColor.A *= Opacity * OwnerScene.Opacity;
|
|
|
|
Canvas.DrawTile(Image, W,H, U, V, UL, VL, DrawColor);
|
|
}
|
|
|
|
|
|
defaultproperties
|
|
{
|
|
ImageColor=(r=1.0,g=1.0,b=1.0,a=1.0)
|
|
}
|
|
|
|
|