Revision 39086ebb
Added by Leszek Koltunski almost 8 years ago
src/main/java/org/distorted/library/DistortedNode.java | ||
---|---|---|
194 | 194 |
if( mParent!=null ) mParent.adjustIsomorphism(); |
195 | 195 |
} |
196 | 196 |
|
197 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
198 |
// return the total number of render calls issued |
|
199 |
|
|
200 |
int draw(long currTime, DistortedOutputSurface surface) |
|
201 |
{ |
|
202 |
DistortedInputSurface input = mNumChildren[0]==0 ? mSurface : mData.mFBO; |
|
203 |
|
|
204 |
if( input.setAsInput() ) |
|
205 |
{ |
|
206 |
mState.apply(); |
|
207 |
mEffects.drawPriv(mSurface.getWidth()/2.0f, mSurface.getHeight()/2.0f, mMesh, surface, currTime); |
|
208 |
return 1; |
|
209 |
} |
|
210 |
|
|
211 |
return 0; |
|
212 |
} |
|
213 |
|
|
214 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
215 |
// return the total number of render calls issued |
|
216 |
|
|
217 |
int renderRecursive(long currTime) |
|
218 |
{ |
|
219 |
int numRenders = 0; |
|
220 |
|
|
221 |
if( mNumChildren[0]>0 && mData.currTime!=currTime ) |
|
222 |
{ |
|
223 |
mData.currTime = currTime; |
|
224 |
|
|
225 |
for (int i=0; i<mNumChildren[0]; i++) |
|
226 |
{ |
|
227 |
numRenders += mChildren.get(i).renderRecursive(currTime); |
|
228 |
} |
|
229 |
|
|
230 |
mData.mFBO.setAsOutput(); |
|
231 |
|
|
232 |
GLES30.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); |
|
233 |
GLES30.glClear( GLES30.GL_DEPTH_BUFFER_BIT | GLES30.GL_COLOR_BUFFER_BIT); |
|
234 |
|
|
235 |
if( mSurface.setAsInput() ) |
|
236 |
{ |
|
237 |
numRenders++; |
|
238 |
DistortedEffects.blitPriv(mData.mFBO); |
|
239 |
} |
|
240 |
|
|
241 |
// 'renderChildren' |
|
242 |
for(int i=0; i<mNumChildren[0]; i++) |
|
243 |
{ |
|
244 |
numRenders += mChildren.get(i).draw(currTime,mData.mFBO); |
|
245 |
} |
|
246 |
} |
|
247 |
|
|
248 |
return numRenders; |
|
249 |
} |
|
250 |
|
|
197 | 251 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
198 | 252 |
// return the total number of render calls issued |
199 | 253 |
|
src/main/java/org/distorted/library/DistortedOutputSurface.java | ||
---|---|---|
103 | 103 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
104 | 104 |
// PUBLIC API |
105 | 105 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
106 |
|
|
107 |
public int render(long time) |
|
108 |
{ |
|
109 |
DistortedAttachDaemon.toDo(); |
|
110 |
toDo(); |
|
111 |
DistortedRenderState.reset(); |
|
112 |
|
|
113 |
int numRenders=0; |
|
114 |
|
|
115 |
for(int i=0; i<mNumChildren; i++) |
|
116 |
{ |
|
117 |
numRenders += mChildren.get(i).renderRecursive(time); |
|
118 |
} |
|
119 |
|
|
120 |
setAsOutput(); |
|
121 |
|
|
122 |
// 'renderChildren' |
|
123 |
for(int i=0; i<mNumChildren; i++) |
|
124 |
{ |
|
125 |
numRenders += mChildren.get(i).draw(time,this); |
|
126 |
} |
|
127 |
|
|
128 |
return numRenders; |
|
129 |
} |
|
130 |
|
|
131 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
132 |
|
|
106 | 133 |
/** |
107 | 134 |
* Draws all the attached children to this OutputSurface. |
108 | 135 |
* <p> |
... | ... | |
111 | 138 |
* @param time Current time, in milliseconds. This will be passed to all the Effects stored in the children Nodes. |
112 | 139 |
* @return Number of objects rendered. |
113 | 140 |
*/ |
114 |
public int render(long time) |
|
141 |
public int renderOld(long time)
|
|
115 | 142 |
{ |
116 | 143 |
// change tree topology (attach and detach children) |
117 | 144 |
/* |
Also available in: Unified diff
New method of rendering.
Advantage: now there's one (well, ATM two, but I hope soon really in one) place where we can have a look at all the Meshes that are being rendered to a OutputSurface.
This should help with proper per-object POSTPROCESSING effects like Multiblur.