| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using OpenTK.Graphics.OpenGL;
- using Ryujinx.Graphics.GAL;
- namespace Ryujinx.Graphics.OpenGL.Image
- {
- class TextureBase
- {
- public int Handle { get; protected set; }
- public TextureCreateInfo Info { get; }
- public int Width => Info.Width;
- public int Height => Info.Height;
- public float ScaleFactor { get; }
- public Target Target => Info.Target;
- public Format Format => Info.Format;
- public TextureBase(TextureCreateInfo info, float scaleFactor = 1f)
- {
- Info = info;
- ScaleFactor = scaleFactor;
- Handle = GL.GenTexture();
- }
- public void Bind(int unit)
- {
- Bind(Target.Convert(), unit);
- }
- protected void Bind(TextureTarget target, int unit)
- {
- GL.ActiveTexture(TextureUnit.Texture0 + unit);
- GL.BindTexture(target, Handle);
- }
- public static void ClearBinding(int unit)
- {
- GL.ActiveTexture(TextureUnit.Texture0 + unit);
- GL.BindTextureUnit(unit, 0);
- }
- }
- }
|