From fbc2b2b2132e38ef71775980cc122773e105f918 Mon Sep 17 00:00:00 2001 From: David Rose Date: Sat, 9 Aug 2008 03:57:23 +0000 Subject: [PATCH] tinybuffer for linux --- panda/src/tinydisplay/tinyGraphicsBuffer.cxx | 5 +---- panda/src/tinydisplay/tinyXGraphicsPipe.cxx | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/panda/src/tinydisplay/tinyGraphicsBuffer.cxx b/panda/src/tinydisplay/tinyGraphicsBuffer.cxx index a2fe8aa9e5..9b8f01ba61 100644 --- a/panda/src/tinydisplay/tinyGraphicsBuffer.cxx +++ b/panda/src/tinydisplay/tinyGraphicsBuffer.cxx @@ -130,10 +130,6 @@ close_buffer() { //////////////////////////////////////////////////////////////////// bool TinyGraphicsBuffer:: open_buffer() { - if (!GraphicsBuffer::open_buffer()) { - return false; - } - // GSG Creation/Initialization TinyGraphicsStateGuardian *tinygsg; if (_gsg == 0) { @@ -159,6 +155,7 @@ open_buffer() { return false; } + _is_valid = true; return true; } diff --git a/panda/src/tinydisplay/tinyXGraphicsPipe.cxx b/panda/src/tinydisplay/tinyXGraphicsPipe.cxx index a72be0c2ea..7ff3a2e7cf 100644 --- a/panda/src/tinydisplay/tinyXGraphicsPipe.cxx +++ b/panda/src/tinydisplay/tinyXGraphicsPipe.cxx @@ -18,6 +18,7 @@ #include "tinyXGraphicsPipe.h" #include "tinyXGraphicsWindow.h" #include "tinyGraphicsStateGuardian.h" +#include "tinyGraphicsBuffer.h" #include "config_tinydisplay.h" #include "frameBufferProperties.h" @@ -200,11 +201,6 @@ make_output(const string &name, GraphicsOutput *host, int retry, bool &precertify) { - - if (!_is_valid) { - return NULL; - } - TinyGraphicsStateGuardian *tinygsg = 0; if (gsg != 0) { DCAST_INTO_R(tinygsg, gsg, NULL); @@ -212,7 +208,7 @@ make_output(const string &name, // First thing to try: a TinyXGraphicsWindow - if (retry == 0) { + if (retry == 0 && _is_valid) { if (((flags&BF_require_parasite)!=0)|| ((flags&BF_refuse_window)!=0)|| ((flags&BF_resizeable)!=0)|| @@ -226,6 +222,16 @@ make_output(const string &name, flags, gsg, host); } + // Second thing to try: a TinyGraphicsBuffer + if (retry == 1) { + if ((!support_render_texture)|| + ((flags&BF_require_parasite)!=0)|| + ((flags&BF_require_window)!=0)) { + return NULL; + } + return new TinyGraphicsBuffer(this, name, fb_prop, win_prop, flags, gsg, host); + } + // Nothing else left to try. return NULL; }