packages feed

gruff-0.2: gruff.cabal

Name:                gruff
Version:             0.2
Synopsis:            fractal explorer GUI using the ruff library
Description:
    Mandelbrot Set fractal explorer using the ruff library.
    .
    Requires GTK, OpenGL, and GLSL fragment shader support; lots of RAM
    and multiple CPU cores recommended.  If you want to explore very deep
    zooms, you'll need hmpfr which currently requires GHC to be compiled
    with integer-simple instead of the default integer-gmp.  To install
    without MPFR support, use @cabal install gruff -f-mpfr@.
    .
    Features in this version include:
    .
      * Interactive fractal browser display (left click to zoom in,
        right click to zoom out, middle-click to center).
    .
      * Session persistance (stored in @~/.gruff/state.gruff@ - states can
        also be loaded from and saved to other files).
    .
      * Tile cache (by default in @~/.gruff/cache@ - symlink it somewhere
        with a few GB of space if you plan on exploring a lot).
    .
      * High-level feature finding using angled internal addresses
        (enter an address, for example @1 2 3 1/3 10@, and hit return,
        then click the adjacent Go button).
    .
      * Feature finding using period location (navigate to approximate
        location of the desired feature, click the Scan button).
    .
      * Angled internal address calculation using reverse ray trace
        (navigate to approximate feature location, click the Scan+ button).
    .
      * Uses MPFR where available for higher precision, allowing deeper
        zooms and locating high period nucleii.
    .
      * Limited amount of customizable colouring (colours for interior,
        border, and exterior points).
    .
      * Supersampling for more detailed images (useful range is 1 to 4).
    .
    Future features might include image saving, external ray and feature
    information overlays, more feature finding and identification
    algorithms, scripting support for rendering animations, ...

License:             GPL-2
License-file:        LICENSE
Author:              Claude Heiland-Allen
Maintainer:          claudiusmaximus@goto10.org
Category:            Graphics

Build-type:          Simple
Cabal-version:       >=1.4

Data-dir:            data
Data-files:          icon.png, merge.frag, minimal.frag
Extra-source-files:  TODO src/mp_real.h

Flag mpfr
  description: use MPFR for higher precision floating point
  default: True

Executable gruff
  Hs-source-dirs:     src
  Main-is:            gruff.hs
  Other-modules:      Browser
                      GLUTGtk
                      Logger
                      MuAtom
                      Number
                      QuadTree
                      Shader
                      Snapshot
                      StatusDialog
                      Tile
                      Utils
                      View
  Build-depends:      base >= 4 && < 5,
                      containers >= 0 && < 1,
                      directory >= 1 && < 2,
                      filepath >= 1 && < 2,
                      gtk >= 0.11 && < 0.13,
                      gtkglext >= 0.11 && < 0.13,
                      old-locale >= 1 && < 2,
                      OpenGL >= 2.4 && < 3,
                      OpenGLRaw >= 1.1 && < 2,
                      parallel >= 3.1 && < 3.2,
                      qd >= 1 && < 2,
                      qd-vec >= 1 && < 2,
                      time >= 1 && < 2,
                      Vec >= 0.9 && < 1,
                      ruff >= 0.2 && < 0.3,
                      bytestring,
                      mtl
  if (flag(mpfr))
    Build-depends:    hmpfr >= 0.3.2 && < 0.4
    CPP-options:      -DHAVE_MPFR
    CC-options:       -DHAVE_MPFR
  C-sources:          src/compute.cc, src/rts.c
  CC-options:         -O3 -Wall -pedantic -Wextra
  GHC-options:        -O2 -Wall -threaded -rtsopts
  GHC-Prof-Options:   -prof -auto-all -caf-all