{-# LINE 1 "FreeType/Miscellaneous/OpenType.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE PatternSynonyms #-}

{- | Please refer to the
     [Miscellaneous > OpenType Validation](https://www.freetype.org/freetype2/docs/reference/ft2-ot_validation.html)
     chapter of the reference.

     Internal: "FreeType.Miscellaneous.OpenType.Internal".
 -}

module FreeType.Miscellaneous.OpenType
  ( -- ** FT_OpenType_Validate
    ft_OpenType_Validate
    -- ** FT_OpenType_Free
  , ft_OpenType_Free
    -- ** FT_VALIDATE_OTXXX
  , pattern FT_VALIDATE_BASE
  , pattern FT_VALIDATE_GDEF
  , pattern FT_VALIDATE_GPOS
  , pattern FT_VALIDATE_GSUB
  , pattern FT_VALIDATE_JSTF
  , pattern FT_VALIDATE_MATH
  , pattern FT_VALIDATE_OT
  ) where

import           FreeType.Core.Base
import           FreeType.Core.Types.Types
import           FreeType.Exception.Internal
import           FreeType.Miscellaneous.OpenType.Internal

import           Foreign.Ptr




ft_OpenType_Validate
  :: FT_Face      -- ^ face
  -> FT_UInt      -- ^ validation_flags
  -> Ptr FT_Bytes -- ^ BASE_table
  -> Ptr FT_Bytes -- ^ GDEF_table
  -> Ptr FT_Bytes -- ^ GPOS_table
  -> Ptr FT_Bytes -- ^ GSUB_table
  -> Ptr FT_Bytes -- ^ JSTF_table
  -> IO ()
ft_OpenType_Validate =
  autoError "ft_OpenType_Validate" ft_OpenType_Validate'



foreign import ccall "FT_OpenType_Free"
  ft_OpenType_Free
    :: FT_Face  -- ^ face
    -> FT_Bytes -- ^ table
    -> IO ()



pattern FT_VALIDATE_BASE
      , FT_VALIDATE_GDEF
      , FT_VALIDATE_GPOS
      , FT_VALIDATE_GSUB
      , FT_VALIDATE_JSTF
      , FT_VALIDATE_MATH
      , FT_VALIDATE_OT
     :: (Eq a, Num a) => a
pattern FT_VALIDATE_BASE = 256
{-# LINE 67 "FreeType/Miscellaneous/OpenType.hsc" #-}
pattern FT_VALIDATE_GDEF = 512
{-# LINE 68 "FreeType/Miscellaneous/OpenType.hsc" #-}
pattern FT_VALIDATE_GPOS = 1024
{-# LINE 69 "FreeType/Miscellaneous/OpenType.hsc" #-}
pattern FT_VALIDATE_GSUB = 2048
{-# LINE 70 "FreeType/Miscellaneous/OpenType.hsc" #-}
pattern FT_VALIDATE_JSTF = 4096
{-# LINE 71 "FreeType/Miscellaneous/OpenType.hsc" #-}
pattern FT_VALIDATE_MATH = 8192
{-# LINE 72 "FreeType/Miscellaneous/OpenType.hsc" #-}
pattern FT_VALIDATE_OT   = 16128
{-# LINE 73 "FreeType/Miscellaneous/OpenType.hsc" #-}