57 |
Paper bg; |
Paper bg; |
58 |
|
|
59 |
Paper bgPaper; |
Paper bgPaper; |
60 |
|
Paper bgHaloPaper; |
61 |
Paper noBgPaper; |
Paper noBgPaper; |
62 |
|
|
63 |
/** Return callgl code to bind this page's texture |
/** Return callgl code to bind this page's texture |
102 |
*/ |
*/ |
103 |
public static String setupDualPass = null; |
public static String setupDualPass = null; |
104 |
|
|
105 |
|
/** Set up code for being the extra pass. |
106 |
|
* Take the value from texunit 0 and blend on top of it halo of texunit 1. |
107 |
|
*/ |
108 |
|
public static String setupHaloDualPass = null; |
109 |
|
|
110 |
|
public static boolean withHalo = false; |
111 |
|
|
112 |
public static String teardown = null; |
public static String teardown = null; |
113 |
|
|
114 |
int paperSeed; |
int paperSeed; |
133 |
throw new Error("Trying to use bg without papermill"); |
throw new Error("Trying to use bg without papermill"); |
134 |
bg = paperMill.getOptimizedPaper(paperSeed, paperMillWindow); |
bg = paperMill.getOptimizedPaper(paperSeed, paperMillWindow); |
135 |
} |
} |
136 |
if(bgPaper == null) { |
if(withHalo) { |
137 |
bgPaper = (Paper)bg.clone(); |
if (bgHaloPaper == null) { |
138 |
// Check if we have a single pass and single texture |
bgHaloPaper = (Paper)bg.clone(); |
139 |
// If yes, *assume*!!! that the right thing |
if(bgHaloPaper.getNPasses() == 1 && |
140 |
// to do is to just put the RGB value out. |
bgHaloPaper.getPass(0).getNTexGens() == 1) { |
141 |
if(bgPaper.getNPasses() == 1 && |
// Draw text-haloed paper |
142 |
bgPaper.getPass(0).getNTexGens() == 1) { |
Paper.Pass pass = bgHaloPaper.getPass(0); |
143 |
|
pass.setNTexGens(2); |
144 |
Paper.Pass pass = bgPaper.getPass(0); |
pass.putNormalTexGen(1, getTexgen()); |
145 |
pass.setNTexGens(2); |
pass.setSetupcode( |
146 |
pass.putNormalTexGen(1, getTexgen()); |
pass.getSetupcode() + |
147 |
pass.setSetupcode( |
setupHaloDualPass + |
148 |
pass.getSetupcode() + |
getBindTexture(1)); |
149 |
setupDualPass + getBindTexture(1)); |
pass.setTeardowncode(teardown + |
150 |
pass.setTeardowncode(teardown + |
pass.getTeardowncode()); |
151 |
pass.getTeardowncode()); |
|
152 |
|
// Draw text |
153 |
} else { |
addPaperPass(bgHaloPaper, setupExtraPass); |
154 |
// We don't have an optimized paper; |
} else { |
155 |
// add a pass. |
// We don't have an optimized paper; |
156 |
addPaperPass(bgPaper, setupExtraPass); |
// add a pass. |
157 |
|
addPaperPass(bgHaloPaper, setupExtraPass); |
158 |
|
// FIXME: add halo |
159 |
|
} |
160 |
|
} |
161 |
|
return bgHaloPaper; |
162 |
|
} else { |
163 |
|
if(bgPaper == null) { |
164 |
|
bgPaper = (Paper)bg.clone(); |
165 |
|
// Check if we have a single pass and single texture |
166 |
|
// If yes, *assume*!!! that the right thing |
167 |
|
// to do is to just put the RGB value out. |
168 |
|
if(bgPaper.getNPasses() == 1 && |
169 |
|
bgPaper.getPass(0).getNTexGens() == 1) { |
170 |
|
Paper.Pass pass = bgPaper.getPass(0); |
171 |
|
pass.setNTexGens(2); |
172 |
|
pass.putNormalTexGen(1, getTexgen()); |
173 |
|
pass.setSetupcode( |
174 |
|
pass.getSetupcode() + |
175 |
|
setupDualPass + getBindTexture(1)); |
176 |
|
pass.setTeardowncode(teardown + |
177 |
|
pass.getTeardowncode()); |
178 |
|
} else { |
179 |
|
// We don't have an optimized paper; |
180 |
|
// add a pass. |
181 |
|
addPaperPass(bgPaper, setupExtraPass); |
182 |
|
} |
183 |
} |
} |
184 |
|
return bgPaper; |
185 |
} |
} |
|
return bgPaper; |
|
186 |
} else { |
} else { |
187 |
if(noBgPaper == null) { |
if(noBgPaper == null) { |
188 |
noBgPaper = new Paper(); |
noBgPaper = new Paper(); |