Changed aspect ratio implementation

This commit is contained in:
DeadlySurprise
2014-11-18 15:23:41 +01:00
parent cdb05537f3
commit c504383d92
4 changed files with 7 additions and 5 deletions

View File

@@ -493,7 +493,7 @@ namespace OpenRA.FileFormats
}
}
public bool IsHqVqa { get { return (videoFlags & 0x10) == 16; } }
bool IsHqVqa { get { return (videoFlags & 0x10) == 16; } }
void WriteBlock(int blockNumber, int count, ref int x, ref int y)
{

View File

@@ -73,12 +73,12 @@ namespace OpenRA.Widgets
video.Width,
video.Height),
TextureChannel.Alpha);
var videoDisplayHeight = video.IsHqVqa ? video.Height : video.Height * AspectRatio;
var scale = Math.Min((float)RenderBounds.Width / video.Width, (float)RenderBounds.Height / videoDisplayHeight);
videoOrigin = new float2(RenderBounds.X + (RenderBounds.Width - scale * video.Width) / 2, RenderBounds.Y + (RenderBounds.Height - scale * videoDisplayHeight) / 2);
var scale = Math.Min((float)RenderBounds.Width / video.Width, (float)RenderBounds.Height / video.Height * AspectRatio);
videoOrigin = new float2(RenderBounds.X + (RenderBounds.Width - scale * video.Width) / 2, RenderBounds.Y + (RenderBounds.Height - scale * video.Height * AspectRatio) / 2);
// Round size to integer pixels. Round up to be consistent with the scale calcuation.
videoSize = new float2((int)Math.Ceiling(video.Width * scale), (int)Math.Ceiling(videoDisplayHeight * scale));
videoSize = new float2((int)Math.Ceiling(video.Width * scale), (int)Math.Ceiling(video.Height * AspectRatio * scale));
if (!DrawOverlay)
return;

View File

@@ -103,6 +103,7 @@ Container@ASSETBROWSER_PANEL:
VqaPlayer@PLAYER:
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
AspectRatio: 1
Container@FRAME_SELECTOR:
X: 190
Y: 395

View File

@@ -98,6 +98,7 @@ Background@ASSETBROWSER_PANEL:
VqaPlayer@PLAYER:
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
AspectRatio: 1
Container@FRAME_SELECTOR:
X: 190
Y: 425