Target Generators

The target generator classes expose a common public entry point: generate(ast_node) accepts a CrossGL AST and returns source text or assembly for the selected backend.

GLSL

class crosstl.translator.codegen.GLSL_codegen.GLSLCodeGen[source]

Bases: object

Emit GLSL source from the shared CrossGL translator AST.

generate(ast)[source]

Generate complete GLSL source for a CrossGL AST.

DirectX / HLSL

class crosstl.translator.codegen.directx_codegen.HLSLCodeGen[source]

Bases: object

Emit HLSL source from the shared CrossGL translator AST.

generate(ast)[source]

Generate complete HLSL source for a CrossGL AST.

Metal

class crosstl.translator.codegen.metal_codegen.MetalCodeGen[source]

Bases: object

Emit Metal Shading Language from the shared CrossGL translator AST.

generate(ast)[source]

Generate complete Metal Shading Language source for a CrossGL AST.

Vulkan SPIR-V

class crosstl.translator.codegen.SPIRV_codegen.VulkanSPIRVCodeGen[source]

Bases: object

Generates SPIR-V code from a CrossGL shader AST.

generate(ast)[source]

Generate SPIR-V code from a CrossGL AST.

CUDA

class crosstl.translator.codegen.cuda_codegen.CudaCodeGen[source]

Bases: VectorArithmeticMixin, ResourceQueryMixin, ResourceDiagnosticMixin

Emit CUDA source from the shared CrossGL translator AST.

generate(ast_node)[source]

Generate complete CUDA source for a CrossGL AST.

HIP

class crosstl.translator.codegen.hip_codegen.HipCodeGen[source]

Bases: VectorArithmeticMixin, ResourceQueryMixin, ResourceDiagnosticMixin

Emit HIP source from the shared CrossGL translator AST.

generate(node)[source]

Generate complete HIP source for a CrossGL AST.

Return type:

str

Mojo

class crosstl.translator.codegen.mojo_codegen.MojoCodeGen[source]

Bases: object

Emit Mojo-like shader source from the shared CrossGL AST.

generate(ast)[source]

Generate complete Mojo-like shader source for a CrossGL AST.

Rust

class crosstl.translator.codegen.rust_codegen.RustCodeGen[source]

Bases: object

Emit Rust-like GPU shader source from the shared CrossGL AST.

generate(ast)[source]

Generate complete Rust-like shader source for a CrossGL AST.

Slang

class crosstl.translator.codegen.slang_codegen.SlangCodeGen[source]

Bases: object

Emit Slang shader source from the shared CrossGL AST.

generate(ast)[source]

Generate Slang source for a CrossGL AST or AST fragment.