Changeset 30944 in project


Ignore:
Timestamp:
05/31/14 03:12:43 (6 years ago)
Author:
acharlton
Message:

Update to version 0.3.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/eggref/4/glls

    r30941 r30944  
    11== glls
    22[[toc:]]
    3 glls (GL Lisp Shaders) lets you write [[https://www.opengl.org/documentation/glsl/|GLSL]] (OpenGL Shader Language) shaders in a convenient pseudo-scheme language in Chicken Scheme. The compilation into GLSL happens at compile-time for zero run-time cost. Run-time compilation is also supported. To those that want to dynamically construct shaders: I solute you.
     3glls (GL Lisp Shaders) lets you write [[https://www.opengl.org/documentation/glsl/|GLSL]] (OpenGL Shader Language) shaders in a convenient pseudo-scheme language in Chicken Scheme. The compilation into GLSL happens at compile-time for zero run-time cost. Run-time compilation and dynamic re-compilation is also supported. To those that want to dynamically construct shaders: I solute you.
    44
    55In addition to the eponymous module, glls also provides the {{glls-render}} module. {{glls-render}} enhances glls to create automatic rendering functions for each pipeline. When compiled, these rendering functions are created in efficient C, although dynamic functions are also provided. See the section [[#automatic-render-functions|Automatic render functions]] for details.
     
    1111
    1212=== Requirements
     13* make
    1314* fmt
    1415* matchable
     
    5657
    5758Defines, for syntax and run-time, a new {{pipeline}} named {{NAME}}. The {{SHADERS}} should either be forms conforming to language defined in the section [[#the-glls-shader-language|The glls shader language]], {{shader}}s defined by {{define-shader}}, or a mix of the two. Pipelines must have at least one vertex and one fragment shader to be able to compile. Before pipelines are used, they must be compiled by OpenGL with {{compile-pipeline}} or {{compile-pipelines}}.
     59
     60{{define-pipeline}} behaves differently when it is being evaluated ''and'' when a given pipeline is being re-defined. In this case, the pipeline inherits the GL program ID of the pipeline that is being redefined. Additionally, the pipeline is compiled by OpenGL right away (and as a consequence, so are any pipelines that are pending compilation). This is done so that pipelines can be edited and re-evaluated in a REPL session and one’s scene will be updated as expected. See the [[https://github.com/AlexCharlton/glls/blob/master/examples/interactive.scm|interactive example]] for an example of how this can be accomplished.
    5861
    5962{{define-pipeline}} has additional effects when used with the {{glls-render}} module (see [[#automatic-render-functions|Automatic render functions]]).
     
    329332=== Version history
    330333
    331 ==== Version 0.2.1
     334==== Version 0.3.0
     33530 May 2014
     336
     337* Support dynamic re-evaluation of pipelines
     338
     339
     340==== Version 0.2.2
    33234129 May 2014
    333342
    334 - Fix bug affecting dynamic use of glls-render
     343* Add make as a dependency
     344
     345'''Version 0.2.1'''
     346
     347* Fix bug affecting dynamic use of glls-render
    335348
    336349'''Version 0.2.0'''
     
    33835128 May 2014
    339352
    340 - Automatic render function generation
    341 - Removed {{eval}} from {{defpipeline}} (which broke some things when used in modules)
    342 - Renamed {{defpipeline}}, {{defshader}}
     353* Automatic render function generation
     354* Removed {{eval}} from {{defpipeline}} (which broke some things when used in modules)
     355* Renamed {{defpipeline}}, {{defshader}}
    343356
    344357
Note: See TracChangeset for help on using the changeset viewer.