module CrShader

Included Modules

Defined in:

crshader.cr
crshader/ast/shader_ast.cr
crshader/ast/types.cr
crshader/compiler.cr
crshader/compute/particle_simulation_core.cr
crshader/compute/particle_simulation_dsl.cr
crshader/extensions/extension.cr
crshader/extensions/registry.cr
crshader/generator/node_generator.cr
crshader/language.cr
crshader/language/builtins.cr
crshader/language/functions.cr
crshader/language/preprocessors.cr
crshader/language/stages.cr
crshader/language/std.cr
crshader/language/types.cr
crshader/macros/macro_engine.cr
crshader/optimizer/name_optimizer.cr
crshader/optimizer/tree_shaker.cr
crshader/parser/dsl_parser.cr
crshader/parser/error_formatter.cr
crshader/parser/tres_reader.cr
crshader/std/registry.cr
crshader/stubs/stub_generator.cr
crshader/transpiler/base.cr
crshader/transpiler/gdshader/emitter.cr
crshader/transpiler/glsl/emitter.cr
crshader/transpiler/symbol_table.cr
crshader/version.cr
crshader/watcher/file_watcher.cr
docs.cr
docs/a_getting_started/a_overview.cr
docs/a_getting_started/b_installation.cr
docs/a_getting_started/c_quick_start.cr
docs/b_language_dsl/a_shader_types.cr
docs/b_language_dsl/b_uniforms_and_varyings.cr
docs/b_language_dsl/c_pipeline_stages.cr
docs/b_language_dsl/d_compositor_and_compute.cr
docs/c_editor_tooling/a_in_editor_highlighter.cr
docs/c_editor_tooling/b_shader_studio.cr
docs/c_editor_tooling/c_cli_and_stubs.cr
docs/d_showcase_and_benchmarks/a_performance_benchmarks.cr
docs/d_showcase_and_benchmarks/b_shader_viewer.cr

Constant Summary

Extensions = ExtensionRegistry.new

Global singleton registry

VERSION = "0.1.45"

Instance methods inherited from module CrShader::Language::Stages

fog(&) : Nil fog, fragment(&) : Nil fragment, light(&) : Nil light, main(&) : Nil main, process(&) : Nil process, sky(&) : Nil sky, start(&) : Nil start, vertex(&) : Nil vertex

Instance methods inherited from module CrShader::Language::Functions

