lambdacube-engine-0.2.1: Graphics/LambdaCube/GpuProgram.hs
module Graphics.LambdaCube.GpuProgram where
import Graphics.LambdaCube.GpuProgramParams
data GpuProgramType
= GPT_VERTEX_PROGRAM
| GPT_FRAGMENT_PROGRAM
| GPT_GEOMETRY_PROGRAM
deriving (Eq,Ord)
class Ord p => GpuProgram p
class Ord lp => LinkedGpuProgram lp
data GpuProgram p => GpuProgramDescriptor p
= GpuProgramDescriptor
{ gpdName :: String
, gpdType :: GpuProgramType -- ^ The type of the program
, gpdFilename :: String -- ^ The name of the file to load source from (may be blank)
, gpdSyntaxCode :: String -- ^ Syntax code e.g. arbvp1, vs_2_0 etc
, gpdAttach :: [String]
, gpdSkeletalAnimation :: Bool -- ^ Does this (vertex) program include skeletal animation?
, gpdMorphAnimation :: Bool -- ^ Does this (vertex) program include morph animation?
, gpdPoseAnimation :: Int -- ^ Does this (vertex) program include pose animation (count of number of poses supported)
, gpdVertexTextureFetch :: Bool -- ^ Does this (vertex) program require support for vertex texture fetch?
, gpdNeedsAdjacencyInfo :: Bool -- ^ Does this (geometry) program require adjacency information?
, gpdDefaultParams :: GpuProgramParameters -- ^ The default parameters for use with this object
, gpdGpuProgram :: Maybe p
}