module SFML.Graphics.Types where import Foreign.C.Types (CIntPtr) import Foreign.Ptr import Foreign.Storable newtype CircleShape = CircleShape (Ptr CircleShape) newtype ConvexShape = ConvexShape (Ptr ConvexShape) newtype Font = Font (Ptr Font) newtype Image = Image (Ptr Image) newtype Shader = Shader (Ptr Shader) newtype RectangleShape = RectangleShape (Ptr RectangleShape) newtype RenderTexture = RenderTexture (Ptr RenderTexture) newtype RenderWindow = RenderWindow (Ptr RenderWindow) newtype Shape = Shape (Ptr Shape) newtype Sprite = Sprite (Ptr Sprite) newtype Text = Text (Ptr Text) newtype Texture = Texture (Ptr Texture) newtype VertexArray = VertexArray (Ptr VertexArray) newtype View = View (Ptr View) instance Storable Texture where sizeOf _ = sizeOf (undefined :: CIntPtr) alignment _ = alignment (undefined :: CIntPtr) peek ptr = peek (castPtr ptr) >>= return . Texture poke ptr (Texture p) = poke (castPtr ptr) p instance Storable Shader where sizeOf _ = sizeOf (undefined :: CIntPtr) alignment _ = alignment (undefined :: CIntPtr) peek ptr = peek (castPtr ptr) >>= return . Shader poke ptr (Shader p) = poke (castPtr ptr) p