abs(x : Float32) : Float32 abs, aces_tonemap(x : Types::Vec3) : Types::Vec3 aces_tonemap, acos(x : Float32) : Float32 acos, adjust_contrast(c : Types::Vec3, contrast : Float32) : Types::Vec3 adjust_contrast, adjust_saturation(c : Types::Vec3, saturation : Float32) : Types::Vec3 adjust_saturation, asin(x : Float32) : Float32 asin, atan(y : Float32, x : Float32) : Float32
atan(y_over_x : Float32) : Float32
atan
, barrel_distortion(uv : Types::Vec2, k : Float32) : Types::Vec2 barrel_distortion, blinn_phong(normal : Types::Vec3, light_dir : Types::Vec3, view_dir : Types::Vec3, shininess : Float32) : Float32 blinn_phong, ceil(x : Float32) : Float32 ceil, cel_shade(n_dot_l : Float32, steps : Float32 = 3.0_f32) : Float32 cel_shade, clamp(x : Float32, min_val : Float32, max_val : Float32) : Float32 clamp, cos(x : Float32) : Float32 cos, cross(a : Types::Vec3, b : Types::Vec3) : Types::Vec3 cross, degrees(rad : Float32) : Float32 degrees, determinant(m : Types::Mat3 | Types::Mat4) : Float32 determinant, distance(p0 : Types::Vec2 | Types::Vec3, p1 : Types::Vec2 | Types::Vec3) : Float32 distance, dot(a : Types::Vec2, b : Types::Vec2) : Float32
dot(a : Types::Vec3, b : Types::Vec3) : Float32
dot(a : Types::Vec4, b : Types::Vec4) : Float32
dot
, exp(x : Float32) : Float32 exp, exp2(x : Float32) : Float32 exp2, faceforward(n : Types::Vec3, i : Types::Vec3, nref : Types::Vec3) : Types::Vec3 faceforward, fbm(p : Types::Vec2, octaves : Int32 = 4) : Float32 fbm, floor(x : Float32) : Float32 floor, fract(x : Float32) : Float32 fract, fresnel(power : Float32, normal : Types::Vec3, view : Types::Vec3) : Float32 fresnel, grayscale(c : Types::Vec3) : Float32 grayscale, groupMemoryBarrier : Nil groupMemoryBarrier, hash11(p : Float32) : Float32 hash11, hash12(p : Float32) : Types::Vec2 hash12, hash21(p : Types::Vec2) : Float32 hash21, hash22(p : Types::Vec2) : Types::Vec2 hash22, hash31(p : Types::Vec3) : Float32 hash31, hash33(p : Types::Vec3) : Types::Vec3 hash33, hsv2rgb(c : Types::Vec3) : Types::Vec3 hsv2rgb, imageLoad(image : Symbol | String, coord : Types::IVec2) : Types::Vec4 imageLoad, imageSize(image : Symbol | String) : Types::IVec2 imageSize, imageStore(image : Symbol | String, coord : Types::IVec2, color : Types::Vec4) : Nil imageStore, inverse(m : Types::Mat3) : Types::Mat3
inverse(m : Types::Mat4) : Types::Mat4
inverse
, inversesqrt(x : Float32) : Float32 inversesqrt, ivec2(x : Int32 = 0, y : Int32 = 0) : Types::IVec2
ivec2(v2 : Types::Vec2) : Types::IVec2
ivec2
, ivec3(x : Int32 = 0, y : Int32 = 0, z : Int32 = 0) : Types::IVec3 ivec3, ivec4(x : Int32 = 0, y : Int32 = 0, z : Int32 = 0, w : Int32 = 0) : Types::IVec4 ivec4, length(v : Types::Vec2 | Types::Vec3 | Types::Vec4) : Float32 length, lerp(a : Float32, b : Float32, t : Float32) : Float32 lerp, linear_depth(depth : Float32, inv_proj : Types::Mat4) : Float32 linear_depth, log(x : Float32) : Float32 log, log2(x : Float32) : Float32 log2, luminance(col : Types::Vec3) : Float32 luminance, mat2(col0 : Types::Vec2, col1 : Types::Vec2) : Types::Mat2 mat2, mat3(col0 : Types::Vec3, col1 : Types::Vec3, col2 : Types::Vec3) : Types::Mat3 mat3, mat4(col0 : Types::Vec4, col1 : Types::Vec4, col2 : Types::Vec4, col3 : Types::Vec4) : Types::Mat4 mat4, max(a : Float32, b : Float32) : Float32 max, memoryBarrier : Nil memoryBarrier, memoryBarrierImage : Nil memoryBarrierImage, memoryBarrierShared : Nil memoryBarrierShared, min(a : Float32, b : Float32) : Float32 min, mix(x : Float32, y : Float32, a : Float32) : Float32
mix(x : Types::Vec2, y : Types::Vec2, a : Float32) : Types::Vec2
mix(x : Types::Vec3, y : Types::Vec3, a : Float32) : Types::Vec3
mix(x : Types::Vec4, y : Types::Vec4, a : Float32) : Types::Vec4
mix(x : Types::Vec3, y : Types::Vec3, a : Types::Vec3) : Types::Vec3
mix
, mod(x : Float32, y : Float32) : Float32 mod, normalize(v : Types::Vec2) : Types::Vec2
normalize(v : Types::Vec3) : Types::Vec3
normalize(v : Types::Vec4) : Types::Vec4
normalize
, pow(x : Float32, y : Float32) : Float32 pow, radians(deg : Float32) : Float32 radians, rand(uv : Types::Vec2) : Float32 rand, reflect(i : Types::Vec3, n : Types::Vec3) : Types::Vec3 reflect, refract(i : Types::Vec3, n : Types::Vec3, eta : Float32) : Types::Vec3 refract, reinhard_tonemap(x : Types::Vec3) : Types::Vec3 reinhard_tonemap, remap(val : Float32, in_min : Float32, in_max : Float32, out_min : Float32, out_max : Float32) : Float32 remap, rgb2hsv(c : Types::Vec3) : Types::Vec3 rgb2hsv, rotate_2d(p : Types::Vec2, angle : Float32) : Types::Vec2 rotate_2d, round(x : Float32) : Float32 round, saturate(x : Float32) : Float32 saturate, sdf_box(p : Types::Vec3, b : Types::Vec3) : Float32 sdf_box, sdf_sphere(p : Types::Vec3, radius : Float32) : Float32 sdf_sphere, sign(x : Float32) : Float32 sign, simplex_noise_2d(p : Types::Vec2) : Float32 simplex_noise_2d, sin(x : Float32) : Float32 sin, smax(a : Float32, b : Float32, k : Float32 = 0.1_f32) : Float32 smax, smin(a : Float32, b : Float32, k : Float32 = 0.1_f32) : Float32 smin, smoothstep(edge0 : Float32, edge1 : Float32, x : Float32) : Float32 smoothstep, sqrt(x : Float32) : Float32 sqrt, step(edge : Float32, x : Float32) : Float32 step, tan(x : Float32) : Float32 tan, texelFetch(sampler : Types::Sampler2D, coord : Types::IVec2, lod : Int32 = 0) : Types::Vec4 texelFetch, texture(sampler : Types::Sampler2D, uv : Types::Vec2) : Types::Vec4 texture, textureLod(sampler : Types::Sampler2D, uv : Types::Vec2, lod : Float32) : Types::Vec4 textureLod, textureSize(sampler : Types::Sampler2D, lod : Int32 = 0) : Types::IVec2 textureSize, transpose(m : Types::Mat3) : Types::Mat3
transpose(m : Types::Mat4) : Types::Mat4
transpose
, triplanar_weights(normal : Types::Vec3) : Types::Vec3 triplanar_weights, trunc(x : Float32) : Float32 trunc, uvec2(x : UInt32 = 0_u32, y : UInt32 = 0_u32) : Types::UVec2 uvec2, uvec3(x : UInt32 = 0_u32, y : UInt32 = 0_u32, z : UInt32 = 0_u32) : Types::UVec3 uvec3, uvec4(x : UInt32 = 0_u32, y : UInt32 = 0_u32, z : UInt32 = 0_u32, w : UInt32 = 0_u32) : Types::UVec4 uvec4, value_noise(p : Types::Vec2) : Float32 value_noise, vec2(x : Float32 = 0.0_f32, y : Float32 = 0.0_f32) : Types::Vec2
vec2(x : Number, y : Number) : Types::Vec2
vec2
, vec3(x : Float32 = 0.0_f32, y : Float32 = 0.0_f32, z : Float32 = 0.0_f32) : Types::Vec3
vec3(x : Number, y : Number, z : Number) : Types::Vec3
vec3
, vec4(x : Float32 = 0.0_f32, y : Float32 = 0.0_f32, z : Float32 = 0.0_f32, w : Float32 = 1.0_f32) : Types::Vec4
vec4(x : Number, y : Number, z : Number, w : Number = 1.0) : Types::Vec4
vec4(v3 : Types::Vec3, w : Float32 = 1.0_f32) : Types::Vec4
vec4(val : Float32 | Number) : Types::Vec4
vec4
, vignette(uv : Types::Vec2, radius : Float32 = 0.75_f32, softness : Float32 = 0.45_f32) : Float32 vignette, voronoi(p : Types::Vec2) : Float32 voronoi

Instance methods inherited from module CrShader::Language::PreProcessors

group(name : String) : Nil group, local_size(x : Int32 = 8, y : Int32 = 8, z : Int32 = 1) : Nil local_size, render_mode(*modes : Symbol) : Nil render_mode, setup_gdshader : Nil setup_gdshader, shader_type(mode : Symbol) : Nil shader_type, subgroup(name : String) : Nil subgroup

Macros inherited from module CrShader::Language::PreProcessors

buffer(name, **options, &block) buffer, const(declaration) const, constant(declaration) constant, global_uniform(declaration, **options) global_uniform, image2d(name, **options) image2d, include(path) include, instance_uniform(declaration, **options) instance_uniform, push_constant(name, **options, &block) push_constant, require(path) require, shared(declaration) shared, uniform(declaration, **options) uniform, varying(declaration, **options) varying