move patch data to seperate files
This commit is contained in:
@@ -149,8 +149,8 @@ public class IrisShaderPatch {
|
|||||||
public String[] uniforms;
|
public String[] uniforms;
|
||||||
@JsonAdapter(SamplerDeserializer.class)
|
@JsonAdapter(SamplerDeserializer.class)
|
||||||
public Object2ObjectLinkedOpenHashMap<String, String> samplers;
|
public Object2ObjectLinkedOpenHashMap<String, String> samplers;
|
||||||
public String[] opaquePatchData;
|
public String opaquePatchData;
|
||||||
public String[] translucentPatchData;
|
public String translucentPatchData;
|
||||||
@JsonAdapter(SSBODeserializer.class)
|
@JsonAdapter(SSBODeserializer.class)
|
||||||
public Int2ObjectOpenHashMap<String> ssbos;
|
public Int2ObjectOpenHashMap<String> ssbos;
|
||||||
@JsonAdapter(BlendStateDeserializer.class)
|
@JsonAdapter(BlendStateDeserializer.class)
|
||||||
@@ -188,10 +188,10 @@ public class IrisShaderPatch {
|
|||||||
return new Int2ObjectLinkedOpenHashMap<>(this.ssbos);
|
return new Int2ObjectLinkedOpenHashMap<>(this.ssbos);
|
||||||
}
|
}
|
||||||
public String getPatchOpaqueSource() {
|
public String getPatchOpaqueSource() {
|
||||||
return String.join("\n", this.patchData.opaquePatchData);
|
return this.patchData.opaquePatchData;
|
||||||
}
|
}
|
||||||
public String getPatchTranslucentSource() {
|
public String getPatchTranslucentSource() {
|
||||||
return this.patchData.translucentPatchData!=null?String.join("\n", this.patchData.translucentPatchData):null;
|
return this.patchData.translucentPatchData;
|
||||||
}
|
}
|
||||||
public String getTAAShift() {
|
public String getTAAShift() {
|
||||||
return this.patchData.taaOffset == null?"{return vec2(0.0);}":this.patchData.taaOffset;
|
return this.patchData.taaOffset == null?"{return vec2(0.0);}":this.patchData.taaOffset;
|
||||||
@@ -293,7 +293,22 @@ public class IrisShaderPatch {
|
|||||||
voxyPatchData = builder.toString();
|
voxyPatchData = builder.toString();
|
||||||
}
|
}
|
||||||
patchData = GSON.fromJson(voxyPatchData, PatchGson.class);
|
patchData = GSON.fromJson(voxyPatchData, PatchGson.class);
|
||||||
if (patchData != null && !patchData.checkValid()) {
|
if (patchData != null) {
|
||||||
|
throw new IllegalStateException("voxy json patch not valid: " + voxyPatchData);
|
||||||
|
}
|
||||||
|
|
||||||
|
{//Inject data from the auxilery files if they are present
|
||||||
|
var opaque = sourceProvider.apply(directory.resolve("voxy_opaque.glsl"));
|
||||||
|
if (opaque != null) {
|
||||||
|
patchData.opaquePatchData = opaque;
|
||||||
|
}
|
||||||
|
var translucent = sourceProvider.apply(directory.resolve("voxy_translucent.glsl"));
|
||||||
|
if (translucent != null) {
|
||||||
|
patchData.translucentPatchData = translucent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!patchData.checkValid()) {
|
||||||
throw new IllegalStateException("voxy json patch not valid: " + voxyPatchData);
|
throw new IllegalStateException("voxy json patch not valid: " + voxyPatchData);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ public class MixinShaderPackSourceNames {
|
|||||||
private static ImmutableList.Builder<String> voxy$injectVoxyShaderPatch(Operation<ImmutableList.Builder<String>> original){
|
private static ImmutableList.Builder<String> voxy$injectVoxyShaderPatch(Operation<ImmutableList.Builder<String>> original){
|
||||||
var builder = original.call();
|
var builder = original.call();
|
||||||
builder.add("voxy.json");
|
builder.add("voxy.json");
|
||||||
|
builder.add("voxy_opaque.glsl");
|
||||||
|
builder.add("voxy_translucent.glsl");
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user