injectAfterVersion method

String injectAfterVersion(
  1. String src,
  2. String defineLine
)

Injects a shader define after the #version directive.

Implementation

String injectAfterVersion(String src, String defineLine) {
  // Strip UTF-8 BOM if present (some editors add it)
  var source = src;
  if (source.isNotEmpty && source.codeUnitAt(0) == 0xFEFF) {
    source = source.substring(1);
  }
  final lines = source.split('\n');
  final v = lines.indexWhere((l) => l.trimLeft().startsWith('#version'));
  if (v >= 0) {
    lines.insert(v + 1, defineLine);
    return lines.join('\n');
  }
  // If no #version is present (shouldn't happen), don't inject before it.
  return source;
}