aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Image/TextureDependency.cs
blob: 45a5a3973f8da7340b93812e9e6796564f7893bf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
namespace Ryujinx.Graphics.Gpu.Image
{
    /// <summary>
    /// One side of a two-way dependency between one texture view and another.
    /// Contains a reference to the handle owning the dependency, and the other dependency.
    /// </summary>
    class TextureDependency
    {
        /// <summary>
        /// The handle that owns this dependency.
        /// </summary>
        public TextureGroupHandle Handle;

        /// <summary>
        /// The other dependency linked to this one, which belongs to another handle.
        /// </summary>
        public TextureDependency Other;

        /// <summary>
        /// Create a new texture dependency.
        /// </summary>
        /// <param name="handle">The handle that owns the dependency</param>
        public TextureDependency(TextureGroupHandle handle)
        {
            Handle = handle;
        }

        /// <summary>
        /// Signal that the owner of this dependency has been modified,
        /// meaning that the other dependency's handle must defer a copy from it.
        /// </summary>
        public void SignalModified()
        {
            Other.Handle.DeferCopy(Handle);
        }
    }
}