| 4 | import java.util.List; |
| 5 | |
| 6 | public class Programs |
| 7 | { |
| 8 | private List<Program> programs = new ArrayList(); |
| 9 | private Program programNone = this.make("", ProgramStage.NONE, true); |
| 10 | |
| 11 | public Program make(String name, ProgramStage programStage, Program backupProgram) |
| 12 | { |
| 13 | int i = this.programs.size(); |
| 14 | Program program = new Program(i, name, programStage, backupProgram); |
| 15 | this.programs.add(program); |
| 16 | return program; |
| 17 | } |
| 18 | |
| 19 | private Program make(String name, ProgramStage programStage, boolean ownBackup) |
| 20 | { |
| 21 | int i = this.programs.size(); |
| 22 | Program program = new Program(i, name, programStage, ownBackup); |
| 23 | this.programs.add(program); |
| 24 | return program; |
| 25 | } |
| 26 | |
| 27 | public Program makeGbuffers(String name, Program backupProgram) |
| 28 | { |
| 29 | return this.make(name, ProgramStage.GBUFFERS, backupProgram); |
| 30 | } |
| 31 | |
| 32 | public Program makeComposite(String name) |
| 33 | { |
| 34 | return this.make(name, ProgramStage.COMPOSITE, this.programNone); |
| 35 | } |
| 36 | |
| 37 | public Program makeDeferred(String name) |
| 38 | { |
| 39 | return this.make(name, ProgramStage.DEFERRED, this.programNone); |
| 40 | } |
| 41 | |
| 42 | public Program makeShadow(String name, Program backupProgram) |
| 43 | { |
| 44 | return this.make(name, ProgramStage.SHADOW, backupProgram); |
| 45 | } |
| 46 | |
| 47 | public Program makeVirtual(String name) |
| 48 | { |
| 49 | return this.make(name, ProgramStage.NONE, true); |
| 50 | } |
| 51 | |
| 52 | public Program[] makeComposites(String prefix, int count) |
| 53 | { |
| 54 | Program[] aprogram = new Program[count]; |
| 55 | |
| 56 | for (int i = 0; i < count; ++i) |
| 57 | { |
| 58 | String s = i == 0 ? prefix : prefix + i; |
| 59 | aprogram[i] = this.makeComposite(s); |
| 60 | } |
| 61 | |
| 62 | return aprogram; |
| 63 | } |