Implement DrawTexture functionality (#2747)
* Implement DrawTexture functionality * Non-NVIDIA support * Disable some features that should not affect draw texture (slow path) * Remove space from shader source * Match 2D engine names * Fix resolution scale and add missing XML docs * Disable transform feedback for draw texture fallback
This commit is contained in:
parent
bc00a251dd
commit
611bec6e44
14 changed files with 421 additions and 14 deletions
|
@ -0,0 +1,31 @@
|
|||
using Ryujinx.Graphics.GAL.Multithreading.Model;
|
||||
using Ryujinx.Graphics.GAL.Multithreading.Resources;
|
||||
|
||||
namespace Ryujinx.Graphics.GAL.Multithreading.Commands
|
||||
{
|
||||
struct DrawTextureCommand : IGALCommand
|
||||
{
|
||||
public CommandType CommandType => CommandType.DrawTexture;
|
||||
private TableRef<ITexture> _texture;
|
||||
private TableRef<ISampler> _sampler;
|
||||
private Extents2DF _srcRegion;
|
||||
private Extents2DF _dstRegion;
|
||||
|
||||
public void Set(TableRef<ITexture> texture, TableRef<ISampler> sampler, Extents2DF srcRegion, Extents2DF dstRegion)
|
||||
{
|
||||
_texture = texture;
|
||||
_sampler = sampler;
|
||||
_srcRegion = srcRegion;
|
||||
_dstRegion = dstRegion;
|
||||
}
|
||||
|
||||
public static void Run(ref DrawTextureCommand command, ThreadedRenderer threaded, IRenderer renderer)
|
||||
{
|
||||
renderer.Pipeline.DrawTexture(
|
||||
command._texture.GetAs<ThreadedTexture>(threaded)?.Base,
|
||||
command._sampler.GetAs<ThreadedSampler>(threaded)?.Base,
|
||||
command._srcRegion,
|
||||
command._dstRegion);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue