1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-07 00:42:54 +08:00

Merge pull request #8509 from bdach/fix-widescreen-storyboards

Support widescreen per-layer storyboard masking
This commit is contained in:
Dean Herbert 2020-03-31 17:47:42 +09:00 committed by GitHub
commit f2416f15a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 9 deletions

View File

@ -50,7 +50,7 @@ namespace osu.Game.Storyboards.Drawables
AddInternal(Content = new Container<DrawableStoryboardLayer>
{
Size = new Vector2(640, 480),
RelativeSizeAxes = Axes.Both,
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
});

View File

@ -8,7 +8,7 @@ using osu.Framework.Graphics.Containers;
namespace osu.Game.Storyboards.Drawables
{
public class DrawableStoryboardLayer : LifetimeManagementContainer
public class DrawableStoryboardLayer : CompositeDrawable
{
public StoryboardLayer Layer { get; }
public bool Enabled;
@ -23,17 +23,34 @@ namespace osu.Game.Storyboards.Drawables
Origin = Anchor.Centre;
Enabled = layer.VisibleWhenPassing;
Masking = layer.Masking;
InternalChild = new LayerElementContainer(layer);
}
[BackgroundDependencyLoader]
private void load(CancellationToken? cancellationToken)
private class LayerElementContainer : LifetimeManagementContainer
{
foreach (var element in Layer.Elements)
{
cancellationToken?.ThrowIfCancellationRequested();
private readonly StoryboardLayer storyboardLayer;
if (element.IsDrawable)
AddInternal(element.CreateDrawable());
public LayerElementContainer(StoryboardLayer layer)
{
storyboardLayer = layer;
Width = 640;
Height = 480;
Anchor = Anchor.Centre;
Origin = Anchor.Centre;
}
[BackgroundDependencyLoader]
private void load(CancellationToken? cancellationToken)
{
foreach (var element in storyboardLayer.Elements)
{
cancellationToken?.ThrowIfCancellationRequested();
if (element.IsDrawable)
AddInternal(element.CreateDrawable());
}
}
}
}