module Graphics.Rendering.OpenGL.GL.Texturing.Specification (
TextureTarget1D(..),
TextureTarget2D(..),
TextureTarget2DMultisample(..),
TextureTargetCubeMap(..),
TextureTargetCubeMapFace(..),
TextureTarget3D(..),
TextureTarget2DMultisampleArray(..),
TextureTargetBuffer(..),
BindableTextureTarget,
ParameterizedTextureTarget,
OneDimensionalTextureTarget,
TwoDimensionalTextureTarget,
ThreeDimensionalTextureTarget,
QueryableTextureTarget,
GettableTextureTarget,
Level, Border,
TexturePosition1D(..), TexturePosition2D(..), TexturePosition3D(..),
TextureSize1D(..), TextureSize2D(..), TextureSize3D(..),
texImage1D, texImage2D, texImage3D,
copyTexImage1D, copyTexImage2D,
texSubImage1D, texSubImage2D, texSubImage3D,
getTexImage,
copyTexSubImage1D, copyTexSubImage2D, copyTexSubImage3D,
CompressedTextureFormat(..), compressedTextureFormats,
CompressedPixelData(..),
compressedTexImage1D, compressedTexImage2D, compressedTexImage3D,
compressedTexSubImage1D, compressedTexSubImage2D, compressedTexSubImage3D,
getCompressedTexImage,
SampleLocations(..), texImage2DMultisample, texImage3DMultisample,
maxTextureSize, maxCubeMapTextureSize, maxRectangleTextureSize,
max3DTextureSize, maxArrayTextureLayers, maxSampleMaskWords,
maxColorTextureSamples, maxDepthTextureSamples, maxIntegerSamples
) where
import Foreign.Ptr
import Data.StateVar
import Graphics.Rendering.OpenGL.GL.CoordTrans
import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTarget
import Graphics.Rendering.OpenGL.GL.GLboolean
import Graphics.Rendering.OpenGL.GL.PixelData
import Graphics.Rendering.OpenGL.GL.PixelRectangles
import Graphics.Rendering.OpenGL.GL.QueryUtils
import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat
import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget
import Graphics.GL
type Level = GLint
type Border = GLint
newtype TexturePosition1D = TexturePosition1D GLint
deriving ( TexturePosition1D -> TexturePosition1D -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TexturePosition1D -> TexturePosition1D -> Bool
$c/= :: TexturePosition1D -> TexturePosition1D -> Bool
== :: TexturePosition1D -> TexturePosition1D -> Bool
$c== :: TexturePosition1D -> TexturePosition1D -> Bool
Eq, Eq TexturePosition1D
TexturePosition1D -> TexturePosition1D -> Bool
TexturePosition1D -> TexturePosition1D -> Ordering
TexturePosition1D -> TexturePosition1D -> TexturePosition1D
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TexturePosition1D -> TexturePosition1D -> TexturePosition1D
$cmin :: TexturePosition1D -> TexturePosition1D -> TexturePosition1D
max :: TexturePosition1D -> TexturePosition1D -> TexturePosition1D
$cmax :: TexturePosition1D -> TexturePosition1D -> TexturePosition1D
>= :: TexturePosition1D -> TexturePosition1D -> Bool
$c>= :: TexturePosition1D -> TexturePosition1D -> Bool
> :: TexturePosition1D -> TexturePosition1D -> Bool
$c> :: TexturePosition1D -> TexturePosition1D -> Bool
<= :: TexturePosition1D -> TexturePosition1D -> Bool
$c<= :: TexturePosition1D -> TexturePosition1D -> Bool
< :: TexturePosition1D -> TexturePosition1D -> Bool
$c< :: TexturePosition1D -> TexturePosition1D -> Bool
compare :: TexturePosition1D -> TexturePosition1D -> Ordering
$ccompare :: TexturePosition1D -> TexturePosition1D -> Ordering
Ord, Int -> TexturePosition1D -> ShowS
[TexturePosition1D] -> ShowS
TexturePosition1D -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TexturePosition1D] -> ShowS
$cshowList :: [TexturePosition1D] -> ShowS
show :: TexturePosition1D -> String
$cshow :: TexturePosition1D -> String
showsPrec :: Int -> TexturePosition1D -> ShowS
$cshowsPrec :: Int -> TexturePosition1D -> ShowS
Show )
data TexturePosition2D = TexturePosition2D !GLint !GLint
deriving ( TexturePosition2D -> TexturePosition2D -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TexturePosition2D -> TexturePosition2D -> Bool
$c/= :: TexturePosition2D -> TexturePosition2D -> Bool
== :: TexturePosition2D -> TexturePosition2D -> Bool
$c== :: TexturePosition2D -> TexturePosition2D -> Bool
Eq, Eq TexturePosition2D
TexturePosition2D -> TexturePosition2D -> Bool
TexturePosition2D -> TexturePosition2D -> Ordering
TexturePosition2D -> TexturePosition2D -> TexturePosition2D
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TexturePosition2D -> TexturePosition2D -> TexturePosition2D
$cmin :: TexturePosition2D -> TexturePosition2D -> TexturePosition2D
max :: TexturePosition2D -> TexturePosition2D -> TexturePosition2D
$cmax :: TexturePosition2D -> TexturePosition2D -> TexturePosition2D
>= :: TexturePosition2D -> TexturePosition2D -> Bool
$c>= :: TexturePosition2D -> TexturePosition2D -> Bool
> :: TexturePosition2D -> TexturePosition2D -> Bool
$c> :: TexturePosition2D -> TexturePosition2D -> Bool
<= :: TexturePosition2D -> TexturePosition2D -> Bool
$c<= :: TexturePosition2D -> TexturePosition2D -> Bool
< :: TexturePosition2D -> TexturePosition2D -> Bool
$c< :: TexturePosition2D -> TexturePosition2D -> Bool
compare :: TexturePosition2D -> TexturePosition2D -> Ordering
$ccompare :: TexturePosition2D -> TexturePosition2D -> Ordering
Ord, Int -> TexturePosition2D -> ShowS
[TexturePosition2D] -> ShowS
TexturePosition2D -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TexturePosition2D] -> ShowS
$cshowList :: [TexturePosition2D] -> ShowS
show :: TexturePosition2D -> String
$cshow :: TexturePosition2D -> String
showsPrec :: Int -> TexturePosition2D -> ShowS
$cshowsPrec :: Int -> TexturePosition2D -> ShowS
Show )
data TexturePosition3D = TexturePosition3D !GLint !GLint !GLint
deriving ( TexturePosition3D -> TexturePosition3D -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TexturePosition3D -> TexturePosition3D -> Bool
$c/= :: TexturePosition3D -> TexturePosition3D -> Bool
== :: TexturePosition3D -> TexturePosition3D -> Bool
$c== :: TexturePosition3D -> TexturePosition3D -> Bool
Eq, Eq TexturePosition3D
TexturePosition3D -> TexturePosition3D -> Bool
TexturePosition3D -> TexturePosition3D -> Ordering
TexturePosition3D -> TexturePosition3D -> TexturePosition3D
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TexturePosition3D -> TexturePosition3D -> TexturePosition3D
$cmin :: TexturePosition3D -> TexturePosition3D -> TexturePosition3D
max :: TexturePosition3D -> TexturePosition3D -> TexturePosition3D
$cmax :: TexturePosition3D -> TexturePosition3D -> TexturePosition3D
>= :: TexturePosition3D -> TexturePosition3D -> Bool
$c>= :: TexturePosition3D -> TexturePosition3D -> Bool
> :: TexturePosition3D -> TexturePosition3D -> Bool
$c> :: TexturePosition3D -> TexturePosition3D -> Bool
<= :: TexturePosition3D -> TexturePosition3D -> Bool
$c<= :: TexturePosition3D -> TexturePosition3D -> Bool
< :: TexturePosition3D -> TexturePosition3D -> Bool
$c< :: TexturePosition3D -> TexturePosition3D -> Bool
compare :: TexturePosition3D -> TexturePosition3D -> Ordering
$ccompare :: TexturePosition3D -> TexturePosition3D -> Ordering
Ord, Int -> TexturePosition3D -> ShowS
[TexturePosition3D] -> ShowS
TexturePosition3D -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TexturePosition3D] -> ShowS
$cshowList :: [TexturePosition3D] -> ShowS
show :: TexturePosition3D -> String
$cshow :: TexturePosition3D -> String
showsPrec :: Int -> TexturePosition3D -> ShowS
$cshowsPrec :: Int -> TexturePosition3D -> ShowS
Show )
newtype TextureSize1D = TextureSize1D GLsizei
deriving ( TextureSize1D -> TextureSize1D -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TextureSize1D -> TextureSize1D -> Bool
$c/= :: TextureSize1D -> TextureSize1D -> Bool
== :: TextureSize1D -> TextureSize1D -> Bool
$c== :: TextureSize1D -> TextureSize1D -> Bool
Eq, Eq TextureSize1D
TextureSize1D -> TextureSize1D -> Bool
TextureSize1D -> TextureSize1D -> Ordering
TextureSize1D -> TextureSize1D -> TextureSize1D
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TextureSize1D -> TextureSize1D -> TextureSize1D
$cmin :: TextureSize1D -> TextureSize1D -> TextureSize1D
max :: TextureSize1D -> TextureSize1D -> TextureSize1D
$cmax :: TextureSize1D -> TextureSize1D -> TextureSize1D
>= :: TextureSize1D -> TextureSize1D -> Bool
$c>= :: TextureSize1D -> TextureSize1D -> Bool
> :: TextureSize1D -> TextureSize1D -> Bool
$c> :: TextureSize1D -> TextureSize1D -> Bool
<= :: TextureSize1D -> TextureSize1D -> Bool
$c<= :: TextureSize1D -> TextureSize1D -> Bool
< :: TextureSize1D -> TextureSize1D -> Bool
$c< :: TextureSize1D -> TextureSize1D -> Bool
compare :: TextureSize1D -> TextureSize1D -> Ordering
$ccompare :: TextureSize1D -> TextureSize1D -> Ordering
Ord, Int -> TextureSize1D -> ShowS
[TextureSize1D] -> ShowS
TextureSize1D -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TextureSize1D] -> ShowS
$cshowList :: [TextureSize1D] -> ShowS
show :: TextureSize1D -> String
$cshow :: TextureSize1D -> String
showsPrec :: Int -> TextureSize1D -> ShowS
$cshowsPrec :: Int -> TextureSize1D -> ShowS
Show )
data TextureSize2D = TextureSize2D !GLsizei !GLsizei
deriving ( TextureSize2D -> TextureSize2D -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TextureSize2D -> TextureSize2D -> Bool
$c/= :: TextureSize2D -> TextureSize2D -> Bool
== :: TextureSize2D -> TextureSize2D -> Bool
$c== :: TextureSize2D -> TextureSize2D -> Bool
Eq, Eq TextureSize2D
TextureSize2D -> TextureSize2D -> Bool
TextureSize2D -> TextureSize2D -> Ordering
TextureSize2D -> TextureSize2D -> TextureSize2D
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TextureSize2D -> TextureSize2D -> TextureSize2D
$cmin :: TextureSize2D -> TextureSize2D -> TextureSize2D
max :: TextureSize2D -> TextureSize2D -> TextureSize2D
$cmax :: TextureSize2D -> TextureSize2D -> TextureSize2D
>= :: TextureSize2D -> TextureSize2D -> Bool
$c>= :: TextureSize2D -> TextureSize2D -> Bool
> :: TextureSize2D -> TextureSize2D -> Bool
$c> :: TextureSize2D -> TextureSize2D -> Bool
<= :: TextureSize2D -> TextureSize2D -> Bool
$c<= :: TextureSize2D -> TextureSize2D -> Bool
< :: TextureSize2D -> TextureSize2D -> Bool
$c< :: TextureSize2D -> TextureSize2D -> Bool
compare :: TextureSize2D -> TextureSize2D -> Ordering
$ccompare :: TextureSize2D -> TextureSize2D -> Ordering
Ord, Int -> TextureSize2D -> ShowS
[TextureSize2D] -> ShowS
TextureSize2D -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TextureSize2D] -> ShowS
$cshowList :: [TextureSize2D] -> ShowS
show :: TextureSize2D -> String
$cshow :: TextureSize2D -> String
showsPrec :: Int -> TextureSize2D -> ShowS
$cshowsPrec :: Int -> TextureSize2D -> ShowS
Show )
data TextureSize3D = TextureSize3D !GLsizei !GLsizei !GLsizei
deriving ( TextureSize3D -> TextureSize3D -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TextureSize3D -> TextureSize3D -> Bool
$c/= :: TextureSize3D -> TextureSize3D -> Bool
== :: TextureSize3D -> TextureSize3D -> Bool
$c== :: TextureSize3D -> TextureSize3D -> Bool
Eq, Eq TextureSize3D
TextureSize3D -> TextureSize3D -> Bool
TextureSize3D -> TextureSize3D -> Ordering
TextureSize3D -> TextureSize3D -> TextureSize3D
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TextureSize3D -> TextureSize3D -> TextureSize3D
$cmin :: TextureSize3D -> TextureSize3D -> TextureSize3D
max :: TextureSize3D -> TextureSize3D -> TextureSize3D
$cmax :: TextureSize3D -> TextureSize3D -> TextureSize3D
>= :: TextureSize3D -> TextureSize3D -> Bool
$c>= :: TextureSize3D -> TextureSize3D -> Bool
> :: TextureSize3D -> TextureSize3D -> Bool
$c> :: TextureSize3D -> TextureSize3D -> Bool
<= :: TextureSize3D -> TextureSize3D -> Bool
$c<= :: TextureSize3D -> TextureSize3D -> Bool
< :: TextureSize3D -> TextureSize3D -> Bool
$c< :: TextureSize3D -> TextureSize3D -> Bool
compare :: TextureSize3D -> TextureSize3D -> Ordering
$ccompare :: TextureSize3D -> TextureSize3D -> Ordering
Ord, Int -> TextureSize3D -> ShowS
[TextureSize3D] -> ShowS
TextureSize3D -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TextureSize3D] -> ShowS
$cshowList :: [TextureSize3D] -> ShowS
show :: TextureSize3D -> String
$cshow :: TextureSize3D -> String
showsPrec :: Int -> TextureSize3D -> ShowS
$cshowsPrec :: Int -> TextureSize3D -> ShowS
Show )
texImage1D :: OneDimensionalTextureTarget t => t -> Proxy -> Level -> PixelInternalFormat -> TextureSize1D -> Border -> PixelData a -> IO ()
texImage1D :: forall t a.
OneDimensionalTextureTarget t =>
t
-> Proxy
-> GLint
-> PixelInternalFormat
-> TextureSize1D
-> GLint
-> PixelData a
-> IO ()
texImage1D t
target Proxy
proxy GLint
level PixelInternalFormat
int (TextureSize1D GLint
w) GLint
border PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLenum
-> Ptr a
-> m ()
glTexImage1D
(forall t. OneDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalOneDimensionalTextureTarget Proxy
proxy t
target)
GLint
level (PixelInternalFormat -> GLint
marshalPixelInternalFormat PixelInternalFormat
int) GLint
w GLint
border
texImage2D :: TwoDimensionalTextureTarget t => t -> Proxy -> Level -> PixelInternalFormat -> TextureSize2D -> Border -> PixelData a -> IO ()
texImage2D :: forall t a.
TwoDimensionalTextureTarget t =>
t
-> Proxy
-> GLint
-> PixelInternalFormat
-> TextureSize2D
-> GLint
-> PixelData a
-> IO ()
texImage2D t
target Proxy
proxy GLint
level PixelInternalFormat
int (TextureSize2D GLint
w GLint
h) GLint
border PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLenum
-> Ptr a
-> m ()
glTexImage2D (forall t. TwoDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalTwoDimensionalTextureTarget Proxy
proxy t
target) GLint
level (PixelInternalFormat -> GLint
marshalPixelInternalFormat PixelInternalFormat
int) GLint
w GLint
h GLint
border
texImage3D :: ThreeDimensionalTextureTarget t => t -> Proxy -> Level -> PixelInternalFormat -> TextureSize3D -> Border -> PixelData a -> IO ()
texImage3D :: forall t a.
ThreeDimensionalTextureTarget t =>
t
-> Proxy
-> GLint
-> PixelInternalFormat
-> TextureSize3D
-> GLint
-> PixelData a
-> IO ()
texImage3D t
target Proxy
proxy GLint
level PixelInternalFormat
int (TextureSize3D GLint
w GLint
h GLint
d) GLint
border PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLenum
-> Ptr a
-> m ()
glTexImage3D
(forall t. ThreeDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalThreeDimensionalTextureTarget Proxy
proxy t
target)
GLint
level (PixelInternalFormat -> GLint
marshalPixelInternalFormat PixelInternalFormat
int) GLint
w GLint
h GLint
d GLint
border
getTexImage :: GettableTextureTarget t => t -> Level -> PixelData a -> IO ()
getTexImage :: forall t a.
GettableTextureTarget t =>
t -> GLint -> PixelData a -> IO ()
getTexImage t
target GLint
level PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glGetTexImage (forall t. GettableTextureTarget t => t -> GLenum
marshalGettableTextureTarget t
target) GLint
level
copyTexImage1D :: OneDimensionalTextureTarget t => t -> Level -> PixelInternalFormat -> Position -> TextureSize1D -> Border -> IO ()
copyTexImage1D :: forall t.
OneDimensionalTextureTarget t =>
t
-> GLint
-> PixelInternalFormat
-> Position
-> TextureSize1D
-> GLint
-> IO ()
copyTexImage1D t
target GLint
level PixelInternalFormat
int (Position GLint
x GLint
y) (TextureSize1D GLint
w) GLint
border =
forall (m :: * -> *).
MonadIO m =>
GLenum
-> GLint -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glCopyTexImage1D
(forall t. OneDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalOneDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level
(PixelInternalFormat -> GLenum
marshalPixelInternalFormat' PixelInternalFormat
int) GLint
x GLint
y GLint
w GLint
border
copyTexImage2D :: TwoDimensionalTextureTarget t => t -> Level -> PixelInternalFormat -> Position -> TextureSize2D -> Border -> IO ()
copyTexImage2D :: forall t.
TwoDimensionalTextureTarget t =>
t
-> GLint
-> PixelInternalFormat
-> Position
-> TextureSize2D
-> GLint
-> IO ()
copyTexImage2D t
target GLint
level PixelInternalFormat
int (Position GLint
x GLint
y) (TextureSize2D GLint
w GLint
h) GLint
border =
forall (m :: * -> *).
MonadIO m =>
GLenum
-> GLint
-> GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> m ()
glCopyTexImage2D
(forall t. TwoDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalTwoDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level
(PixelInternalFormat -> GLenum
marshalPixelInternalFormat' PixelInternalFormat
int) GLint
x GLint
y GLint
w GLint
h GLint
border
texSubImage1D :: OneDimensionalTextureTarget t => t -> Level -> TexturePosition1D -> TextureSize1D -> PixelData a -> IO ()
texSubImage1D :: forall t a.
OneDimensionalTextureTarget t =>
t
-> GLint
-> TexturePosition1D
-> TextureSize1D
-> PixelData a
-> IO ()
texSubImage1D t
target GLint
level (TexturePosition1D GLint
xOff) (TextureSize1D GLint
w) PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint -> GLint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTexSubImage1D (forall t. OneDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalOneDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
w
texSubImage2D :: TwoDimensionalTextureTarget t => t -> Level -> TexturePosition2D -> TextureSize2D -> PixelData a -> IO ()
texSubImage2D :: forall t a.
TwoDimensionalTextureTarget t =>
t
-> GLint
-> TexturePosition2D
-> TextureSize2D
-> PixelData a
-> IO ()
texSubImage2D t
target GLint
level (TexturePosition2D GLint
xOff GLint
yOff) (TextureSize2D GLint
w GLint
h) PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLenum
-> Ptr a
-> m ()
glTexSubImage2D (forall t. TwoDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalTwoDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
yOff GLint
w GLint
h
texSubImage3D :: ThreeDimensionalTextureTarget t => t -> Level -> TexturePosition3D -> TextureSize3D -> PixelData a -> IO ()
texSubImage3D :: forall t a.
ThreeDimensionalTextureTarget t =>
t
-> GLint
-> TexturePosition3D
-> TextureSize3D
-> PixelData a
-> IO ()
texSubImage3D t
target GLint
level (TexturePosition3D GLint
xOff GLint
yOff GLint
zOff) (TextureSize3D GLint
w GLint
h GLint
d) PixelData a
pd =
forall a b. PixelData a -> (GLenum -> GLenum -> Ptr a -> b) -> b
withPixelData PixelData a
pd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLenum
-> Ptr a
-> m ()
glTexSubImage3D (forall t. ThreeDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalThreeDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
yOff GLint
zOff GLint
w GLint
h GLint
d
copyTexSubImage1D :: OneDimensionalTextureTarget t => t -> Level -> TexturePosition1D -> Position -> TextureSize1D -> IO ()
copyTexSubImage1D :: forall t.
OneDimensionalTextureTarget t =>
t
-> GLint -> TexturePosition1D -> Position -> TextureSize1D -> IO ()
copyTexSubImage1D t
target GLint
level (TexturePosition1D GLint
xOff) (Position GLint
x GLint
y) (TextureSize1D GLint
w) =
forall (m :: * -> *).
MonadIO m =>
GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glCopyTexSubImage1D (forall t. OneDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalOneDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
x GLint
y GLint
w
copyTexSubImage2D :: TwoDimensionalTextureTarget t => t -> Level -> TexturePosition2D -> Position -> TextureSize2D -> IO ()
copyTexSubImage2D :: forall t.
TwoDimensionalTextureTarget t =>
t
-> GLint -> TexturePosition2D -> Position -> TextureSize2D -> IO ()
copyTexSubImage2D t
target GLint
level (TexturePosition2D GLint
xOff GLint
yOff) (Position GLint
x GLint
y) (TextureSize2D GLint
w GLint
h) =
forall (m :: * -> *).
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> m ()
glCopyTexSubImage2D (forall t. TwoDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalTwoDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
yOff GLint
x GLint
y GLint
w GLint
h
copyTexSubImage3D :: ThreeDimensionalTextureTarget t => t -> Level -> TexturePosition3D -> Position -> TextureSize2D -> IO ()
copyTexSubImage3D :: forall t.
ThreeDimensionalTextureTarget t =>
t
-> GLint -> TexturePosition3D -> Position -> TextureSize2D -> IO ()
copyTexSubImage3D t
target GLint
level (TexturePosition3D GLint
xOff GLint
yOff GLint
zOff) (Position GLint
x GLint
y) (TextureSize2D GLint
w GLint
h) =
forall (m :: * -> *).
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> m ()
glCopyTexSubImage3D (forall t. ThreeDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalThreeDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
yOff GLint
zOff GLint
x GLint
y GLint
w GLint
h
newtype CompressedTextureFormat = CompressedTextureFormat GLenum
deriving ( CompressedTextureFormat -> CompressedTextureFormat -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
$c/= :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
== :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
$c== :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
Eq, Eq CompressedTextureFormat
CompressedTextureFormat -> CompressedTextureFormat -> Bool
CompressedTextureFormat -> CompressedTextureFormat -> Ordering
CompressedTextureFormat
-> CompressedTextureFormat -> CompressedTextureFormat
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CompressedTextureFormat
-> CompressedTextureFormat -> CompressedTextureFormat
$cmin :: CompressedTextureFormat
-> CompressedTextureFormat -> CompressedTextureFormat
max :: CompressedTextureFormat
-> CompressedTextureFormat -> CompressedTextureFormat
$cmax :: CompressedTextureFormat
-> CompressedTextureFormat -> CompressedTextureFormat
>= :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
$c>= :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
> :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
$c> :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
<= :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
$c<= :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
< :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
$c< :: CompressedTextureFormat -> CompressedTextureFormat -> Bool
compare :: CompressedTextureFormat -> CompressedTextureFormat -> Ordering
$ccompare :: CompressedTextureFormat -> CompressedTextureFormat -> Ordering
Ord, Int -> CompressedTextureFormat -> ShowS
[CompressedTextureFormat] -> ShowS
CompressedTextureFormat -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompressedTextureFormat] -> ShowS
$cshowList :: [CompressedTextureFormat] -> ShowS
show :: CompressedTextureFormat -> String
$cshow :: CompressedTextureFormat -> String
showsPrec :: Int -> CompressedTextureFormat -> ShowS
$cshowsPrec :: Int -> CompressedTextureFormat -> ShowS
Show )
compressedTextureFormats :: GettableStateVar [CompressedTextureFormat]
compressedTextureFormats :: GettableStateVar [CompressedTextureFormat]
compressedTextureFormats =
forall a. IO a -> IO a
makeGettableStateVar forall a b. (a -> b) -> a -> b
$ do
Int
n <- forall p a. GetPName1I p => (GLint -> a) -> p -> IO a
getInteger1 forall a b. (Integral a, Num b) => a -> b
fromIntegral PName1I
GetNumCompressedTextureFormats
forall p a. GetPNameNI p => (GLenum -> a) -> p -> Int -> IO [a]
getEnumN GLenum -> CompressedTextureFormat
CompressedTextureFormat PNameNI
GetCompressedTextureFormats Int
n
data CompressedPixelData a =
CompressedPixelData !CompressedTextureFormat GLsizei (Ptr a)
deriving ( CompressedPixelData a -> CompressedPixelData a -> Bool
forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompressedPixelData a -> CompressedPixelData a -> Bool
$c/= :: forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
== :: CompressedPixelData a -> CompressedPixelData a -> Bool
$c== :: forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
Eq, CompressedPixelData a -> CompressedPixelData a -> Bool
CompressedPixelData a -> CompressedPixelData a -> Ordering
forall a. Eq (CompressedPixelData a)
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
forall a.
CompressedPixelData a -> CompressedPixelData a -> Ordering
forall a.
CompressedPixelData a
-> CompressedPixelData a -> CompressedPixelData a
min :: CompressedPixelData a
-> CompressedPixelData a -> CompressedPixelData a
$cmin :: forall a.
CompressedPixelData a
-> CompressedPixelData a -> CompressedPixelData a
max :: CompressedPixelData a
-> CompressedPixelData a -> CompressedPixelData a
$cmax :: forall a.
CompressedPixelData a
-> CompressedPixelData a -> CompressedPixelData a
>= :: CompressedPixelData a -> CompressedPixelData a -> Bool
$c>= :: forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
> :: CompressedPixelData a -> CompressedPixelData a -> Bool
$c> :: forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
<= :: CompressedPixelData a -> CompressedPixelData a -> Bool
$c<= :: forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
< :: CompressedPixelData a -> CompressedPixelData a -> Bool
$c< :: forall a. CompressedPixelData a -> CompressedPixelData a -> Bool
compare :: CompressedPixelData a -> CompressedPixelData a -> Ordering
$ccompare :: forall a.
CompressedPixelData a -> CompressedPixelData a -> Ordering
Ord, Int -> CompressedPixelData a -> ShowS
forall a. Int -> CompressedPixelData a -> ShowS
forall a. [CompressedPixelData a] -> ShowS
forall a. CompressedPixelData a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompressedPixelData a] -> ShowS
$cshowList :: forall a. [CompressedPixelData a] -> ShowS
show :: CompressedPixelData a -> String
$cshow :: forall a. CompressedPixelData a -> String
showsPrec :: Int -> CompressedPixelData a -> ShowS
$cshowsPrec :: forall a. Int -> CompressedPixelData a -> ShowS
Show )
withCompressedPixelData ::
CompressedPixelData a -> (GLenum -> GLsizei -> Ptr a -> b) -> b
withCompressedPixelData :: forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData
(CompressedPixelData (CompressedTextureFormat GLenum
fmt) GLint
size Ptr a
ptr) GLenum -> GLint -> Ptr a -> b
f =
GLenum -> GLint -> Ptr a -> b
f GLenum
fmt GLint
size Ptr a
ptr
compressedTexImage1D :: OneDimensionalTextureTarget t => t -> Proxy -> Level -> TextureSize1D -> Border -> CompressedPixelData a -> IO ()
compressedTexImage1D :: forall t a.
OneDimensionalTextureTarget t =>
t
-> Proxy
-> GLint
-> TextureSize1D
-> GLint
-> CompressedPixelData a
-> IO ()
compressedTexImage1D t
target Proxy
proxy GLint
level (TextureSize1D GLint
w) GLint
border CompressedPixelData a
cpd =
forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData CompressedPixelData a
cpd forall a b. (a -> b) -> a -> b
$ \GLenum
fmt ->
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m ()
glCompressedTexImage1D
(forall t. OneDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalOneDimensionalTextureTarget Proxy
proxy t
target) GLint
level GLenum
fmt GLint
w GLint
border
compressedTexImage2D :: TwoDimensionalTextureTarget t => t -> Proxy -> Level -> TextureSize2D -> Border -> CompressedPixelData a -> IO ()
compressedTexImage2D :: forall t a.
TwoDimensionalTextureTarget t =>
t
-> Proxy
-> GLint
-> TextureSize2D
-> GLint
-> CompressedPixelData a
-> IO ()
compressedTexImage2D t
target Proxy
proxy GLint
level (TextureSize2D GLint
w GLint
h) GLint
border CompressedPixelData a
cpd =
forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData CompressedPixelData a
cpd forall a b. (a -> b) -> a -> b
$ \GLenum
fmt ->
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> Ptr a
-> m ()
glCompressedTexImage2D (forall t. TwoDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalTwoDimensionalTextureTarget Proxy
proxy t
target) GLint
level GLenum
fmt GLint
w GLint
h GLint
border
compressedTexImage3D :: ThreeDimensionalTextureTarget t => t -> Proxy -> Level -> TextureSize3D -> Border -> CompressedPixelData a -> IO ()
compressedTexImage3D :: forall t a.
ThreeDimensionalTextureTarget t =>
t
-> Proxy
-> GLint
-> TextureSize3D
-> GLint
-> CompressedPixelData a
-> IO ()
compressedTexImage3D t
target Proxy
proxy GLint
level (TextureSize3D GLint
w GLint
h GLint
d) GLint
border CompressedPixelData a
cpd =
forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData CompressedPixelData a
cpd forall a b. (a -> b) -> a -> b
$ \GLenum
fmt ->
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> Ptr a
-> m ()
glCompressedTexImage3D
(forall t. ThreeDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalThreeDimensionalTextureTarget Proxy
proxy t
target) GLint
level GLenum
fmt GLint
w GLint
h GLint
d GLint
border
getCompressedTexImage :: GettableTextureTarget t => t -> Level -> Ptr a -> IO ()
getCompressedTexImage :: forall t a. GettableTextureTarget t => t -> GLint -> Ptr a -> IO ()
getCompressedTexImage = forall (m :: * -> *) a.
MonadIO m =>
GLenum -> GLint -> Ptr a -> m ()
glGetCompressedTexImage forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall t. GettableTextureTarget t => t -> GLenum
marshalGettableTextureTarget
compressedTexSubImage1D :: OneDimensionalTextureTarget t => t -> Level -> TexturePosition1D -> TextureSize1D -> CompressedPixelData a -> IO ()
compressedTexSubImage1D :: forall t a.
OneDimensionalTextureTarget t =>
t
-> GLint
-> TexturePosition1D
-> TextureSize1D
-> CompressedPixelData a
-> IO ()
compressedTexSubImage1D t
target GLint
level (TexturePosition1D GLint
xOff) (TextureSize1D GLint
w) CompressedPixelData a
cpd =
forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData CompressedPixelData a
cpd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint -> GLint -> GLint -> GLenum -> GLint -> Ptr a -> m ()
glCompressedTexSubImage1D (forall t. OneDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalOneDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
w
compressedTexSubImage2D :: TwoDimensionalTextureTarget t => t -> Level -> TexturePosition2D -> TextureSize2D -> CompressedPixelData a -> IO ()
compressedTexSubImage2D :: forall t a.
TwoDimensionalTextureTarget t =>
t
-> GLint
-> TexturePosition2D
-> TextureSize2D
-> CompressedPixelData a
-> IO ()
compressedTexSubImage2D t
target GLint
level (TexturePosition2D GLint
xOff GLint
yOff) (TextureSize2D GLint
w GLint
h) CompressedPixelData a
cpd =
forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData CompressedPixelData a
cpd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLint
-> Ptr a
-> m ()
glCompressedTexSubImage2D (forall t. TwoDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalTwoDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
yOff GLint
w GLint
h
compressedTexSubImage3D :: ThreeDimensionalTextureTarget t => t -> Level -> TexturePosition3D -> TextureSize3D -> CompressedPixelData a -> IO ()
compressedTexSubImage3D :: forall t a.
ThreeDimensionalTextureTarget t =>
t
-> GLint
-> TexturePosition3D
-> TextureSize3D
-> CompressedPixelData a
-> IO ()
compressedTexSubImage3D t
target GLint
level (TexturePosition3D GLint
xOff GLint
yOff GLint
zOff) (TextureSize3D GLint
w GLint
h GLint
d) CompressedPixelData a
cpd =
forall a b.
CompressedPixelData a -> (GLenum -> GLint -> Ptr a -> b) -> b
withCompressedPixelData CompressedPixelData a
cpd forall a b. (a -> b) -> a -> b
$
forall (m :: * -> *) a.
MonadIO m =>
GLenum
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLint
-> GLenum
-> GLint
-> Ptr a
-> m ()
glCompressedTexSubImage3D (forall t. ThreeDimensionalTextureTarget t => Proxy -> t -> GLenum
marshalThreeDimensionalTextureTarget Proxy
NoProxy t
target) GLint
level GLint
xOff GLint
yOff GLint
zOff GLint
w GLint
h GLint
d
data SampleLocations =
FlexibleSampleLocations
| FixedSampleLocations
deriving ( SampleLocations -> SampleLocations -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SampleLocations -> SampleLocations -> Bool
$c/= :: SampleLocations -> SampleLocations -> Bool
== :: SampleLocations -> SampleLocations -> Bool
$c== :: SampleLocations -> SampleLocations -> Bool
Eq, Eq SampleLocations
SampleLocations -> SampleLocations -> Bool
SampleLocations -> SampleLocations -> Ordering
SampleLocations -> SampleLocations -> SampleLocations
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: SampleLocations -> SampleLocations -> SampleLocations
$cmin :: SampleLocations -> SampleLocations -> SampleLocations
max :: SampleLocations -> SampleLocations -> SampleLocations
$cmax :: SampleLocations -> SampleLocations -> SampleLocations
>= :: SampleLocations -> SampleLocations -> Bool
$c>= :: SampleLocations -> SampleLocations -> Bool
> :: SampleLocations -> SampleLocations -> Bool
$c> :: SampleLocations -> SampleLocations -> Bool
<= :: SampleLocations -> SampleLocations -> Bool
$c<= :: SampleLocations -> SampleLocations -> Bool
< :: SampleLocations -> SampleLocations -> Bool
$c< :: SampleLocations -> SampleLocations -> Bool
compare :: SampleLocations -> SampleLocations -> Ordering
$ccompare :: SampleLocations -> SampleLocations -> Ordering
Ord, Int -> SampleLocations -> ShowS
[SampleLocations] -> ShowS
SampleLocations -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SampleLocations] -> ShowS
$cshowList :: [SampleLocations] -> ShowS
show :: SampleLocations -> String
$cshow :: SampleLocations -> String
showsPrec :: Int -> SampleLocations -> ShowS
$cshowsPrec :: Int -> SampleLocations -> ShowS
Show )
marshalSampleLocations :: SampleLocations -> GLboolean
marshalSampleLocations :: SampleLocations -> GLboolean
marshalSampleLocations = forall a. Num a => Bool -> a
marshalGLboolean forall b c a. (b -> c) -> (a -> b) -> a -> c
. (SampleLocations
FixedSampleLocations forall a. Eq a => a -> a -> Bool
==)
texImage2DMultisample :: TextureTarget2DMultisample
-> Proxy
-> Samples
-> PixelInternalFormat
-> TextureSize2D
-> SampleLocations
-> IO ()
texImage2DMultisample :: TextureTarget2DMultisample
-> Proxy
-> Samples
-> PixelInternalFormat
-> TextureSize2D
-> SampleLocations
-> IO ()
texImage2DMultisample TextureTarget2DMultisample
target Proxy
proxy (Samples GLint
s) PixelInternalFormat
int (TextureSize2D GLint
w GLint
h) SampleLocations
loc =
forall (m :: * -> *).
MonadIO m =>
GLenum -> GLint -> GLenum -> GLint -> GLint -> GLboolean -> m ()
glTexImage2DMultisample
(forall t. ParameterizedTextureTarget t => Proxy -> t -> GLenum
marshalMultisample Proxy
proxy TextureTarget2DMultisample
target) GLint
s (forall a b. (Integral a, Num b) => a -> b
fromIntegral (PixelInternalFormat -> GLint
marshalPixelInternalFormat PixelInternalFormat
int))
GLint
w GLint
h (SampleLocations -> GLboolean
marshalSampleLocations SampleLocations
loc)
marshalMultisample :: ParameterizedTextureTarget t => Proxy -> t -> GLenum
marshalMultisample :: forall t. ParameterizedTextureTarget t => Proxy -> t -> GLenum
marshalMultisample Proxy
proxy = case Proxy
proxy of
Proxy
NoProxy -> forall t. ParameterizedTextureTarget t => t -> GLenum
marshalParameterizedTextureTarget
Proxy
Proxy -> forall t. ParameterizedTextureTarget t => t -> GLenum
marshalParameterizedTextureTargetProxy
texImage3DMultisample :: TextureTarget2DMultisampleArray
-> Proxy
-> Samples
-> PixelInternalFormat
-> TextureSize3D
-> SampleLocations
-> IO ()
texImage3DMultisample :: TextureTarget2DMultisampleArray
-> Proxy
-> Samples
-> PixelInternalFormat
-> TextureSize3D
-> SampleLocations
-> IO ()
texImage3DMultisample TextureTarget2DMultisampleArray
target Proxy
proxy (Samples GLint
s) PixelInternalFormat
int (TextureSize3D GLint
w GLint
h GLint
d) SampleLocations
loc =
forall (m :: * -> *).
MonadIO m =>
GLenum
-> GLint -> GLenum -> GLint -> GLint -> GLint -> GLboolean -> m ()
glTexImage3DMultisample
(forall t. ParameterizedTextureTarget t => Proxy -> t -> GLenum
marshalMultisample Proxy
proxy TextureTarget2DMultisampleArray
target) GLint
s (forall a b. (Integral a, Num b) => a -> b
fromIntegral (PixelInternalFormat -> GLint
marshalPixelInternalFormat PixelInternalFormat
int))
GLint
w GLint
h GLint
d (SampleLocations -> GLboolean
marshalSampleLocations SampleLocations
loc)
maxTextureSize :: GettableStateVar GLsizei
maxTextureSize :: GettableStateVar GLint
maxTextureSize = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxTextureSize
maxCubeMapTextureSize :: GettableStateVar GLsizei
maxCubeMapTextureSize :: GettableStateVar GLint
maxCubeMapTextureSize = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxCubeMapTextureSize
maxRectangleTextureSize :: GettableStateVar GLsizei
maxRectangleTextureSize :: GettableStateVar GLint
maxRectangleTextureSize = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxRectangleTextureSize
max3DTextureSize :: GettableStateVar GLsizei
max3DTextureSize :: GettableStateVar GLint
max3DTextureSize = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMax3DTextureSize
maxArrayTextureLayers :: GettableStateVar GLsizei
maxArrayTextureLayers :: GettableStateVar GLint
maxArrayTextureLayers = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxArrayTextureLayers
maxSampleMaskWords :: GettableStateVar GLsizei
maxSampleMaskWords :: GettableStateVar GLint
maxSampleMaskWords = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxSampleMaskWords
maxColorTextureSamples :: GettableStateVar GLsizei
maxColorTextureSamples :: GettableStateVar GLint
maxColorTextureSamples = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxColorTextureSamples
maxDepthTextureSamples :: GettableStateVar GLsizei
maxDepthTextureSamples :: GettableStateVar GLint
maxDepthTextureSamples = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxDepthTextureSamples
maxIntegerSamples :: GettableStateVar GLsizei
maxIntegerSamples :: GettableStateVar GLint
maxIntegerSamples = PName1I -> GettableStateVar GLint
maxTextureSizeWith PName1I
GetMaxIntegerSamples
maxTextureSizeWith :: PName1I -> GettableStateVar GLsizei
maxTextureSizeWith :: PName1I -> GettableStateVar GLint
maxTextureSizeWith = forall a. IO a -> IO a
makeGettableStateVar forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p a. GetPName1I p => (GLint -> a) -> p -> IO a
getInteger1 forall a b. (Integral a, Num b) => a -> b
fromIntegral