Final loader and temporary ShaderSources

This commit is contained in:
Jozufozu 2021-08-10 17:39:11 -07:00
parent 947c611bbc
commit 4817ce3fe1
2 changed files with 11 additions and 14 deletions

View file

@ -35,9 +35,7 @@ public class Backend {
return INSTANCE;
}
public final Minecraft minecraft;
public ShaderSources sources;
public Loader loader;
public final Loader loader;
public GLCapabilities capabilities;
public GlCompat compat;
@ -52,10 +50,6 @@ public class Backend {
private final Map<ResourceLocation, ProgramSpec> programSpecRegistry = new HashMap<>();
protected Backend() {
// Can be null when running datagenerators due to the unfortunate time we call this
minecraft = Minecraft.getInstance();
if (minecraft == null) return;
loader = new Loader(this);
OptifineHandler.init();

View file

@ -42,17 +42,20 @@ public class Loader implements ISelectiveResourceReloadListener {
private static final Gson GSON = new GsonBuilder().create();
private final Backend backend;
public boolean shouldCrash;
private boolean shouldCrash;
public Loader(Backend backend) {
this.backend = backend;
IResourceManager manager = backend.minecraft.getResourceManager();
// Can be null when running datagenerators due to the unfortunate time we call this
Minecraft minecraft = Minecraft.getInstance();
if (minecraft != null) {
IResourceManager manager = minecraft.getResourceManager();
if (manager instanceof IReloadableResourceManager) {
((IReloadableResourceManager) manager).registerReloadListener(this);
}
}
}
public void notifyError() {
shouldCrash = true;
@ -71,11 +74,11 @@ public class Loader implements ISelectiveResourceReloadListener {
ModLoader.get()
.postEvent(new GatherContextEvent(backend));
backend.sources = new ShaderSources(manager);
ShaderSources sources = new ShaderSources(manager);
loadProgramSpecs(manager);
Resolver.INSTANCE.resolve(backend.sources);
Resolver.INSTANCE.resolve(sources);
for (IShaderContext<?> context : backend.allContexts()) {
context.load();