14#ifndef GRAPHICSPIPESELECTION_H
15#define GRAPHICSPIPESELECTION_H
33class EXPCL_PANDA_DISPLAY GraphicsPipeSelection {
35 GraphicsPipeSelection();
36 ~GraphicsPipeSelection();
46 const std::string &module_name = std::string());
48 PT(
GraphicsPipe) make_module_pipe(
const std::string &module_name);
61 INLINE
void load_default_module()
const;
62 void do_load_default_module();
63 TypeHandle load_named_module(
const std::string &name);
67 std::string _module_name;
71 typedef pmap<std::string, LoadedModule> LoadedModules;
72 LoadedModules _loaded_modules;
77 INLINE PipeType(
TypeHandle type, PipeConstructorFunc *constructor);
79 PipeConstructorFunc *_constructor;
81 typedef pvector<PipeType> PipeTypes;
82 PipeTypes _pipe_types;
85 typedef vector_string DisplayModules;
86 DisplayModules _display_modules;
87 std::string _default_display_module;
88 std::string _default_pipe_name;
89 bool _default_module_loaded;
91 static GraphicsPipeSelection *_global_ptr;
get_pipe_type
Returns the nth type of GraphicsPipe available through this interface.
static GraphicsPipeSelection * get_global_ptr()
Returns a pointer to the one global GraphicsPipeSelection object.
int get_num_aux_modules() const
Returns the number of display modules that are still to be loaded.
void print_pipe_types() const
Writes a list of the currently known GraphicsPipe types to nout, for the user's information.
void load_aux_modules()
Loads all the modules named in the aux-display Configrc variable, making as many graphics pipes as po...
get_num_pipe_types
Returns the number of different types of GraphicsPipes that are available to create through this inte...
bool add_pipe_type(TypeHandle type, PipeConstructorFunc *func)
Adds a new kind of GraphicsPipe to the list of available pipes for creation.
An object to create GraphicsOutputs that share a particular 3-D API.
A window, fullscreen or on a desktop, into which a graphics device sends its output for interactive d...
This is a standard, non-reentrant mutex, similar to the Mutex class.
TypeHandle is the identifier used to differentiate C++ class types.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.