glslgen 0.1.0 copy "glslgen: ^0.1.0" to clipboard
glslgen: ^0.1.0 copied to clipboard

Small package to generate type safe uniform bindings for flutter fragment shaders.

glslgen #

Note Highly experimental yet! The API could be subject to change

Small package to generate type safe uniform bindings for flutter fragment shaders.
GLSL parser grammar credits go to https://github.com/IrisShaders/glsl-transformer

Usage #

Add build_runner to your pubspec dev_dependencies section:

dev_dependencies:
  ...
  build_runner: <latest_version>

Add glslgen to your pubspec dependencies section:

Note not dev_dependencies, glslgen has some API that is needed to pass data to generated bindings

dependencies:
  ...
  glslgen: <latest_version>

Declare used shaders in the shaders section of your flutter section inside the pubspec as described in here:

flutter:
  ...
  shaders:
    - <your_shader1>
    - <your_shader2>
    ...

Run the generator in one time mode or watch mode:

dart run build_runner build    # for one time
dart run build_runner watch    # to update whenever any shader file changes

Import the generated file lib/glslgen/uniforms.g.dart to use the generated API in your code:

import 'package:<your_package>/glslgen/uniforms.g.dart';

...
// the name of the function is derived from the file name of your shader file
// for example for a inksplash.frag shader you'd get applyUniformsToInkSplashFrag
applyUniformsToShaderFrag( 
    shader, //your FragmentShader object
    param1: ..., // your parameters, can be of type double, Vec2, Vec3, Vec4, dart:ui Image or a List of any of these types
    param2: ...,
);
3
likes
130
points
14
downloads

Publisher

unverified uploader

Weekly Downloads

Small package to generate type safe uniform bindings for flutter fragment shaders.

Repository (GitHub)
View/report issues

Documentation

API reference

License

AGPL-3.0 (license)

Dependencies

antlr4, build, code_builder, dart_style, flutter, path, pubspec_parse, recase

More

Packages that depend on glslgen