packages feed

keid-render-basic-0.1.2.0: src/Global/Resource/CubeMap/Base.hs

{-# LANGUAGE DeriveAnyClass #-}

-- {-# OPTIONS_GHC -fforce-recomp #-}

module Global.Resource.CubeMap.Base
  ( Collection(..)
  , sources
  ) where

import RIO

import Data.Distributive (Distributive(..))
import Data.Distributive.Generic (genericCollect)
import Data.Functor.Rep (Co(..), Representable)
import GHC.Generics (Generic1)
import Resource.Source (Source)
import Resource.Source qualified as Source

import Global.Resource.CubeMap.Base.Paths qualified as Paths

data Collection a = Collection
  { black        :: a
  }
  deriving stock (Show, Functor, Foldable, Traversable, Generic, Generic1)
  deriving Applicative via (Co Collection)
  deriving anyclass (Representable)

instance Distributive Collection where
  collect = genericCollect

sources :: Collection Source
sources = Collection
  { black        = $(Source.embedFile Paths.BLACK_KTX_ZST)
  }