GPipe-Core-0.2.3.0: src/Graphics/GPipe/Sampler.hs
-----------------------------------------------------------------------------
--
-- Module : Graphics.GPipe.Sampler
-- Copyright : Tobias Bexelius
-- License : MIT
--
-- Maintainer : Tobias Bexelius
-- Stability : Experimental
-- Portability : Portable
--
-- |
-- A sampler is a value from which filtered color samples may be taken inside a shader. A sampler is created from a texture and some sampling parameters. There also exist
-- 'Shadow' samplers that doesnt return a sampled color value, but instead compare a reference value to the texture value.
-----------------------------------------------------------------------------
module Graphics.GPipe.Sampler (
-- * Sampler data types
Sampler1D(), Sampler1DArray(), Sampler2D(), Sampler2DArray(), Sampler3D(), SamplerCube(),
Shadow,
-- * Creating samplers
-- | These 'Shader' actions all take a texture and some filtering and edge options from the shader environment, and return a sampler.
newSampler1D, newSampler1DArray, newSampler2D, newSampler2DArray, newSampler3D, newSamplerCube,
newSampler1DShadow, newSampler1DArrayShadow, newSampler2DShadow, newSampler2DArrayShadow, newSamplerCubeShadow,
-- * Types for specifying sampler filter and edge mode
Filter(..),
EdgeMode(..),
EdgeMode2,
EdgeMode3,
BorderColor,
Anisotropy,
MinFilter,
MagFilter,
LodFilter,
SamplerFilter(..),
ComparisonFunction(..),
-- * Sampler properties
-- | These functions can be used to get the size of a sampler inside the shader.
sampler1DSize, sampler1DArraySize, sampler2DSize, sampler2DArraySize, sampler3DSize, samplerCubeSize,
-- * Sampling functions
-- | These functions sample a sampler using its filter and edge mode. Besides the sampler and the coordinate, many additional parameters are provided to enable many
-- different variations of sampling. In most cases when sampling in a 'FragmentStream', use 'Nothing' or 'SampleAuto' to get what you need.
-- Float coordinates are given with components in range [0,1].
sample1D, sample1DArray, sample2D, sample2DArray, sample3D, sampleCube,
-- | The following functions sample a shadow sampler using a 'ReferenceValue' to compare the texture values to. The returned value is a @S x Float@ value in the range [0,1] where 0 means false, 1 means true and any value in between is a fuzzy boolean value indicating how many adjacent texels compared true and how many compared false.
sample1DShadow, sample1DArrayShadow, sample2DShadow, sample2DArrayShadow, sampleCubeShadow,
-- | The following functions retrieve a texel value from a samplers texture without using any filtering. Coordinates for these functions are integer texel indices, and not normalized coordinates.
texelFetch1D, texelFetch1DArray, texelFetch2D, texelFetch2DArray, texelFetch3D,
-- * Sample parameter types
SampleLod(..),
SampleLod1,
SampleLod2,
SampleLod3,
SampleLod'(..),
SampleLod2',
SampleLod3',
fromLod',
SampleProj,
SampleOffset1,
SampleOffset2,
SampleOffset3,
ReferenceValue,
ColorSample,
)
where
import Graphics.GPipe.Internal.Texture