diff options
author | Jonathan Duran | 2012-02-09 12:10:37 -0800 |
---|---|---|
committer | Jonathan Duran | 2012-02-09 12:10:37 -0800 |
commit | 2092acf520e3f346f15e42c76c2f616e7d094c97 (patch) | |
tree | 9b6948aa3efc69015ed6988540e66984f34ef79c /js/helper-classes/RDGE/GLWorld.js | |
parent | 74832b23c768974f71a32044c5d5481909ece931 (diff) | |
download | ninja-2092acf520e3f346f15e42c76c2f616e7d094c97.tar.gz |
Squashed commit of the following:
commit ce81a3f4387d80f9ac406e73b843fb5dbe9cf432
Merge: e78f431 fba39db
Author: Valerio Virgillito <valerio@motorola.com>
Date: Thu Feb 9 11:57:35 2012 -0800
Merge pull request #26 from pushkarjoshi/pentool
Pentool
commit e78f4312c194d9e8188075cf1fe87e4be22b24e4
Author: Valerio Virgillito <valerio@motorola.com>
Date: Thu Feb 9 11:56:40 2012 -0800
adding oneway to the 3d bindings to fix a bug where the stage was getting selected.
Signed-off-by: Valerio Virgillito <valerio@motorola.com>
commit fba39dbb3bd64eddf6162fbf57232089e446fb06
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Thu Feb 9 10:50:05 2012 -0800
removing shaders
commit fa700027b541ec8f37c55f4fe17da5f78759ebd5
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 8 16:06:37 2012 -0800
fill all paths even if they are open
commit 18243deb66ab14a014756bfb0be1a52648c7771a
Merge: 802e92e 0537f8f
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 8 15:42:40 2012 -0800
Merge branch 'master' into pentool
Conflicts:
js/helper-classes/RDGE/GLWorld.js
js/helper-classes/RDGE/MaterialsLibrary.js
commit 802e92eb70b00849dadacf2c6590d27edbe65d99
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 8 15:39:47 2012 -0800
bug fixes for better anchor point rotation and removing snapping on hover and mouse down
commit 9b6b228524f14bf65ba60aaf3d0993c8ec5bff2d
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Tue Feb 7 15:22:11 2012 -0800
some minor bug fixes and code cleanup
commit 4bbe42e6d01fd0f81d13357a75b40eae9925dda3
Merge: e7aa17a 8950b34
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Tue Feb 7 07:21:27 2012 -0800
Merge branch 'master' into pentool
commit e7aa17a9b472640355e95c54841399f6203050d4
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Tue Feb 7 07:20:28 2012 -0800
don't use colorToHex function because it only works for 3D color (needs a fix to colorToHex)
commit acc500d1f1c76f4e7c93ae1cfea8d925ca95e7b9
Merge: 4d4de64 4222db9
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Thu Feb 2 11:28:45 2012 -0800
Merge branch 'working' of c:/Code/github/emueller/ninja-internal/ into pentool
commit 4d4de64472603426a73b26cc98ba8206190949b8
Merge: 0e87c02 5233508
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Thu Feb 2 11:19:30 2012 -0800
Merge branch 'master' into pentool
commit 4222db97e353fb65fab787ba5927d16d9fa4e1f7
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 16:18:26 2012 -0800
Removed a console log and set the Plasma material to animating.
commit 30bc466a0ac80f8303e223c19704b90457293cdc
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 15:57:20 2012 -0800
Fixed plane orientations for view orientations other than front.
commit 11db5a63bda57c630eaf1d8baded9b79ca7ac1f2
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 15:11:21 2012 -0800
listen for the appMouseUp event in the Pan tool
commit 823945a2bcb42bbf9c6a1cd0ef723b8f415e557f
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 14:39:46 2012 -0800
factor in the zoom factor when drawing the stage compass.
commit 0e87c02e74e08c7bf156373b0d2459563e17ecd6
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 1 14:38:15 2012 -0800
make GLAnchorPoint functions as part of its prototype
commit 5a288b9d3f8e6690149978d9d0e7bea98cc81312
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 14:09:24 2012 -0800
Fix for a marquee zoom bug.
commit 715f95cacead0025a57823e4cefa22e618f15df0
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 14:00:06 2012 -0800
mouse wheel for zoom tool
commit 62d38a080b2918a0284c854e9bf882bfeeea1e0b
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 1 13:21:11 2012 -0800
avoid overriding GlGeomObj translate method
commit 799369e153baf92eb10f26e91a1ab664900da8ed
Merge: b2ce8b8 c0f4374
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 13:06:17 2012 -0800
Merge branch 'ToolFixes' of github.com:mqg734/ninja-internal into working
commit b2ce8b819cc85a558d862c04965b7e65a6ce8640
Author: hwc487 <hwc487@motorola.com>
Date: Wed Feb 1 13:05:32 2012 -0800
changes to allow minimal rendering ofnon-animated materials.
commit ada488781ff815a827e7f5903f2c55773e3be0f3
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 1 12:16:11 2012 -0800
when selecting anchor points, first check if the selected anchor position is close enough
commit 107f79288ed87a282dd52075640297cc02bdf318
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Wed Feb 1 12:00:44 2012 -0800
performance improvement: add most of the GLSubpath functions to its prototype
commit c00d5d3072e487be200559f692ce4399222d5fa5
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Tue Jan 31 14:25:05 2012 -0800
handle the case of proper redraw when the alt key is held down even after mouse up
commit c006b3e75d5e23da63687a04cd30bf56a3a8a80d
Merge: f0e3fa6 1d8af9f
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Tue Jan 31 12:07:43 2012 -0800
Merge branch 'master' into pentool
commit f0e3fa691b3c042c9fc49a7a0cde8ddf8100c195
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Tue Jan 31 12:05:15 2012 -0800
display the anchor point to be selected on mouse hover
commit aa1b4b78d9e1b9cc15529dbf7196b7ac8a88e260
Merge: 0b8d8b2 6066b9b
Author: hwc487 <hwc487@motorola.com>
Date: Tue Jan 31 10:46:48 2012 -0800
Merge branch 'ToolFixes' of github.com:mqg734/ninja-internal into working
Conflicts:
js/stage/stage.reel/stage.js
commit 0b8d8b2eb595b64ef53440b949f3c5ec891daf8a
Merge: 8e43a46 e4837ed
Author: hwc487 <hwc487@motorola.com>
Date: Tue Jan 31 09:22:56 2012 -0800
Merge branch 'master' of github.com:Motorola-Mobility/ninja-internal into working
commit 8e43a46e3d79323fe06dc7771bc611a2c3c85c5c
Author: hwc487 <hwc487@motorola.com>
Date: Mon Jan 30 16:15:12 2012 -0800
Renderer startup handling of non-animated materials.
Changed zoom from the document bar to keep the location center of the viewable portion of the document fixed.
commit c41d2c2b749b67921f243fb7594ce0cdb1ccce36
Merge: 86a801c f129a23
Author: hwc487 <hwc487@motorola.com>
Date: Mon Jan 30 16:09:00 2012 -0800
Merge branch 'staging' of github.com:Motorola-Mobility/ninja-internal into working
commit 972e0ce4df7b332601ad006ca8b7dd9e189a59ef
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Mon Jan 30 14:38:48 2012 -0800
do the fill before the stroke for the path, so the stroke width renders acc. to user specification
commit da7ad067b146200847b543faf288844221dff928
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Mon Jan 30 14:30:31 2012 -0800
missed a couple of pen tool property files on last checkin
commit 76abbaafb0d90bb1dc9c63a5a5a78ab95bb00420
Author: Pushkar Joshi <pushkar@motorola.com>
Date: Mon Jan 30 13:56:33 2012 -0800
Merge pushkar branch on gerritt with github version
commit 86a801c057fc3b0580d6130be5740c2ee503444f
Author: hwc487 <hwc487@motorola.com>
Date: Fri Jan 27 15:52:36 2012 -0800
updated from old repo
Signed-off-by: Jonathan Duran <jduran@motorola.com>
Diffstat (limited to 'js/helper-classes/RDGE/GLWorld.js')
-rw-r--r-- | js/helper-classes/RDGE/GLWorld.js | 229 |
1 files changed, 200 insertions, 29 deletions
diff --git a/js/helper-classes/RDGE/GLWorld.js b/js/helper-classes/RDGE/GLWorld.js index 59f0bda0..b86d9715 100644 --- a/js/helper-classes/RDGE/GLWorld.js +++ b/js/helper-classes/RDGE/GLWorld.js | |||
@@ -65,6 +65,11 @@ function GLWorld( canvas, use3D ) | |||
65 | 65 | ||
66 | this._camera; | 66 | this._camera; |
67 | 67 | ||
68 | // keep a flag indicating whether a render has been completed. | ||
69 | // this allows us to turn off automatic updating if there are | ||
70 | // no animated materials | ||
71 | this._firstRender = true; | ||
72 | |||
68 | /////////////////////////////////////////////////////////////////////// | 73 | /////////////////////////////////////////////////////////////////////// |
69 | // Property accessors | 74 | // Property accessors |
70 | /////////////////////////////////////////////////////////////////////// | 75 | /////////////////////////////////////////////////////////////////////// |
@@ -103,6 +108,8 @@ function GLWorld( canvas, use3D ) | |||
103 | 108 | ||
104 | this.isWebGL = function() { return this._useWebGL; } | 109 | this.isWebGL = function() { return this._useWebGL; } |
105 | 110 | ||
111 | this.getRenderer = function() { return this.renderer; } | ||
112 | |||
106 | //////////////////////////////////////////////////////////////////////////////////// | 113 | //////////////////////////////////////////////////////////////////////////////////// |
107 | // RDGE | 114 | // RDGE |
108 | // local variables | 115 | // local variables |
@@ -114,6 +121,10 @@ function GLWorld( canvas, use3D ) | |||
114 | this.strokeShader = null; | 121 | this.strokeShader = null; |
115 | this.renderer = null; | 122 | this.renderer = null; |
116 | 123 | ||
124 | // keep an array of texture maps that need to be loaded | ||
125 | this._texMapsToLoad = []; | ||
126 | this._allMapsLoaded = true; | ||
127 | |||
117 | // this is the node to which objects get hung | 128 | // this is the node to which objects get hung |
118 | this._rootNode; | 129 | this._rootNode; |
119 | 130 | ||
@@ -214,18 +225,159 @@ function GLWorld( canvas, use3D ) | |||
214 | { | 225 | { |
215 | if (this._useWebGL) | 226 | if (this._useWebGL) |
216 | { | 227 | { |
217 | var ctx = g_Engine.getContext(); | 228 | if (this._allMapsLoaded) |
218 | //console.log( "RDGE state: " + ctx.ctxStateManager.currentState().name); | 229 | { |
219 | 230 | var ctx = g_Engine.getContext(); | |
220 | var renderer = ctx.renderer; | 231 | //console.log( "RDGE state: " + ctx.ctxStateManager.currentState().name); |
221 | renderer.disableCulling(); | 232 | |
222 | this.myScene.render(); | 233 | ///////////////////////////// |
234 | var ctx1 = g_Engine.ctxMan.handleToObject(this._canvas.rdgeCtxHandle); | ||
235 | if (ctx1 != ctx) console.log( "***** different contexts (2) *****" ); | ||
236 | var aRenderer = ctx1.renderer; | ||
237 | ////////////////////////////////////////// | ||
238 | |||
239 | var renderer = ctx.renderer; | ||
240 | if (renderer != aRenderer) console.log( "***** DIFFERENT RENDERERS *****" ); | ||
241 | renderer.disableCulling(); | ||
242 | this.myScene.render(); | ||
243 | //console.log( "render" ); | ||
244 | |||
245 | if (this._firstRender) | ||
246 | { | ||
247 | this._firstRender = false; | ||
248 | |||
249 | if (!this.hasAnimatedMaterials()) | ||
250 | { | ||
251 | //this.myScene.render(); | ||
252 | //this._canvas.task.stop(); | ||
253 | this._renderCount = 10; | ||
254 | } | ||
255 | } | ||
256 | else if (this._renderCount >= 0) | ||
257 | { | ||
258 | this._renderCount--; | ||
259 | if (this._renderCount <= 0) | ||
260 | this._canvas.task.stop(); | ||
261 | } | ||
262 | |||
263 | } | ||
223 | } | 264 | } |
224 | else | 265 | else |
225 | { | 266 | { |
226 | this.render(); | 267 | this.render(); |
227 | } | 268 | } |
228 | } | 269 | } |
270 | |||
271 | this.onRunState = function() | ||
272 | { | ||
273 | console.log( "GLWorld.onRunState" ); | ||
274 | this.restartRenderLoop(); | ||
275 | } | ||
276 | |||
277 | this.onLoadState = function() | ||
278 | { | ||
279 | console.log( "GLWorld.onLoadState" ); | ||
280 | } | ||
281 | |||
282 | this.textureToLoad = function( texture ) | ||
283 | { | ||
284 | if (!texture.previouslyReferenced) | ||
285 | { | ||
286 | var name = texture.lookUpName; | ||
287 | texture._world = this; | ||
288 | texture.callback = this.textureMapLoaded; | ||
289 | this._texMapsToLoad[name] = true; | ||
290 | this._allMapsLoaded = false; | ||
291 | |||
292 | // stop the draw loop until all textures have been loaded | ||
293 | this._canvas.task.stop(); | ||
294 | } | ||
295 | } | ||
296 | |||
297 | this.textureMapLoaded = function( texture ) | ||
298 | { | ||
299 | var world = texture._world; | ||
300 | if (!world) | ||
301 | { | ||
302 | console.log( "**** loaded texture does not have world defined ****" ); | ||
303 | return; | ||
304 | } | ||
305 | |||
306 | var name = texture.lookUpName; | ||
307 | if (!world._texMapsToLoad[name]) | ||
308 | { | ||
309 | console.log( "loaded an unregistered texture map: " + name ); | ||
310 | } | ||
311 | else | ||
312 | { | ||
313 | //console.log( "loaded a registered texture map: " + name ); | ||
314 | world._texMapsToLoad[name] = undefined; | ||
315 | } | ||
316 | |||
317 | // check if all the texture maps are loaded. if so, resume the render loop | ||
318 | world._allMapsLoaded = world.allTextureMapsLoaded(); | ||
319 | if (world._allMapsLoaded) | ||
320 | world._canvas.task.start(); | ||
321 | } | ||
322 | |||
323 | this.allTextureMapsLoaded = function() | ||
324 | { | ||
325 | for (var name in this._texMapsToLoad) | ||
326 | { | ||
327 | var needsLoad = this._texMapsToLoad[name]; | ||
328 | if (needsLoad) return false; | ||
329 | } | ||
330 | |||
331 | return true; | ||
332 | } | ||
333 | |||
334 | this.textureLoadedCallback = function( name ) | ||
335 | { | ||
336 | console.log( "*** material texture loaded: " + name ); | ||
337 | |||
338 | var world = this._world; | ||
339 | if (!world) | ||
340 | console.log( "**** world not defined for loaded texture map: " + name ); | ||
341 | else | ||
342 | world.textureMapLoaded( name ); | ||
343 | } | ||
344 | |||
345 | this.hasAnimatedMaterials = function() | ||
346 | { | ||
347 | var root = this.getGeomRoot(); | ||
348 | var rtnVal = false; | ||
349 | if (root) | ||
350 | rtnVal = this.hHasAnimatedMaterials( root ); | ||
351 | |||
352 | return rtnVal; | ||
353 | } | ||
354 | |||
355 | this.hHasAnimatedMaterials = function( obj ) | ||
356 | { | ||
357 | if (obj) | ||
358 | { | ||
359 | if (obj.getFillMaterial()) | ||
360 | { | ||
361 | if (obj.getFillMaterial().isAnimated()) return true; | ||
362 | } | ||
363 | |||
364 | if (obj.getStrokeMaterial()) | ||
365 | { | ||
366 | if (obj.getStrokeMaterial().isAnimated()) return true; | ||
367 | } | ||
368 | |||
369 | |||
370 | // do the sibling | ||
371 | var hasAnim = false; | ||
372 | if (obj.getNext()) hasAnim = this.hHasAnimatedMaterials( obj.getNext() ); | ||
373 | if (hasAnim) return true; | ||