toSamplerOptions method

SamplerOptions toSamplerOptions()

Implementation

gpu.SamplerOptions toSamplerOptions() {
  final effectiveMipFilter = mipmaps ? mipFilter : gpu.MipFilter.nearest;
  // Anisotropic filtering requires linear min/mag/mip filtering; pairing it
  // with any nearest filter is rejected, so drop it when a filter is nearest
  // (e.g. a mipmaps-off UI texture).
  final allLinear =
      minFilter == gpu.MinMagFilter.linear &&
      magFilter == gpu.MinMagFilter.linear &&
      effectiveMipFilter == gpu.MipFilter.linear;
  return gpu.SamplerOptions(
    minFilter: minFilter,
    magFilter: magFilter,
    mipFilter: effectiveMipFilter,
    widthAddressMode: addressMode,
    heightAddressMode: addressMode,
    maxAnisotropy: allLinear ? maxAnisotropy : 1,
  );
}