remove old make_graphics_window function

This commit is contained in:
David Rose 2003-01-11 17:07:40 +00:00
parent 61fecf0e5c
commit ad00ca3a21
3 changed files with 57 additions and 90 deletions

View File

@ -99,7 +99,7 @@ class ShowBase(DirectObject.DirectObject):
self.dgTrav = DataGraphTraverser() self.dgTrav = DataGraphTraverser()
# base.win is the main, or only window; base.winList is a list of # base.win is the main, or only window; base.winList is a list of
# *all* windows. Similarly with base.pipeList and base.camList. # *all* windows. Similarly with base.camList.
self.win = None self.win = None
self.winList = [] self.winList = []
self.mainWinMinimized = 0 self.mainWinMinimized = 0
@ -189,14 +189,7 @@ class ShowBase(DirectObject.DirectObject):
is closed cleanly, so that we free system resources, restore is closed cleanly, so that we free system resources, restore
the desktop and keyboard functionality, etc. the desktop and keyboard functionality, etc.
""" """
# Temporary try .. except for new window code self.graphicsEngine.removeAllWindows()
try:
# new window code
self.graphicsEngine.removeAllWindows()
except:
# old window code
for win in self.winList:
win.closeWindow()
del self.win del self.win
del self.winList del self.winList
del self.pipe del self.pipe
@ -209,6 +202,55 @@ class ShowBase(DirectObject.DirectObject):
if self.oldexitfunc: if self.oldexitfunc:
self.oldexitfunc() self.oldexitfunc()
def makeDefaultPipe(self):
"""makeDefaultPipe(self)
Creates the default GraphicsPipe, which will be used to make
windows unless otherwise specified.
"""
assert(self.pipe == None)
selection = GraphicsPipeSelection.getGlobalPtr()
selection.printPipeTypes()
self.pipe = selection.makeDefaultPipe()
if not self.pipe:
self.notify.error("No graphics pipe is available! Check your Configrc!")
self.notify.info("Default graphics pipe is %s (%s)." % (self.pipe.getInterfaceName(), self.pipe.getType().getName()))
self.pipeList.append(self.pipe)
def makeAllPipes(self):
"""makeAllPipes(self)
Creates all GraphicsPipes that the system knows about and fill up
self.pipeList with them.
"""
shouldPrintPipes = 0
selection = GraphicsPipeSelection.getGlobalPtr()
selection.loadAuxModules()
# First, we should make sure the default pipe exists.
if self.pipe == None:
self.makeDefaultPipe()
# Now go through the list of known pipes, and make each one if
# we don't have one already.
numPipeTypes = selection.getNumPipeTypes()
for i in range(numPipeTypes):
pipeType = selection.getPipeType(i)
# Do we already have a pipe of this type on the list?
# This operation is n-squared, but presumably there won't
# be more than a handful of pipe types, so who cares.
already = 0
for pipe in self.pipeList:
if pipe.getType() == pipeType:
already = 1
if not already:
pipe = selection.makePipe(pipeType)
if pipe:
self.notify.info("Got aux graphics pipe %s (%s)." % (pipe.getInterfaceName(), pipe.getType().getName()))
self.pipeList.append(pipe)
else:
self.notify.info("Could not make graphics pipe %s." % (pipeType.getName()))
def openWindow(self): def openWindow(self):
"""openWindow(self) """openWindow(self)
Invokes ChanConfig to create a window and adds it to the list Invokes ChanConfig to create a window and adds it to the list
@ -216,18 +258,11 @@ class ShowBase(DirectObject.DirectObject):
""" """
if self.pipe == None: if self.pipe == None:
self.pipe = makeGraphicsPipe() self.makeDefaultPipe()
self.pipeList.append(self.pipe)
# Temporary try .. except for new window code. chanString = self.config.GetString('chan-config', 'single')
try: chanConfig = ChanConfig(self.graphicsEngine, self.pipe, chanString,
# old window code self.render)
chanConfig = makeGraphicsWindow(self.graphicsEngine, self.pipe, self.render)
except:
# new window code
chanString = self.config.GetString('chan-config', 'single')
chanConfig = ChanConfig(self.graphicsEngine, self.pipe, chanString,
self.render)
win = chanConfig.getWin() win = chanConfig.getWin()
@ -243,14 +278,6 @@ class ShowBase(DirectObject.DirectObject):
self.win = win self.win = win
self.winList.append(win) self.winList.append(win)
# temporary try..except to support new window code
try:
# new window code
self.graphicsEngine.addWindow(win)
except:
# old window code
pass
self.getCameras(chanConfig) self.getCameras(chanConfig)
return win return win

View File

@ -24,19 +24,7 @@
#include "renderBuffer.h" #include "renderBuffer.h"
#include "get_config_path.h" #include "get_config_path.h"
#include "camera.h" #include "camera.h"
// You should define this unless you don't have the new GraphicsWindow
// code yet. drose checked this in to Panda at around 12:30pm on
// Thursday, Jan 9; if you haven't updated your Panda since then you
// should either go update it (and prepare for a long build) or just
// comment this out to run for the short term with the old code.
#define NEW_WINDOW_CODE 1
#ifdef NEW_WINDOW_CODE
#include "graphicsPipeSelection.h" #include "graphicsPipeSelection.h"
#else
#include "interactiveGraphicsPipe.h"
#endif
ConfigureDef(config_showbase); ConfigureDef(config_showbase);
@ -49,52 +37,6 @@ get_particle_path() {
return get_config_path("particle-path", particle_path); return get_config_path("particle-path", particle_path);
} }
// Default channel config
std::string chan_config = "single";
std::string window_title = "Panda3D";
PT(GraphicsPipe)
make_graphics_pipe() {
PT(GraphicsPipe) main_pipe;
#ifdef NEW_WINDOW_CODE
GraphicsPipeSelection *selection = GraphicsPipeSelection::get_global_ptr();
selection->resolve_modules();
nout << "Known pipe types:" << endl;
int num_pipe_types = selection->get_num_pipe_types();
for (int i = 0; i < num_pipe_types; i++) {
nout << " " << selection->get_pipe_type(i) << "\n";
}
main_pipe = selection->make_default_pipe();
#else // NEW_WINDOW_CODE
// load display modules
GraphicsPipe::resolve_modules();
nout << "Known pipe types:" << endl;
GraphicsPipe::get_factory().write_types(nout, 2);
// Create a window
main_pipe = GraphicsPipe::get_factory().
make_instance(InteractiveGraphicsPipe::get_class_type());
#endif // NEW_WINDOW_CODE
if (main_pipe == (GraphicsPipe*)0L) {
nout << "No interactive pipe is available! Check your Configrc!\n";
return NULL;
}
nout << "Opened a '" << main_pipe->get_type().get_name()
<< "' interactive graphics pipe." << endl;
return main_pipe;
}
// Throw the "NewFrame" event in the C++ world. Some of the lerp code // Throw the "NewFrame" event in the C++ world. Some of the lerp code
// depends on receiving this. // depends on receiving this.
void void
@ -148,9 +90,8 @@ void add_fullscreen_testsize(unsigned int xsize,unsigned int ysize) {
} }
void runtest_fullscreen_sizes(GraphicsWindow *win) { void runtest_fullscreen_sizes(GraphicsWindow *win) {
#ifndef NEW_WINDOW_CODE // TODO.
(void) win->verify_window_sizes(num_fullscreen_testsizes,fullscreen_testsizes); // win->verify_window_sizes(num_fullscreen_testsizes,fullscreen_testsizes);
#endif // NEW_WINDOW_CODE
} }
bool query_fullscreen_testresult(unsigned int xsize,unsigned int ysize) { bool query_fullscreen_testresult(unsigned int xsize,unsigned int ysize) {

View File

@ -42,7 +42,6 @@ BEGIN_PUBLISH
EXPCL_DIRECT DSearchPath &get_particle_path(); EXPCL_DIRECT DSearchPath &get_particle_path();
EXPCL_DIRECT PT(GraphicsPipe) make_graphics_pipe();
EXPCL_DIRECT void throw_new_frame(); EXPCL_DIRECT void throw_new_frame();
EXPCL_DIRECT void take_snapshot(GraphicsWindow *win, const string &name); EXPCL_DIRECT void take_snapshot(GraphicsWindow *win, const string &name);