Interface ShaderCompiler

All Superinterfaces:
AutoCloseable, org.lwjgl.system.NativeResource
All Known Implementing Classes:
CachedShaderCompiler, DirectShaderCompiler

public interface ShaderCompiler extends org.lwjgl.system.NativeResource

Creates and compiles shaders for shader programs.

Create a compiler using direct(ShaderProvider) for a single program, or cached(ShaderProvider) if compiling multiple.

  • Method Details

    • compile

      CompiledShader compile(ShaderCompiler.Context context, int type, ProgramDefinition.SourceType sourceType, net.minecraft.resources.ResourceLocation path) throws IOException, ShaderException
      Creates a new shader and attempts to attach sources read from file to it. The sources are read from The shader will automatically be deleted at some point in the future.
      Parameters:
      context - The context for compiling the shader
      type - The type of shader to create
      path - The location of the shader to attach
      Returns:
      A new shader that can be attached to programs
      Throws:
      IOException - If the file could not be found
      ShaderException - If an error occurs while compiling the shader
    • compile

      Creates a new shader and attempts to attach the specified sources to it. The shader will automatically be deleted at some point in the future.
      Parameters:
      context - The context for compiling the shader
      type - The type of shader to create
      source - The source of the shader to attach
      Returns:
      A new shader that can be attached to programs
      Throws:
      ShaderException - If an error occurs while compiling the shader
    • direct

      static ShaderCompiler direct(@Nullable @Nullable ShaderCompiler.ShaderProvider provider)
      Constructs a shader compiler that creates a new shader for each requested type.
      Parameters:
      provider - The source of shader files
      Returns:
      shader compiler
    • cached

      static ShaderCompiler cached(@Nullable @Nullable ShaderCompiler.ShaderProvider provider)
      Constructs a shader compiler that caches duplicate shader sources.
      Parameters:
      provider - The source of shader files
      Returns:
      cached shader compiler