Remove GLU dependency from Panda3D. Yes. That's right, folks.

And now I shall make myself some coffee and wake up, in that order.
This commit is contained in:
rdb 2010-12-19 07:03:49 +00:00
parent 4b4ccee24a
commit 0ea72a4712
19 changed files with 30 additions and 76 deletions

View File

@ -596,28 +596,20 @@
#define ZLIB_LIBS z #define ZLIB_LIBS z
#defer HAVE_ZLIB $[libtest $[ZLIB_LPATH],$[ZLIB_LIBS]] #defer HAVE_ZLIB $[libtest $[ZLIB_LPATH],$[ZLIB_LIBS]]
// Is OpenGL installed, and where? This should include libGL as well // Is OpenGL installed, and where?
// as libGLU, if they are in different places.
#defer GL_IPATH /usr/include #defer GL_IPATH /usr/include
#defer GL_LPATH #defer GL_LPATH
#defer GL_LIBS #defer GL_LIBS
#defer GLU_LIBS
#if $[WINDOWS_PLATFORM] #if $[WINDOWS_PLATFORM]
#define GL_LIBS opengl32.lib #define GL_LIBS opengl32.lib
#define GLU_LIBS glu32.lib
#elif $[OSX_PLATFORM] #elif $[OSX_PLATFORM]
#defer GL_FRAMEWORK OpenGL #defer GL_FRAMEWORK OpenGL
#else #else
#defer GL_LPATH /usr/X11R6/lib #defer GL_LPATH /usr/X11R6/lib
#defer GL_LIBS GL #defer GL_LIBS GL
#defer GLU_LIBS GLU
#endif #endif
#defer HAVE_GL $[libtest $[GL_LPATH],$[GL_LIBS]] #defer HAVE_GL $[libtest $[GL_LPATH],$[GL_LIBS]]
// GLU is an auxiliary library that is usually provided with OpenGL,
// but is sometimes missing (e.g. the default FC5 installation).
#defer HAVE_GLU $[libtest $[GL_LPATH],$[GLU_LIBS]]
// If you are having trouble linking in OpenGL extension functions at // If you are having trouble linking in OpenGL extension functions at
// runtime for some reason, you can set this variable. This defines // runtime for some reason, you can set this variable. This defines
// the minimum runtime version of OpenGL that Panda will require. // the minimum runtime version of OpenGL that Panda will require.

View File

@ -123,13 +123,19 @@
#endif #endif
#if $[HAVE_GL] #if $[HAVE_GL]
#print + OpenGL #print + OpenGL
#elif $[HAVE_GLES2]
#print + OpenGL ES 2
#elif $[HAVE_GLES]
#print + OpenGL ES
#else #else
#print - Did not find OpenGL #print - Did not find OpenGL
#endif #endif
#if $[HAVE_GLES]
#print + OpenGL ES 1
#else
#print - Did not find OpenGL ES 1
#endif
#if $[HAVE_GLES2]
#print + OpenGL ES 2
#else
#print - Did not find OpenGL ES 2
#endif
#if $[HAVE_DX8] #if $[HAVE_DX8]
#print + DirectX8 #print + DirectX8
#else #else
@ -341,7 +347,6 @@ $[cdefine HAVE_ZLIB]
/* Define if we have OpenGL installed and want to build for GL. */ /* Define if we have OpenGL installed and want to build for GL. */
$[cdefine HAVE_GL] $[cdefine HAVE_GL]
$[cdefine HAVE_GLU]
#if HAVE_GL #if HAVE_GL
# define MIN_GL_VERSION_MAJOR $[word 1,$[MIN_GL_VERSION]] # define MIN_GL_VERSION_MAJOR $[word 1,$[MIN_GL_VERSION]]
# define MIN_GL_VERSION_MINOR $[word 2,$[MIN_GL_VERSION]] # define MIN_GL_VERSION_MINOR $[word 2,$[MIN_GL_VERSION]]

View File

