1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 09:42:54 +08:00

Merge pull request #87 from Tom94/unified_shader

Unified shader
This commit is contained in:
Dean Herbert 2016-10-16 22:34:50 +09:00 committed by GitHub
commit 96095f34e2
15 changed files with 16 additions and 57 deletions

@ -1 +1 @@
Subproject commit 8591632d904e83fd408a378bb753e884c82d6308
Subproject commit 5dc6a02088d0fac39810fc2da26ac0de72551939

View File

@ -6,7 +6,6 @@ using System.Collections.Generic;
using osu.Framework.GameModes;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations;
using osu.Framework.Graphics.UserInterface;

View File

@ -4,7 +4,6 @@ using OpenTK.Input;
using osu.Framework;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations;
@ -21,7 +20,7 @@ namespace osu.Game.GameModes.Menu
public class Button : AutoSizeContainer, IStateful<ButtonState>
{
private Container iconText;
private WedgedBox box;
private Box box;
private Color4 colour;
private TextAwesome icon;
private string internalName;
@ -31,7 +30,10 @@ namespace osu.Game.GameModes.Menu
private Key triggerKey;
private string text;
public override Quad ScreenSpaceInputQuad => box.ScreenSpaceInputQuad;
public override bool Contains(Vector2 screenSpacePos)
{
return box.Contains(screenSpacePos);
}
public Button(string text, string internalName, FontAwesome symbol, Color4 colour, Action clickAction = null, float extraWidth = 0, Key triggerKey = Key.Unknown)
{
@ -49,14 +51,18 @@ namespace osu.Game.GameModes.Menu
base.Load(game);
Alpha = 0;
Vector2 boxSize = new Vector2(ButtonSystem.button_width + Math.Abs(extraWidth), ButtonSystem.button_area_height);
Children = new Drawable[]
{
box = new WedgedBox(new Vector2(ButtonSystem.button_width + Math.Abs(extraWidth), ButtonSystem.button_area_height), ButtonSystem.wedge_width)
box = new Box
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Colour = colour,
Scale = new Vector2(0, 1)
Scale = new Vector2(0, 1),
Size = boxSize,
Shear = new Vector2(ButtonSystem.wedge_width / boxSize.Y, 0),
},
iconText = new AutoSizeContainer
{
@ -267,42 +273,6 @@ namespace osu.Game.GameModes.Menu
}
}
}
/// <summary>
/// ________
/// / /
/// / /
/// /_______/
/// </summary>
class WedgedBox : Box
{
float wedgeWidth;
public WedgedBox(Vector2 boxSize, float wedgeWidth)
{
Size = boxSize;
this.wedgeWidth = wedgeWidth;
}
/// <summary>
/// Custom DrawQuad used to create the slanted effect.
/// </summary>
protected override Quad DrawQuad
{
get
{
Quad q = base.DrawQuad;
//Will become infinite if we don't limit its maximum size.
float wedge = Math.Min(q.Width, wedgeWidth / Scale.X);
q.TopLeft.X += wedge;
q.BottomRight.X -= wedge;
return q;
}
}
}
}
public enum ButtonState

View File

@ -6,13 +6,10 @@ using System.Collections.Generic;
using System.Linq;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations;
using osu.Framework.Input;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Input;

View File

@ -3,7 +3,6 @@
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using OpenTK;
using OpenTK.Graphics;

View File

@ -3,7 +3,6 @@
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using OpenTK;
using OpenTK.Graphics;

View File

@ -3,9 +3,9 @@
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using OpenTK;
using osu.Framework;
using osu.Framework.Graphics.Sprites;
namespace osu.Game.GameModes.Play.Osu
{

View File

@ -3,7 +3,6 @@
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using OpenTK;
using OpenTK.Graphics;

View File

@ -5,7 +5,6 @@ using System;
using osu.Framework.Configuration;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using OpenTK;
using OpenTK.Graphics;

View File

@ -9,7 +9,6 @@ using OpenTK.Graphics;
using osu.Framework;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations;
using osu.Framework.Threading;

View File

@ -7,7 +7,7 @@ using OpenTK.Input;
using osu.Framework;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations;
using osu.Framework.Input;

View File

@ -7,11 +7,11 @@ using OpenTK.Graphics;
using osu.Framework;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Transformations;
using osu.Game.Configuration;
using osu.Game.GameModes.Play;
using osu.Game.Graphics;
using osu.Framework.Graphics.Sprites;
namespace osu.Game.Overlays
{

View File

@ -4,7 +4,6 @@
using System;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Input;
using osu.Game.Graphics;

View File

@ -6,12 +6,12 @@ using System.Linq;
using osu.Framework.Cached;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Transformations;
using osu.Game.GameModes.Play;
using OpenTK;
using OpenTK.Graphics;
using osu.Framework;
using osu.Framework.Graphics.Sprites;
namespace osu.Game.Overlays
{

View File

@ -1,7 +1,6 @@
using osu.Framework.Configuration;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations;
using osu.Framework.Input;