support openWindow(host = xxx)

This commit is contained in:
David Rose 2013-05-06 17:09:29 +00:00
parent 20d60f2126
commit dd423baf64

View File

@ -580,8 +580,8 @@ class ShowBase(DirectObject.DirectObject):
pipeType.getName())) pipeType.getName()))
def openWindow(self, props = None, fbprops = None, pipe = None, gsg = None, def openWindow(self, props = None, fbprops = None, pipe = None, gsg = None,
type = None, name = None, size = None, aspectRatio = None, host = None, type = None, name = None, size = None,
makeCamera = True, keepCamera = False, aspectRatio = None, makeCamera = True, keepCamera = False,
scene = None, stereo = None, unexposedDraw = None, scene = None, stereo = None, unexposedDraw = None,
callbackWindowDict = None, requireWindow = None): callbackWindowDict = None, requireWindow = None):
""" """
@ -616,9 +616,10 @@ class ShowBase(DirectObject.DirectObject):
# parameters. # parameters.
func = lambda : self._doOpenWindow( func = lambda : self._doOpenWindow(
props = props, fbprops = fbprops, pipe = pipe, gsg = gsg, props = props, fbprops = fbprops, pipe = pipe, gsg = gsg,
type = type, name = name, size = size, aspectRatio = aspectRatio, host = host, type = type, name = name, size = size,
makeCamera = makeCamera, keepCamera = keepCamera, aspectRatio = aspectRatio, makeCamera = makeCamera,
scene = scene, stereo = stereo, unexposedDraw = unexposedDraw, keepCamera = keepCamera, scene = scene, stereo = stereo,
unexposedDraw = unexposedDraw,
callbackWindowDict = callbackWindowDict) callbackWindowDict = callbackWindowDict)
if self.win: if self.win:
@ -675,8 +676,9 @@ class ShowBase(DirectObject.DirectObject):
return win return win
def _doOpenWindow(self, props = None, fbprops = None, pipe = None, gsg = None, def _doOpenWindow(self, props = None, fbprops = None, pipe = None,
type = None, name = None, size = None, aspectRatio = None, gsg = None, host = None, type = None, name = None,
size = None, aspectRatio = None,
makeCamera = True, keepCamera = False, makeCamera = True, keepCamera = False,
scene = None, stereo = None, unexposedDraw = None, scene = None, stereo = None, unexposedDraw = None,
callbackWindowDict = None): callbackWindowDict = None):
@ -694,6 +696,7 @@ class ShowBase(DirectObject.DirectObject):
if isinstance(gsg, GraphicsOutput): if isinstance(gsg, GraphicsOutput):
# If the gsg is a window or buffer, it means to use the # If the gsg is a window or buffer, it means to use the
# GSG from that buffer. # GSG from that buffer.
host = gsg
gsg = gsg.getGsg() gsg = gsg.getGsg()
# If we are using DirectX, force a new GSG to be created, # If we are using DirectX, force a new GSG to be created,
@ -734,7 +737,10 @@ class ShowBase(DirectObject.DirectObject):
if callbackWindowDict: if callbackWindowDict:
flags = flags | GraphicsPipe.BFRequireCallbackWindow flags = flags | GraphicsPipe.BFRequireCallbackWindow
if gsg: if host:
win = self.graphicsEngine.makeOutput(pipe, name, 0, fbprops,
props, flags, host.getGsg(), host)
elif gsg:
win = self.graphicsEngine.makeOutput(pipe, name, 0, fbprops, win = self.graphicsEngine.makeOutput(pipe, name, 0, fbprops,
props, flags, gsg) props, flags, gsg)
else: else: