瀏覽代碼

explicit tinydisplay controls

David Rose 17 年之前
父節點
當前提交
77d2c851e6

+ 9 - 3
dtool/Config.pp

@@ -616,9 +616,15 @@
 // Similar to MIN_GL_VERSION, above.
 #define MIN_MESA_VERSION 1 1
 
-// We are experimenting with integrating TinyGL for fast but cheesy
-// software rendering.  Presently, this requires SDL for window
-// management.
+// Do you want to build tinydisplay, a cheesy software renderer built
+// into Panda, based on TinyGL?  On some platforms, this presently
+// requires SDL for window management.
+#define HAVE_TINYDISPLAY
+
+// The SDL library is at the moment required only for support of
+// tinydisplay.  It may not even be required for that, as we are in
+// the process of porting tinydisplay to direct OS-native window
+// creation.
 #define SDL_IPATH
 #define SDL_LPATH
 #define SDL_LIBS SDL

+ 21 - 0
dtool/LocalSetup.pp

@@ -116,6 +116,21 @@
 #else
 #print - Did not find DirectX9
 #endif
+#if $[HAVE_TINYDISPLAY]
+#print + Tinydisplay
+#else
+#print - Not building Tinydisplay
+#endif
+#if $[HAVE_SDL]
+#print + SDL
+#else
+#print - Did not find SDL
+#endif
+#if $[HAVE_MESA]
+#print + Mesa
+#else
+#print - Did not find Mesa
+#endif
 #if $[HAVE_OPENCV]
 #print + OpenCV
 #else
@@ -281,6 +296,12 @@ $[cdefine HAVE_DX8]
 /* Define if we have DirectX installed and want to build for DX.  */
 $[cdefine HAVE_DX9]
 
+/* Define if we want to build tinydisplay. */
+$[cdefine HAVE_TINYDISPLAY]
+
+/* Define if we have the SDL library. */
+$[cdefine HAVE_SDL]
+
 /* Define if we have Chromium installed and want to use it.  */
 $[cdefine HAVE_CHROMIUM]
 

+ 1 - 1
panda/src/tinydisplay/Sources.pp

@@ -1,4 +1,4 @@
-#define BUILD_DIRECTORY $[HAVE_SDL]
+#define BUILD_DIRECTORY $[HAVE_TINYDISPLAY]
 #define BUILDING_DLL BUILDING_TINYDISPLAY
 
 #define OTHER_LIBS interrogatedb:c dconfig:c dtoolconfig:m \

+ 2 - 0
panda/src/tinydisplay/config_tinydisplay.cxx

@@ -97,10 +97,12 @@ init_libtinydisplay() {
                            TinyXGraphicsPipe::pipe_constructor);
 #endif
 
+#ifdef HAVE_SDL
   TinySDLGraphicsPipe::init_type();
   TinySDLGraphicsWindow::init_type();
   selection->add_pipe_type(TinySDLGraphicsPipe::get_class_type(),
                            TinySDLGraphicsPipe::pipe_constructor);
+#endif
 
   PandaSystem *ps = PandaSystem::get_global_ptr();
   ps->add_system("TinyGL");

+ 6 - 0
panda/src/tinydisplay/tinySDLGraphicsPipe.cxx

@@ -16,6 +16,10 @@
 //
 ////////////////////////////////////////////////////////////////////
 
+#include "pandabase.h"
+
+#ifdef HAVE_SDL
+
 #include "tinySDLGraphicsPipe.h"
 #include "tinySDLGraphicsWindow.h"
 #include "tinyGraphicsStateGuardian.h"
@@ -123,3 +127,5 @@ make_output(const string &name,
   // Nothing else left to try.
   return NULL;
 }
+
+#endif  // HAVE_SDL

+ 5 - 0
panda/src/tinydisplay/tinySDLGraphicsPipe.h

@@ -20,6 +20,9 @@
 #define TINYSDLGRAPHICSPIPE_H
 
 #include "pandabase.h"
+
+#ifdef HAVE_SDL
+
 #include "graphicsWindow.h"
 #include "graphicsPipe.h"
 
@@ -68,4 +71,6 @@ private:
 
 #include "tinySDLGraphicsPipe.I"
 
+#endif  // HAVE_SDL
+
 #endif

+ 6 - 0
panda/src/tinydisplay/tinySDLGraphicsWindow.cxx

@@ -16,6 +16,10 @@
 //
 ////////////////////////////////////////////////////////////////////
 
+#include "pandabase.h"
+
+#ifdef HAVE_SDL
+
 #include "tinySDLGraphicsWindow.h"
 #include "tinyGraphicsStateGuardian.h"
 #include "config_tinydisplay.h"
@@ -529,3 +533,5 @@ get_mouse_button(Uint8 button) {
 
   return ButtonHandle::none();
 }
+
+#endif  // HAVE_SDL

+ 4 - 0
panda/src/tinydisplay/tinySDLGraphicsWindow.h

@@ -21,6 +21,8 @@
 
 #include "pandabase.h"
 
+#ifdef HAVE_SDL
+
 #include "tinySDLGraphicsPipe.h"
 #include "graphicsWindow.h"
 #include "buttonHandle.h"
@@ -84,4 +86,6 @@ private:
 
 #include "tinySDLGraphicsWindow.I"
 
+#endif  // HAVE_SDL
+
 #endif