Poodletooth-iLand/build/nirai/panda3d/panda/metalibs/pandagl/pandagl.cxx

87 lines
2.3 KiB
C++

// Filename: pandagl.cxx
// Created by: drose (15May00)
//
////////////////////////////////////////////////////////////////////
#include "pandagl.h"
#include "config_glgsg.h"
#ifdef HAVE_WGL
#include "config_wgldisplay.h"
#include "wglGraphicsPipe.h"
#endif
#if defined(HAVE_COCOA)
#include "config_cocoadisplay.h"
#include "cocoaGraphicsPipe.h"
#elif defined(HAVE_CARBON)
#include "config_osxdisplay.h"
#include "osxGraphicsPipe.h"
#endif
#ifdef HAVE_GLX
#include "config_glxdisplay.h"
#include "glxGraphicsPipe.h"
#endif
#if !defined(HAVE_WGL) && !defined(HAVE_COCOA) && !defined(HAVE_CARBON) && !defined(HAVE_GLX)
#error One of HAVE_WGL, HAVE_COCOA, HAVE_CARBON or HAVE_GLX must be defined when compiling pandagl!
#endif
// By including checkPandaVersion.h, we guarantee that runtime
// attempts to load libpandagl.so/.dll will fail if they inadvertently
// link with the wrong version of libdtool.so/.dll.
#include "checkPandaVersion.h"
////////////////////////////////////////////////////////////////////
// Function: init_libpandagl
// Description: Initializes the library. This must be called at
// least once before any of the functions or classes in
// this library can be used. Normally it will be
// called by the static initializers and need not be
// called explicitly, but special cases exist.
////////////////////////////////////////////////////////////////////
void
init_libpandagl() {
init_libglgsg();
#ifdef HAVE_WGL
init_libwgldisplay();
#endif // HAVE_GL
#if defined(HAVE_COCOA)
init_libcocoadisplay();
#elif defined(HAVE_CARBON)
init_libosxdisplay();
#endif
#ifdef IS_LINUX
init_libglxdisplay();
#endif
}
////////////////////////////////////////////////////////////////////
// Function: get_pipe_type_pandagl
// Description: Returns the TypeHandle index of the recommended
// graphics pipe type defined by this module.
////////////////////////////////////////////////////////////////////
int
get_pipe_type_pandagl() {
#ifdef HAVE_WGL
return wglGraphicsPipe::get_class_type().get_index();
#endif
#if defined(HAVE_COCOA)
return CocoaGraphicsPipe::get_class_type().get_index();
#elif defined(HAVE_CARBON)
return osxGraphicsPipe::get_class_type().get_index();
#endif
#ifdef HAVE_GLX
return glxGraphicsPipe::get_class_type().get_index();
#endif
return 0;
}