| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using OpenTK.Graphics.OpenGL;
- using Ryujinx.Graphics.GAL;
- using System;
- namespace Ryujinx.Graphics.OpenGL.Image
- {
- class TextureBase
- {
- public int Handle { get; protected set; }
- public TextureCreateInfo Info { get; }
- public int Width { get; }
- public int Height { get; }
- public float ScaleFactor { get; }
- public Target Target => Info.Target;
- public Format Format => Info.Format;
- public TextureBase(TextureCreateInfo info, float scaleFactor = 1f)
- {
- Info = info;
- Width = (int)Math.Ceiling(Info.Width * scaleFactor);
- Height = (int)Math.Ceiling(Info.Height * scaleFactor);
- 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);
- }
- }
- }
|