1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-06 18:27:18 +08:00

58 lines
1.3 KiB
C#
Raw Normal View History

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2018-04-13 18:19:50 +09:00
using System;
using osu.Framework.Audio.Sample;
using osu.Framework.Bindables;
2018-04-13 18:19:50 +09:00
using osu.Framework.Graphics;
using osu.Framework.Graphics.Textures;
2019-08-23 14:32:43 +03:00
using osu.Game.Audio;
2018-04-13 18:19:50 +09:00
namespace osu.Game.Skinning
{
2019-04-25 17:36:17 +09:00
public abstract class Skin : IDisposable, ISkin
2018-04-13 18:19:50 +09:00
{
public readonly SkinInfo SkinInfo;
public SkinConfiguration Configuration { get; protected set; }
2018-04-13 18:19:50 +09:00
public abstract Drawable GetDrawableComponent(ISkinComponent componentName);
2018-04-13 18:19:50 +09:00
2019-08-23 14:32:43 +03:00
public abstract SampleChannel GetSample(ISampleInfo sampleInfo);
2018-04-13 18:19:50 +09:00
public abstract Texture GetTexture(string componentName);
public abstract IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup);
2018-04-13 18:19:50 +09:00
protected Skin(SkinInfo skin)
{
SkinInfo = skin;
}
#region Disposal
~Skin()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private bool isDisposed;
protected virtual void Dispose(bool isDisposing)
{
if (isDisposed)
return;
2019-02-28 13:31:40 +09:00
2018-04-13 18:19:50 +09:00
isDisposed = true;
}
#endregion
}
}