diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Image/TextureDependency.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Gpu/Image/TextureDependency.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Image/TextureDependency.cs b/src/Ryujinx.Graphics.Gpu/Image/TextureDependency.cs new file mode 100644 index 00000000..269ddbd9 --- /dev/null +++ b/src/Ryujinx.Graphics.Gpu/Image/TextureDependency.cs @@ -0,0 +1,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); + } + } +} |