module Graphics.LambdaCube.Texture where
import Graphics.LambdaCube.HardwareBuffer
import Graphics.LambdaCube.PixelFormat
import Graphics.LambdaCube.Types
data TextureUsage
= TextureUsage
{ tuUsage :: Usage
, tuAutoMipmap :: Bool
, tuRenderTarget :: Bool
}
deriving (Eq,Ord)
data TextureType
= TEX_TYPE_1D
| TEX_TYPE_2D
| TEX_TYPE_3D
| TEX_TYPE_CUBE_MAP
deriving (Eq,Ord,Show)
data TextureMipmap
= MIP_UNLIMITED
| MIP_DEFAULT
| MIP_NUMBER Int
deriving (Eq,Ord)
class (Eq a, HardwareBuffer a) => Texture a where
txName :: a -> String
txWidth :: a -> Int
txHeight :: a -> Int
txDepth :: a -> Int
txNumRequestedMipmaps :: a -> TextureMipmap
txNumMipmaps :: a -> Int
txMipmapsHardwareGenerated :: a -> Bool
txGamma :: a -> FloatType
txHwGamma :: a -> Bool
txFSAA :: a -> Int
txFSAAHint :: a -> String
txTextureType :: a -> TextureType
txFormat :: a -> PixelFormat
txSrcFormat :: a -> PixelFormat
txSrcWidth :: a -> Int
txSrcHeight :: a -> Int
txSrcDepth :: a -> Int
txDesiredFormat :: a -> PixelFormat
txDesiredIntegerBitDepth :: a -> Int
txDesiredFloatBitDepth :: a -> Int
txTreatLuminanceAsAlpha :: a -> Bool