@ -221,9 +221,7 @@
#set GL_IPATH $[unixfilename $[GL_IPATH]] #set GL_IPATH $[unixfilename $[GL_IPATH]]
#set GL_LPATH $[unixfilename $[GL_LPATH]] #set GL_LPATH $[unixfilename $[GL_LPATH]]
#set GL_LIBS $[GL_LIBS] #set GL_LIBS $[GL_LIBS]
#set GLU_LIBS $[GLU_LIBS]
#set HAVE_GL $[HAVE_GL] #set HAVE_GL $[HAVE_GL]
#set HAVE_GLU $[HAVE_GLU]
#set GLES_IPATH $[unixfilename $[GLES_IPATH]] #set GLES_IPATH $[unixfilename $[GLES_IPATH]]
#set GLES_LPATH $[unixfilename $[GLES_LPATH]] #set GLES_LPATH $[unixfilename $[GLES_LPATH]]

View File

@ -123,7 +123,7 @@
#define gl_ipath $[wildcard $[GL_IPATH]] #define gl_ipath $[wildcard $[GL_IPATH]]
#define gl_lpath $[wildcard $[GL_LPATH]] #define gl_lpath $[wildcard $[GL_LPATH]]
#define gl_cflags $[GL_CFLAGS] #define gl_cflags $[GL_CFLAGS]
#define gl_libs $[GL_LIBS] $[if $[HAVE_GLU],$[GLU_LIBS]] #define gl_libs $[GL_LIBS]
#define gl_framework $[GL_FRAMEWORK] #define gl_framework $[GL_FRAMEWORK]
#endif #endif
@ -199,13 +199,6 @@
#define egl_libs $[EGL_LIBS] #define egl_libs $[EGL_LIBS]
#endif #endif
#if $[HAVE_GLUT]
#define glut_ipath $[wildcard $[GLUT_IPATH]]
#define glut_lpath $[wildcard $[GLUT_LPATH]]
#define glut_cflags $[GLUT_CFLAGS]
#define glut_libs $[GLUT_LIBS]
#endif
#if $[HAVE_DX8] #if $[HAVE_DX8]
#define dx8_ipath $[wildcard $[DX8_IPATH]] #define dx8_ipath $[wildcard $[DX8_IPATH]]
#define dx8_lpath $[wildcard $[DX8_LPATH]] #define dx8_lpath $[wildcard $[DX8_LPATH]]

View File

