mirror of
https://github.com/GTNewHorizons/Angelica.git
synced 2026-11-15 17:55:08 +00:00
First pass at setup/begin pass support (#1335)
This commit is contained in:
1 parent
9d90ff137c
commit
3cdd934987
4 files changed
+175
-11
No files matched your search
@@ -20,6 +20,9 @@ public class ProgramSet {
|
||||
|
||||
private final ProgramSource[] shadowcomp;
|
||||
private final ComputeSource[][] shadowCompCompute;
|
||||
private final ComputeSource[] setup;
|
||||
private final ProgramSource[] begin;
|
||||
private final ComputeSource[][] beginCompute;
|
||||
private final ProgramSource[] prepare;
|
||||
private final ComputeSource[][] prepareCompute;
|
||||
|
||||
@@ -82,6 +85,14 @@ public class ProgramSet {
|
||||
this.shadowCompCompute[i] = readComputeArray(directory, sourceProvider, "shadowcomp" + ((i == 0) ? "" : i));
|
||||
}
|
||||
|
||||
this.setup = readComputeProgramArray(directory, sourceProvider, "setup");
|
||||
|
||||
this.begin = readProgramArray(directory, sourceProvider, "begin", shaderProperties);
|
||||
this.beginCompute = new ComputeSource[begin.length][];
|
||||
for (int i = 0; i < begin.length; i++) {
|
||||
this.beginCompute[i] = readComputeArray(directory, sourceProvider, "begin" + ((i == 0) ? "" : i));
|
||||
}
|
||||
|
||||
this.prepare = readProgramArray(directory, sourceProvider, "prepare", shaderProperties);
|
||||
this.prepareCompute = new ComputeSource[prepare.length][];
|
||||
for (int i = 0; i < prepare.length; i++) {
|
||||
@@ -162,6 +173,18 @@ public class ProgramSet {
|
||||
return programs;
|
||||
}
|
||||
|
||||
private ComputeSource[] readComputeProgramArray(AbsolutePackPath directory, Function<AbsolutePackPath, String> sourceProvider, String name) {
|
||||
ComputeSource[] programs = new ComputeSource[100];
|
||||
|
||||
for (int i = 0; i < programs.length; i++) {
|
||||
String suffix = i == 0 ? "" : Integer.toString(i);
|
||||
|
||||
programs[i] = readComputeSource(directory, sourceProvider, name + suffix, this);
|
||||
}
|
||||
|
||||
return programs;
|
||||
}
|
||||
|
||||
private ComputeSource[] readComputeArray(AbsolutePackPath directory,
|
||||
Function<AbsolutePackPath, String> sourceProvider, String name) {
|
||||
ComputeSource[] programs = new ComputeSource[27];
|
||||
@@ -187,6 +210,7 @@ public class ProgramSet {
|
||||
|
||||
programs.add(shadow);
|
||||
programs.addAll(Arrays.asList(shadowcomp));
|
||||
programs.addAll(Arrays.asList(begin));
|
||||
programs.addAll(Arrays.asList(prepare));
|
||||
|
||||
programs.addAll (Arrays.asList(
|
||||
@@ -212,6 +236,16 @@ public class ProgramSet {
|
||||
computes.addAll(Arrays.asList(computeSources));
|
||||
}
|
||||
|
||||
for (ComputeSource computeSource : setup) {
|
||||
if (computeSource != null) {
|
||||
computes.add(computeSource);
|
||||
}
|
||||
}
|
||||
|
||||
for (ComputeSource[] computeSources : beginCompute) {
|
||||
computes.addAll(Arrays.asList(computeSources));
|
||||
}
|
||||
|
||||
Collections.addAll(computes, finalCompute);
|
||||
Collections.addAll(computes, shadowCompute);
|
||||
|
||||
@@ -263,6 +297,18 @@ public class ProgramSet {
|
||||
return shadowcomp;
|
||||
}
|
||||
|
||||
public ComputeSource[] getSetup() {
|
||||
return setup;
|
||||
}
|
||||
|
||||
public ProgramSource[] getBegin() {
|
||||
return begin;
|
||||
}
|
||||
|
||||
public ComputeSource[][] getBeginCompute() {
|
||||
return beginCompute;
|
||||
}
|
||||
|
||||
public ProgramSource[] getPrepare() {
|
||||
return prepare;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user