{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE AllowAmbiguousTypes #-} module Graphics.Classes.VertexLayout where import qualified Graphics.Rendering.OpenGL as GL -- internal imports import Graphics.Classes.Bindable class (Bindable (VertBuffer v)) => VertexLayout v where type VertBuffer v :: * layoutElements :: v -> [(GL.GLuint, GL.VertexArrayDescriptor GL.GLfloat)] addBuffer :: v -> VertBuffer v -> IO ()