mirror of
https://github.com/ppy/osu.git
synced 2025-02-19 21:52:54 +08:00
Merge pull request #22755 from EVAST9919/colour-info-framework
Use `ColourInfo.Interpolate(Quad)` where possible
This commit is contained in:
commit
21ebcdf5ed
@ -11,7 +11,6 @@ using osu.Framework.Allocation;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using osu.Framework.Graphics.Rendering;
|
using osu.Framework.Graphics.Rendering;
|
||||||
using osu.Framework.Graphics.Rendering.Vertices;
|
using osu.Framework.Graphics.Rendering.Vertices;
|
||||||
using osu.Framework.Graphics.Colour;
|
|
||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
|
|
||||||
@ -259,8 +258,6 @@ namespace osu.Game.Graphics.Backgrounds
|
|||||||
Vector2Extensions.Transform(triangleQuad.BottomRight * size, DrawInfo.Matrix)
|
Vector2Extensions.Transform(triangleQuad.BottomRight * size, DrawInfo.Matrix)
|
||||||
);
|
);
|
||||||
|
|
||||||
ColourInfo colourInfo = triangleColourInfo(DrawColourInfo.Colour, triangleQuad);
|
|
||||||
|
|
||||||
RectangleF textureCoords = new RectangleF(
|
RectangleF textureCoords = new RectangleF(
|
||||||
triangleQuad.TopLeft.X - topLeft.X,
|
triangleQuad.TopLeft.X - topLeft.X,
|
||||||
triangleQuad.TopLeft.Y - topLeft.Y,
|
triangleQuad.TopLeft.Y - topLeft.Y,
|
||||||
@ -268,23 +265,12 @@ namespace osu.Game.Graphics.Backgrounds
|
|||||||
triangleQuad.Height
|
triangleQuad.Height
|
||||||
) / relativeSize;
|
) / relativeSize;
|
||||||
|
|
||||||
renderer.DrawQuad(texture, drawQuad, colourInfo, new RectangleF(0, 0, 1, 1), vertexBatch.AddAction, textureCoords: textureCoords);
|
renderer.DrawQuad(texture, drawQuad, DrawColourInfo.Colour.Interpolate(triangleQuad), new RectangleF(0, 0, 1, 1), vertexBatch.AddAction, textureCoords: textureCoords);
|
||||||
}
|
}
|
||||||
|
|
||||||
shader.Unbind();
|
shader.Unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ColourInfo triangleColourInfo(ColourInfo source, Quad quad)
|
|
||||||
{
|
|
||||||
return new ColourInfo
|
|
||||||
{
|
|
||||||
TopLeft = source.Interpolate(quad.TopLeft),
|
|
||||||
TopRight = source.Interpolate(quad.TopRight),
|
|
||||||
BottomLeft = source.Interpolate(quad.BottomLeft),
|
|
||||||
BottomRight = source.Interpolate(quad.BottomRight)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Quad clampToDrawable(Vector2 topLeft, Vector2 size)
|
private static Quad clampToDrawable(Vector2 topLeft, Vector2 size)
|
||||||
{
|
{
|
||||||
float leftClamped = Math.Clamp(topLeft.X, 0f, 1f);
|
float leftClamped = Math.Clamp(topLeft.X, 0f, 1f);
|
||||||
|
@ -249,13 +249,7 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
|
|
||||||
private ColourInfo getSegmentColour(SegmentInfo segment)
|
private ColourInfo getSegmentColour(SegmentInfo segment)
|
||||||
{
|
{
|
||||||
var segmentColour = new ColourInfo
|
var segmentColour = DrawColourInfo.Colour.Interpolate(new Quad(segment.Start, 0f, segment.End - segment.Start, 1f));
|
||||||
{
|
|
||||||
TopLeft = DrawColourInfo.Colour.Interpolate(new Vector2(segment.Start, 0f)),
|
|
||||||
TopRight = DrawColourInfo.Colour.Interpolate(new Vector2(segment.End, 0f)),
|
|
||||||
BottomLeft = DrawColourInfo.Colour.Interpolate(new Vector2(segment.Start, 1f)),
|
|
||||||
BottomRight = DrawColourInfo.Colour.Interpolate(new Vector2(segment.End, 1f))
|
|
||||||
};
|
|
||||||
|
|
||||||
var tierColour = segment.Tier >= 0 ? tierColours[segment.Tier] : new Colour4(0, 0, 0, 0);
|
var tierColour = segment.Tier >= 0 ? tierColours[segment.Tier] : new Colour4(0, 0, 0, 0);
|
||||||
segmentColour.ApplyChild(tierColour);
|
segmentColour.ApplyChild(tierColour);
|
||||||
|
Loading…
Reference in New Issue
Block a user