loadShader method

Future<void> loadShader()

Loads and compiles the GLSL shader.

This method should be called before painting. It handles shader compilation and provides error handling for compilation failures.

Implementation

Future<void> loadShader() async {
  if (_fragmentShader != null) return;

  try {
    // Load shader using FragmentProgram (modern approach)
    FragmentProgram program = await FragmentProgram.fromAsset(
      'packages/flutter_shader_fx/shaders/$shaderPath',
    );

    _fragmentShader = program.fragmentShader();
  } catch (e) {
    // Log error but don't crash - fall back to solid color
    log('Failed to compile shader $shaderPath: $e');
    _fragmentShader = null;
  }
}