| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using Ryujinx.Graphics.GAL;
- using Ryujinx.Graphics.GAL.Color;
- using Ryujinx.Graphics.GAL.Sampler;
- using System;
- namespace Ryujinx.Graphics.Gpu.Image
- {
- class Sampler : IDisposable
- {
- public ISampler HostSampler { get; }
- public Sampler(GpuContext context, SamplerDescriptor descriptor)
- {
- MinFilter minFilter = descriptor.UnpackMinFilter();
- MagFilter magFilter = descriptor.UnpackMagFilter();
- AddressMode addressU = descriptor.UnpackAddressU();
- AddressMode addressV = descriptor.UnpackAddressV();
- AddressMode addressP = descriptor.UnpackAddressP();
- CompareMode compareMode = descriptor.UnpackCompareMode();
- CompareOp compareOp = descriptor.UnpackCompareOp();
- ColorF color = new ColorF(0, 0, 0, 0);
- float minLod = descriptor.UnpackMinLod();
- float maxLod = descriptor.UnpackMaxLod();
- float mipLodBias = descriptor.UnpackMipLodBias();
- float maxAnisotropy = descriptor.UnpackMaxAnisotropy();
- HostSampler = context.Renderer.CreateSampler(new SamplerCreateInfo(
- minFilter,
- magFilter,
- addressU,
- addressV,
- addressP,
- compareMode,
- compareOp,
- color,
- minLod,
- maxLod,
- mipLodBias,
- maxAnisotropy));
- }
- public void Dispose()
- {
- HostSampler.Dispose();
- }
- }
- }
|