@ -406,7 +406,6 @@ if (COMPILER=="MSVC"):
LibName("WINGDI", "gdi32.lib") LibName("WINGDI", "gdi32.lib")
LibName("ADVAPI", "advapi32.lib") LibName("ADVAPI", "advapi32.lib")
LibName("GL", "opengl32.lib") LibName("GL", "opengl32.lib")
LibName("GL", "glu32.lib")
LibName("GLES", "libgles_cm.lib") LibName("GLES", "libgles_cm.lib")
LibName("GLES2", "libGLESv2.lib") LibName("GLES2", "libGLESv2.lib")
LibName("EGL", "libEGL.lib") LibName("EGL", "libEGL.lib")
@ -536,7 +535,7 @@ if (COMPILER=="LINUX"):
SmartPkgEnable("FFTW", "", ("fftw", "rfftw"), ("fftw.h", "rfftw.h")) SmartPkgEnable("FFTW", "", ("fftw", "rfftw"), ("fftw.h", "rfftw.h"))
SmartPkgEnable("FMODEX", "", ("fmodex"), ("fmodex", "fmodex/fmod.h")) SmartPkgEnable("FMODEX", "", ("fmodex"), ("fmodex", "fmodex/fmod.h"))
SmartPkgEnable("FREETYPE", "freetype2", ("freetype"), ("freetype2", "freetype2/freetype/freetype.h")) SmartPkgEnable("FREETYPE", "freetype2", ("freetype"), ("freetype2", "freetype2/freetype/freetype.h"))
SmartPkgEnable("GL", "gl", ("GL"), ("GL/gl.h", "GL/glu.h"), framework = "OpenGL") SmartPkgEnable("GL", "gl", ("GL"), ("GL/gl.h"), framework = "OpenGL")
SmartPkgEnable("GLES", "glesv1_cm", ("GLESv1_CM"), ("GLES/gl.h"), framework = "OpenGLES") SmartPkgEnable("GLES", "glesv1_cm", ("GLESv1_CM"), ("GLES/gl.h"), framework = "OpenGLES")
SmartPkgEnable("GLES2", "glesv2", ("GLESv2"), ("GLES2/gl2.h")) #framework = "OpenGLES"? SmartPkgEnable("GLES2", "glesv2", ("GLESv2"), ("GLES2/gl2.h")) #framework = "OpenGLES"?
SmartPkgEnable("EGL", "egl", ("EGL"), ("EGL/egl.h")) SmartPkgEnable("EGL", "egl", ("EGL"), ("EGL/egl.h"))
@ -3284,9 +3283,9 @@ if (not RUNTIME):
# #
if (not sys.platform.startswith("win") and PkgSkip("GL")==0 and PkgSkip("OSMESA")==0 and not RUNTIME): if (not sys.platform.startswith("win") and PkgSkip("GL")==0 and PkgSkip("OSMESA")==0 and not RUNTIME):
OPTS=['DIR:panda/src/mesadisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLUT', 'NVIDIACG', 'GL', 'OSMESA'] OPTS=['DIR:panda/src/mesadisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAMESA', 'NVIDIACG', 'GL', 'OSMESA']
TargetAdd('mesadisplay_composite.obj', opts=OPTS, input='mesadisplay_composite.cxx') TargetAdd('mesadisplay_composite.obj', opts=OPTS, input='mesadisplay_composite.cxx')
OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGLUT', 'NVIDIACG', 'GL'] OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAMESA', 'NVIDIACG', 'GL']
TargetAdd('libpandamesa.dll', input='mesadisplay_composite.obj') TargetAdd('libpandamesa.dll', input='mesadisplay_composite.obj')
TargetAdd('libpandamesa.dll', input='libp3glstuff.dll') TargetAdd('libpandamesa.dll', input='libp3glstuff.dll')
TargetAdd('libpandamesa.dll', input='libpandafx.dll') TargetAdd('libpandamesa.dll', input='libpandafx.dll')
@ -3306,9 +3305,9 @@ if (sys.platform != "win32" and sys.platform != "darwin" and PkgSkip("X11")==0 a
# #
if (sys.platform != "win32" and sys.platform != "darwin" and PkgSkip("GL")==0 and PkgSkip("X11")==0 and not RUNTIME): if (sys.platform != "win32" and sys.platform != "darwin" and PkgSkip("GL")==0 and PkgSkip("X11")==0 and not RUNTIME):
OPTS=['DIR:panda/src/glxdisplay', 'BUILDING:PANDAGLUT', 'GL', 'NVIDIACG', 'CGGL'] OPTS=['DIR:panda/src/glxdisplay', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL']
TargetAdd('glxdisplay_composite.obj', opts=OPTS, input='glxdisplay_composite.cxx') TargetAdd('glxdisplay_composite.obj', opts=OPTS, input='glxdisplay_composite.cxx')
OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGLUT', 'GL', 'NVIDIACG', 'CGGL'] OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL']
TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx')
TargetAdd('libpandagl.dll', input='x11display_composite.obj') TargetAdd('libpandagl.dll', input='x11display_composite.obj')
TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj')
@ -3324,10 +3323,10 @@ if (sys.platform != "win32" and sys.platform != "darwin" and PkgSkip("GL")==0 an
# #
if (sys.platform == 'darwin' and PkgSkip("GL")==0 and not RUNTIME): if (sys.platform == 'darwin' and PkgSkip("GL")==0 and not RUNTIME):
OPTS=['DIR:panda/src/osxdisplay', 'BUILDING:PANDAGLUT', 'GL', 'NVIDIACG', 'CGGL'] OPTS=['DIR:panda/src/osxdisplay', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL']
TargetAdd('osxdisplay_composite1.obj', opts=OPTS, input='osxdisplay_composite1.cxx') TargetAdd('osxdisplay_composite1.obj', opts=OPTS, input='osxdisplay_composite1.cxx')
TargetAdd('osxdisplay_osxGraphicsWindow.obj', opts=OPTS, input='osxGraphicsWindow.mm') TargetAdd('osxdisplay_osxGraphicsWindow.obj', opts=OPTS, input='osxGraphicsWindow.mm')
OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGLUT', 'GL', 'NVIDIACG', 'CGGL'] OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL']
TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx')
TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj')
TargetAdd('libpandagl.dll', input='glgsg_config_glgsg.obj') TargetAdd('libpandagl.dll', input='glgsg_config_glgsg.obj')

View File

@ -20,5 +20,5 @@
#define TARGET pandagl #define TARGET pandagl
#define SOURCES pandagl.cxx pandagl.h #define SOURCES pandagl.cxx pandagl.h
#define INSTALL_HEADERS pandagl.h #define INSTALL_HEADERS pandagl.h
#define WIN_SYS_LIBS opengl32.lib glu32.lib winmm.lib kernel32.lib oldnames.lib user32.lib gdi32.lib #define WIN_SYS_LIBS opengl32.lib winmm.lib kernel32.lib oldnames.lib user32.lib gdi32.lib
#end metalib_target #end metalib_target

View File

@ -1,6 +1,6 @@
// Filename: pandagl.cxx // Filename: pandagl.cxx
// Created by: drose (15May00) // Created by: drose (15May00)
// //
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
#include "pandagl.h" #include "pandagl.h"

View File

@ -22,7 +22,6 @@
#include "config_gles2gsg.h" #include "config_gles2gsg.h"
#define GLP(name) gl##name #define GLP(name) gl##name
#define GLUP(name) glu##name
#define CLP(name) GLES2##name #define CLP(name) GLES2##name
#define GLPREFIX_QUOTED "gl" #define GLPREFIX_QUOTED "gl"
#define CLASSPREFIX_QUOTED "GLES2" #define CLASSPREFIX_QUOTED "GLES2"

View File

@ -22,7 +22,6 @@
#include "config_glesgsg.h" #include "config_glesgsg.h"
#define GLP(name) gl##name #define GLP(name) gl##name
#define GLUP(name) glu##name
#define CLP(name) GLES##name #define CLP(name) GLES##name
#define GLPREFIX_QUOTED "gl" #define GLPREFIX_QUOTED "gl"
#define CLASSPREFIX_QUOTED "GLES" #define CLASSPREFIX_QUOTED "GLES"

View File

@ -23,7 +23,6 @@
#include "config_glgsg.h" #include "config_glgsg.h"
#define GLP(name) gl##name #define GLP(name) gl##name
#define GLUP(name) glu##name
#define CLP(name) GL##name #define CLP(name) GL##name
#define GLPREFIX_QUOTED "gl" #define GLPREFIX_QUOTED "gl"
#define CLASSPREFIX_QUOTED "GL" #define CLASSPREFIX_QUOTED "GL"
@ -70,14 +69,8 @@
#ifdef IS_OSX #ifdef IS_OSX
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#ifdef HAVE_GLU
#include <OpenGL/glu.h>
#endif
#else #else
#include <GL/gl.h> #include <GL/gl.h>
#ifdef HAVE_GLU
#include <GL/glu.h>
#endif
#endif #endif
#undef GL_GLEXT_VERSION #undef GL_GLEXT_VERSION

View File

@ -1,6 +1,6 @@
#define OTHER_LIBS interrogatedb:c dconfig:c dtoolconfig:m \ #define OTHER_LIBS interrogatedb:c dconfig:c dtoolconfig:m \
dtoolutil:c dtoolbase:c dtool:m prc:c dtoolutil:c dtoolbase:c dtool:m prc:c
#define USE_PACKAGES gl cggl
// Most of the files here are not actually compiled into anything; // Most of the files here are not actually compiled into anything;
// they're just included by various other directories. // they're just included by various other directories.

View File

@ -64,7 +64,7 @@
#include "graphicsEngine.h" #include "graphicsEngine.h"
#include "shaderGenerator.h" #include "shaderGenerator.h"
#ifdef HAVE_CG #if defined(HAVE_CG) && !defined(OPENGLES)
#include "Cg/cgGL.h" #include "Cg/cgGL.h"
#endif #endif
@ -838,7 +838,7 @@ reset() {
} }
} }
#ifdef HAVE_CG #if defined(HAVE_CG) && !defined(OPENGLES)
if (cgGLIsProfileSupported(CG_PROFILE_ARBFP1) && if (cgGLIsProfileSupported(CG_PROFILE_ARBFP1) &&
cgGLIsProfileSupported(CG_PROFILE_ARBVP1)) { cgGLIsProfileSupported(CG_PROFILE_ARBVP1)) {
_supports_basic_shaders = true; _supports_basic_shaders = true;
@ -1618,7 +1618,7 @@ reset() {
void gl_set_stencil_functions (StencilRenderStates *stencil_render_states); void gl_set_stencil_functions (StencilRenderStates *stencil_render_states);
gl_set_stencil_functions (_stencil_render_states); gl_set_stencil_functions (_stencil_render_states);
#ifdef HAVE_CG #if defined(HAVE_CG) && !defined(OPENGLES)
typedef struct typedef struct
{ {
@ -5173,13 +5173,8 @@ report_errors_loop(int line, const char *source_file, GLenum error_code,
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
string CLP(GraphicsStateGuardian):: string CLP(GraphicsStateGuardian)::
get_error_string(GLenum error_code) { get_error_string(GLenum error_code) {
#if defined(HAVE_GLU) && !defined(OPENGLES) // We used to use gluErrorString here, but I (rdb) took it out
const GLubyte *error_string = GLUP(ErrorString)(error_code); // because that was really the only function we used from GLU.
if (error_string != (const GLubyte *)NULL) {
return string((const char *)error_string);
}
#endif // HAVE_GLU
// The idea with the error table was taken from SGI's sample implementation. // The idea with the error table was taken from SGI's sample implementation.
static const char *error_strings[GL_OUT_OF_MEMORY - GL_INVALID_ENUM + 1] = { static const char *error_strings[GL_OUT_OF_MEMORY - GL_INVALID_ENUM + 1] = {
"invalid enumerant", "invalid enumerant",
@ -9635,7 +9630,7 @@ do_point_size() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
bool CLP(GraphicsStateGuardian):: bool CLP(GraphicsStateGuardian)::
get_supports_cg_profile(const string &name) const { get_supports_cg_profile(const string &name) const {
#ifndef HAVE_CG #if !defined(HAVE_CG) || defined(OPENGLES)
return false; return false;
#else #else
CGprofile profile = cgGetProfile(name.c_str()); CGprofile profile = cgGetProfile(name.c_str());

View File

@ -19,15 +19,14 @@
// file. // file.
// #define GLP(name): returns name prefixed by the gl prefix, e.g. gl##name // #define GLP(name): returns name prefixed by the gl prefix, e.g. gl##name
// #define GLUP(name): returns name prefixed by the glu prefix, e.g. glu##name
// #define CLP(name): returns name prefixed by the class prefix, e.g. GL##name // #define CLP(name): returns name prefixed by the class prefix, e.g. GL##name
// #define CLASSPREFIX_QUOTED: the quoted prefix of CLP, e.g. "GL" // #define CLASSPREFIX_QUOTED: the quoted prefix of CLP, e.g. "GL"
// #define CONFIGOBJ: a Configrc object, e.g. config_glgsg // #define CONFIGOBJ: a Configrc object, e.g. config_glgsg
// #define GLCAT: a Notify category, e.g. glgsg_cat // #define GLCAT: a Notify category, e.g. glgsg_cat
// #define EXPCL_GL, EXPTP_GL: according to the DLL currently being compiled. // #define EXPCL_GL, EXPTP_GL: according to the DLL currently being compiled.
// Also, be sure you include the appropriate gl.h and glu.h header // Also, be sure you include the appropriate gl.h header
// files to get all the standard GL symbols declared. GL extensions // file to get all the standard GL symbols declared. GL extensions
// are included here via glext.h. // are included here via glext.h.
// This file is not protected from multiple inclusion; it may need to // This file is not protected from multiple inclusion; it may need to

View File

@ -28,12 +28,10 @@
#ifdef MESA_MGL #ifdef MESA_MGL
#define GLP(name) mgl##name #define GLP(name) mgl##name
#define GLUP(name) mglu##name
#define GLPREFIX_QUOTED "mgl" #define GLPREFIX_QUOTED "mgl"
#define USE_MGL_NAMESPACE 1 #define USE_MGL_NAMESPACE 1
#else #else
#define GLP(name) gl##name #define GLP(name) gl##name
#define GLUP(name) glu##name
#define GLPREFIX_QUOTED "gl" #define GLPREFIX_QUOTED "gl"
#endif #endif
#define CLP(name) Mesa##name #define CLP(name) Mesa##name
@ -74,7 +72,6 @@
#define GL_GLEXT_VERSION 0 #define GL_GLEXT_VERSION 0
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glu.h>
#include <GL/osmesa.h> #include <GL/osmesa.h>
#undef GL_GLEXT_VERSION #undef GL_GLEXT_VERSION

View File

@ -15,7 +15,6 @@
#define __glext_h_ #define __glext_h_
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <AGL/agl.h> #include <AGL/agl.h>
#include "pandabase.h" #include "pandabase.h"

View File

@ -19,7 +19,6 @@
#include "pnmImage.h" #include "pnmImage.h"
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#import <mach-o/dyld.h> #import <mach-o/dyld.h>
// This is generated data for the standard texture we use for drawing // This is generated data for the standard texture we use for drawing

View File

@ -16,7 +16,6 @@
#define __glext_h_ #define __glext_h_
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <AGL/agl.h> #include <AGL/agl.h>
#include "pandabase.h" #include "pandabase.h"

View File

@ -20,7 +20,6 @@
#define __glext_h_ #define __glext_h_
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <AGL/agl.h> #include <AGL/agl.h>
#define HACK_SCREEN_HASH_CONTEXT true #define HACK_SCREEN_HASH_CONTEXT true

View File

@ -152,14 +152,6 @@
#define EXPTP_PANDAGLES2 extern #define EXPTP_PANDAGLES2 extern
#endif #endif
#ifdef BUILDING_PANDAGLUT
#define EXPCL_PANDAGLUT __declspec(dllexport)
#define EXPTP_PANDAGLUT
#else
#define EXPCL_PANDAGLUT __declspec(dllimport)
#define EXPTP_PANDAGLUT extern
#endif
#ifdef BUILDING_PANDAMESA #ifdef BUILDING_PANDAMESA
#define EXPCL_PANDAMESA __declspec(dllexport) #define EXPCL_PANDAMESA __declspec(dllexport)
#define EXPTP_PANDAMESA #define EXPTP_PANDAMESA
@ -298,9 +290,6 @@
#define EXPCL_PANDAGLES2 #define EXPCL_PANDAGLES2
#define EXPTP_PANDAGLES2 #define EXPTP_PANDAGLES2
#define EXPCL_PANDAGLUT
#define EXPTP_PANDAGLUT
#define EXPCL_PANDAMESA #define EXPCL_PANDAMESA
#define EXPTP_PANDAMESA #define EXPTP_PANDAMESA