From edeaeabd87be89de6e84e58f6d6f5ed7d5e516ed Mon Sep 17 00:00:00 2001 From: Josh Wilson Date: Sat, 28 Jul 2007 00:53:03 +0000 Subject: [PATCH] "let letterbox maintain its position if the on/off ival gets paused" --- direct/src/showbase/Transitions.py | 64 +++++++++++++++++------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/direct/src/showbase/Transitions.py b/direct/src/showbase/Transitions.py index cfa511baf7..3aab0801c0 100644 --- a/direct/src/showbase/Transitions.py +++ b/direct/src/showbase/Transitions.py @@ -295,7 +295,7 @@ class Transitions: ################################################## def loadLetterbox(self): - if self.letterbox == None: + if not self.letterbox: # We create a DirectFrame for the fade polygon, instead of # simply loading the polygon model and using it directly, # so that it will also obscure mouse events for objects @@ -356,7 +356,7 @@ class Transitions: # masad: always place these at the bottom of render self.letterboxTop.setBin('sorted',0) self.letterboxBottom.setBin('sorted',0) - + self.letterbox.reparentTo(render2d, -1) def noLetterbox(self): """ Removes any current letterbox tasks and parents the letterbox polygon away @@ -364,8 +364,8 @@ class Transitions: if self.letterboxIval: self.letterboxIval.pause() self.letterboxIval = None - if self.letterbox != None: - self.letterbox.detachNode() + if self.letterbox: + self.letterbox.stash() def letterboxOn(self, t=0.25, finishIval=None): """ @@ -373,23 +373,25 @@ class Transitions: """ self.noLetterbox() self.loadLetterbox() - self.letterbox.reparentTo(render2d, -1) + self.letterbox.unstash() if (t == 0): self.letterboxBottom.setPos(0, 0, -1) self.letterboxTop.setPos(0, 0, 0.8) else: - self.letterboxIval = Sequence(Parallel(LerpPosInterval(self.letterboxBottom, t, - pos = Vec3(0, 0, -1), - startPos = Vec3(0, 0, -1.2)), - LerpPosInterval(self.letterboxTop, t, - pos = Vec3(0, 0, 0.8), - startPos = Vec3(0, 0, 1)), - #LerpColorInterval(self.letterbox, t, - # color = self.alphaOn, - # startColor = self.alphaOff), - ), - name = self.letterboxTaskName, - ) + self.letterboxIval = Sequence(Parallel( + LerpPosInterval(self.letterboxBottom, + t, + pos = Vec3(0, 0, -1), + #startPos = Vec3(0, 0, -1.2), + ), + LerpPosInterval(self.letterboxTop, + t, + pos = Vec3(0, 0, 0.8), + # startPos = Vec3(0, 0, 1), + ), + ), + name = self.letterboxTaskName, + ) if finishIval: self.letterboxIval.append(finishIval) self.letterboxIval.start() @@ -400,19 +402,25 @@ class Transitions: """ self.noLetterbox() self.loadLetterbox() + self.letterbox.unstash() if (t == 0): - self.letterbox.detachNode() + self.letterbox.stash() else: - # self.letterbox.reparentTo(render2d, FADE_SORT_INDEX) - self.letterboxIval = Sequence(Parallel(LerpPosInterval(self.letterboxBottom, t, - pos = Vec3(0, 0, -1.2), - startPos = Vec3(0, 0, -1)), - LerpPosInterval(self.letterboxTop, t, - pos = Vec3(0, 0, 1), - startPos = Vec3(0, 0, 0.8)), - ), - name = self.letterboxTaskName, - ) + self.letterboxIval = Sequence(Parallel( + LerpPosInterval(self.letterboxBottom, + t, + pos = Vec3(0, 0, -1.2), + # startPos = Vec3(0, 0, -1), + ), + LerpPosInterval(self.letterboxTop, + t, + pos = Vec3(0, 0, 1), + # startPos = Vec3(0, 0, 0.8), + ), + ), + Func(self.letterbox.stash), + name = self.letterboxTaskName, + ) if finishIval: self.letterboxIval.append(finishIval) self.letterboxIval.start()