{-# OPTIONS_GHC -fplugin Foreign.Storable.Generic.Plugin #-} {-# LANGUAGE DeriveAnyClass #-} module Render.Lit.Textured.Model ( Model , Vertex , VertexAttrs(..) , module Render.Unlit.Textured.Model ) where import RIO import Render.Unlit.Textured.Model hiding (Model, Vertex, VertexAttrs) import Foreign.Storable.Generic (GStorable) import Geomancy (Vec2) import Geomancy.Vec3 qualified as Vec3 import Engine.Vulkan.Format (HasVkFormat) import Resource.Model qualified as Model type Model buf = Model.Indexed buf Vec3.Packed VertexAttrs type Vertex = Model.Vertex3d VertexAttrs data VertexAttrs = VertexAttrs { VertexAttrs -> Vec2 vaTexCoord :: Vec2 , VertexAttrs -> Packed vaNormal :: Vec3.Packed } deriving (VertexAttrs -> VertexAttrs -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: VertexAttrs -> VertexAttrs -> Bool $c/= :: VertexAttrs -> VertexAttrs -> Bool == :: VertexAttrs -> VertexAttrs -> Bool $c== :: VertexAttrs -> VertexAttrs -> Bool Eq, Eq VertexAttrs VertexAttrs -> VertexAttrs -> Bool VertexAttrs -> VertexAttrs -> Ordering VertexAttrs -> VertexAttrs -> VertexAttrs 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 :: VertexAttrs -> VertexAttrs -> VertexAttrs $cmin :: VertexAttrs -> VertexAttrs -> VertexAttrs max :: VertexAttrs -> VertexAttrs -> VertexAttrs $cmax :: VertexAttrs -> VertexAttrs -> VertexAttrs >= :: VertexAttrs -> VertexAttrs -> Bool $c>= :: VertexAttrs -> VertexAttrs -> Bool > :: VertexAttrs -> VertexAttrs -> Bool $c> :: VertexAttrs -> VertexAttrs -> Bool <= :: VertexAttrs -> VertexAttrs -> Bool $c<= :: VertexAttrs -> VertexAttrs -> Bool < :: VertexAttrs -> VertexAttrs -> Bool $c< :: VertexAttrs -> VertexAttrs -> Bool compare :: VertexAttrs -> VertexAttrs -> Ordering $ccompare :: VertexAttrs -> VertexAttrs -> Ordering Ord, Int -> VertexAttrs -> ShowS [VertexAttrs] -> ShowS VertexAttrs -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [VertexAttrs] -> ShowS $cshowList :: [VertexAttrs] -> ShowS show :: VertexAttrs -> String $cshow :: VertexAttrs -> String showsPrec :: Int -> VertexAttrs -> ShowS $cshowsPrec :: Int -> VertexAttrs -> ShowS Show, forall x. Rep VertexAttrs x -> VertexAttrs forall x. VertexAttrs -> Rep VertexAttrs x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep VertexAttrs x -> VertexAttrs $cfrom :: forall x. VertexAttrs -> Rep VertexAttrs x Generic, [Format] forall a. [Format] -> HasVkFormat a getVkFormat :: [Format] $cgetVkFormat :: [Format] HasVkFormat) instance GStorable VertexAttrs