packages feed

luminance-0.8.2: luminance.cabal

name:                luminance
version:             0.8.2
synopsis:            Type-safe, type-level and stateless graphics framework
description:         This package exposes several modules to work with /GPUs/ in a stateless and
                     type-safe way. Currently, it uses OpenGL as backend hardware technology but
                     others will be added later on, such as Vulkan.
                     .
                     One very important point is the fact that luminance has nothing to do with
                     /3D engines/ or /scene development kits/. Don’t expect to find /materials/,
                     /lights/ or /mesh/ loaders. It’s just a graphics framework initiated to fix the
                     design choices of OpenGL. It won’t change in any other way. However, as it
                     grows, the plan is to make luminance a good graphics framework following the
                     Haskell philosophy. In the end, it should be used as-is, not as an OpenGL
                     abstraction.
                     .
                     luminance is a small yet powerful graphics API. It was designed so that
                     people can quickly get their feet wet and start having fun with graphics in
                     /Haskell/. The main idea is to unleash the graphical and visual properties of
                     /GPUs/ in a stateless and type-safe way.
                     .
                     This library doesn’t expose any architectural patterns or designs. It’s up to
                     you to design your program as you want and following your own plans.
                     .
                     In the end, as many people has asked me since the beginning of the development,
                     the OpenGL version – current is 4.5 – will be lowered. You’ll be able to choose
                     the backend to use through compilation flags.
license:             BSD3
license-file:        LICENSE
author:              Dimitri Sabadie <dimitri.sabadie@gmail.com>
maintainer:          Dimitri Sabadie <dimitri.sabadie@gmail.com>
copyright:           Dimitri Sabadie
homepage:            https://github.com/phaazon/luminance
bug-reports:         https://github.com/phaazon/luminance/issues
category:            Graphics
extra-source-files:  CHANGELOG.md

build-type:          Simple
cabal-version:       >= 1.10

source-repository head
  type:     git
  location: git://github.com/phaazon/luminance.git

flag debug-gl
  description:         Enable OpenGL stdout debug (for development only)
  default:             False
  manual:              True

flag gl45
  description:         Compile with the OpenGL 4.5 backend
  default:             False
  manual:              True

flag gl45-bindless-textures
  description:         Compile with the OpenGL 4.5 + bindless textures backend
  default:             False
  manual:              True

flag gl32
  description:         Compile with the OpenGL 3.2 backend
  default:             True
  manual:              True

library
  ghc-options:         -W -Wall

  if flag(debug-gl)
    cpp-options:       -DDEBUG_GL

  if flag(gl45)
    cpp-options:       -D__GL45

  if flag(gl45-bindless-textures)
    cpp-options:       -D__GL45 -D__GL_BINDLESS_TEXTURES

  if flag(gl32)
    cpp-options:       -D__GL32

  exposed-modules:     Graphics.Luminance
                     , Graphics.Luminance.Batch
                     , Graphics.Luminance.Blending
                     , Graphics.Luminance.Buffer
                     , Graphics.Luminance.Cmd
                     , Graphics.Luminance.Core.Tuple
                     , Graphics.Luminance.Framebuffer
                     , Graphics.Luminance.Geometry
                     , Graphics.Luminance.Pixel
                     , Graphics.Luminance.Query
                     , Graphics.Luminance.RW
                     , Graphics.Luminance.RenderCmd
                     , Graphics.Luminance.Shader
                     , Graphics.Luminance.Shader.Program
                     , Graphics.Luminance.Shader.Stage
                     , Graphics.Luminance.Texture
                     , Graphics.Luminance.Vertex

  other-modules:       Graphics.Luminance.Core.Batch
                     , Graphics.Luminance.Core.Blending
                     , Graphics.Luminance.Core.Buffer
                     , Graphics.Luminance.Core.Cmd
                     , Graphics.Luminance.Core.Cubemap
                     , Graphics.Luminance.Core.CubemapArray
                     , Graphics.Luminance.Core.Debug
                     , Graphics.Luminance.Core.Framebuffer
                     , Graphics.Luminance.Core.Geometry
                     , Graphics.Luminance.Core.Pixel
                     , Graphics.Luminance.Core.Query
                     , Graphics.Luminance.Core.RenderCmd
                     , Graphics.Luminance.Core.Renderbuffer
                     , Graphics.Luminance.Core.RW
                     , Graphics.Luminance.Core.Shader.Program
                     , Graphics.Luminance.Core.Shader.Stage
                     , Graphics.Luminance.Core.Shader.UniformBlock
                     , Graphics.Luminance.Core.Texture
                     , Graphics.Luminance.Core.Texture1D
                     , Graphics.Luminance.Core.Texture1DArray
                     , Graphics.Luminance.Core.Texture2D
                     , Graphics.Luminance.Core.Texture2DArray
                     , Graphics.Luminance.Core.Texture3D
                     , Graphics.Luminance.Core.Vertex

  build-depends:       base           >= 4.8  && < 4.9
                     , containers     >= 0.5  && < 0.6
                     , contravariant  >= 1.3  && < 1.4
                     , dlist          >= 0.7  && < 0.8
                     , gl             >= 0.7  && < 0.8
                     , linear         >= 1.19 && < 1.21
                     , mtl            >= 2.2  && < 2.3
                     , resourcet      >= 1.1  && < 1.2
                     , semigroups     >= 0.16 && < 0.19
                     , transformers   >= 0.4  && < 0.5
                     , vector         >= 0.11 && < 0.12
                     , void           >= 0.7  && < 0.8

  hs-source-dirs:      src

  default-language:    Haskell2010