software library

The software device's half of the material language: the stages that run a material written as source on CpuDevice.

import 'package:flutter3d_app/software.dart';

A second entry point rather than more exports on the main barrel, for the reason native.dart is one. MaterialProgramStage, MaterialVertexStage and MaterialFullscreenStage are stages of the software rasterizer, and naming them from the main barrel made its stage interface (CpuFragmentShader, ShaderBindings, FragmentContext) part of every application's import, so a change to how that rasterizer runs a fragment would be a major release of this package. openDevice builds them for a material on its own; a test or a tool that puts one into a CpuShaderLibrary by hand imports this, and flutter3d_cpu beside it.

Classes

MaterialFullscreenStage
A full-screen stage written in the language — version 2 — as the software backend's fragment stage, behind its FullscreenVertex.
MaterialProgramStage
One compiled material, as a stage the software backend can be given.
MaterialVertexStage
A material's vertex block as the software backend's vertex stage — version 2: the engine's mesh stage, or its skinned one, and then the block, as the emitted <name>Vertex and <name>VertexSkinned run it.

Functions

materialLanguageCompiler(String stage, String source) → CpuStage
A CpuMaterialCompiler for the engine's material language — P8: the source parsed and specialised at its declared defaults, as the build does for the GPU sections beside it, and run by MaterialProgramStage.