Completely remove XDBE support, since XDBE is slower than XCopyArea and nobody else even uses it.
This commit is contained in:
parent
9ed50142b8
commit
beaa050cfb
|
@ -127,7 +127,6 @@ find_file(HAVE_SYS_DIR_H sys/dir.h)
|
|||
find_file(HAVE_SYS_NDIR_H sys/ndir.h)
|
||||
find_file(HAVE_SYS_SELECT_H sys/select.h)
|
||||
find_file(HAVE_SYS_STDTYPES_H sys/stdtypes.h)
|
||||
find_path(HAVE_XDBE_H Xdbe.h PATH_SUFFIXES X11/extensions extensions)
|
||||
|
||||
mark_as_advanced(HAVE_ALSA_ASOUNDLIB_H HAVE_DIRENT_H HAVE_DLFCN_H)
|
||||
mark_as_advanced(HAVE_FREETYPE_H HAVE_GL_GL_H HAVE_GL_GLU_H)
|
||||
|
@ -135,7 +134,7 @@ mark_as_advanced(HAVE_LIBPNG_PNG_H HAVE_LOCALE_H HAVE_NDIR_H)
|
|||
mark_as_advanced(HAVE_OPENGL_GLU_H HAVE_PNG_H HAVE_PTHREAD_H)
|
||||
mark_as_advanced(HAVE_STDIO_H HAVE_STRINGS_H HAVE_SYS_DIR_H)
|
||||
mark_as_advanced(HAVE_SYS_NDIR_H HAVE_SYS_SELECT_H)
|
||||
mark_as_advanced(HAVE_SYS_STDTYPES_H HAVE_XDBE_H)
|
||||
mark_as_advanced(HAVE_SYS_STDTYPES_H)
|
||||
|
||||
# where to find freetype headers
|
||||
find_path(FREETYPE_PATH freetype/config/ftheader.h PATH_SUFFIXES freetype2)
|
||||
|
@ -535,18 +534,6 @@ else()
|
|||
set(FLTK_XFT_FOUND FALSE)
|
||||
endif(OPTION_USE_XFT)
|
||||
|
||||
#######################################################################
|
||||
if(X11_FOUND)
|
||||
option(OPTION_USE_XDBE "use lib Xdbe" ON)
|
||||
endif(X11_FOUND)
|
||||
|
||||
if(OPTION_USE_XDBE AND HAVE_XDBE_H)
|
||||
set(HAVE_XDBE 1)
|
||||
set(FLTK_XDBE_FOUND TRUE)
|
||||
else()
|
||||
set(FLTK_XDBE_FOUND FALSE)
|
||||
endif(OPTION_USE_XDBE AND HAVE_XDBE_H)
|
||||
|
||||
#######################################################################
|
||||
# final setup and config
|
||||
#######################################################################
|
||||
|
|
28
configure.in
28
configure.in
|
@ -127,13 +127,11 @@ LIBNAME="../lib/libfltk.a"
|
|||
FLLIBNAME="../lib/libfltk_forms.a"
|
||||
GLLIBNAME="../lib/libfltk_gl.a"
|
||||
IMGLIBNAME="../lib/libfltk_images.a"
|
||||
CAIROLIBNAME="../lib/libfltk_cairo.a"
|
||||
|
||||
LIBBASENAME="libfltk.a"
|
||||
FLLIBBASENAME="libfltk_forms.a"
|
||||
GLLIBBASENAME="libfltk_gl.a"
|
||||
IMGLIBBASENAME="libfltk_images.a"
|
||||
CAIROLIBBASENAME="libfltk_cairo.a"
|
||||
|
||||
dnl Check for Cairo library unless disabled...
|
||||
CAIRODIR=""
|
||||
|
@ -154,8 +152,6 @@ if test x$enable_cairoext = xyes; then
|
|||
CAIROFLAGS="`pkg-config --cflags cairo`"
|
||||
CAIROLIBS="-lcairo -lpixman-1"
|
||||
CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
|
||||
LINKFLTKCAIRO="../lib/libfltk_cairo.a"
|
||||
FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX"
|
||||
LIBS="$CAIROLIBS $LIBS"
|
||||
dnl $LINKFLTKCAIRO
|
||||
LINKFLTK+=" $LINKFLTKCAIRO"
|
||||
|
@ -168,8 +164,6 @@ else
|
|||
CAIROFLAGS="`pkg-config --cflags cairo`"
|
||||
CAIROLIBS="-lcairo -lpixman-1"
|
||||
CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
|
||||
LINKFLTKCAIRO="../lib/libfltk_cairo.a"
|
||||
FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -226,7 +220,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.$FL_API_VERSION.dylib"
|
||||
GLDSONAME="libfltk_gl.$FL_API_VERSION.dylib"
|
||||
IMGDSONAME="libfltk_images.$FL_API_VERSION.dylib"
|
||||
CAIRODSONAME="libfltk_cairo.$FL_API_VERSION.dylib"
|
||||
DSOCOMMAND="\$(CXX) \$(ARCHFLAGS) \$(DSOFLAGS) -dynamiclib -lc -o"
|
||||
;;
|
||||
|
||||
|
@ -235,7 +228,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib"; then
|
||||
DSOLINK="-R$libdir"
|
||||
|
@ -246,7 +238,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.sl.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.sl.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.sl.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.sl.$FL_API_VERSION"
|
||||
DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
|
@ -257,7 +248,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32" -a "x$libdir" != "x/usr/lib64"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
|
@ -268,7 +258,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
|
@ -279,7 +268,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib64"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
|
@ -290,7 +278,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms_s.a"
|
||||
GLDSONAME="libfltk_gl_s.a"
|
||||
IMGDSONAME="libfltk_images_s.a"
|
||||
CAIRODSONAME="libfltk_cairo_s.a"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o"
|
||||
SHAREDSUFFIX="_s"
|
||||
;;
|
||||
|
@ -308,7 +295,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="cygfltk_forms-$FL_API_VERSION.dll"
|
||||
GLDSONAME="cygfltk_gl-$FL_API_VERSION.dll"
|
||||
IMGDSONAME="cygfltk_images-$FL_API_VERSION.dll"
|
||||
CAIRODSONAME="cygfltk_cairo-$FL_API_VERSION.dll"
|
||||
else
|
||||
DSONAME="cygfltknox-$FL_API_VERSION.dll"
|
||||
FLDSONAME="cygfltknox_forms-$FL_API_VERSION.dll"
|
||||
|
@ -333,7 +319,6 @@ if test x$enable_shared = xyes; then
|
|||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
|
||||
;;
|
||||
esac
|
||||
|
@ -996,16 +981,6 @@ case $uname_GUI in
|
|||
fi
|
||||
fi
|
||||
|
||||
dnl Check for the Xdbe extension unless disabled...
|
||||
AC_ARG_ENABLE(xdbe, [ --enable-xdbe turn on Xdbe support [default=yes]])
|
||||
|
||||
if test x$enable_xdbe != xno; then
|
||||
AC_CHECK_HEADER(X11/extensions/Xdbe.h, AC_DEFINE(HAVE_XDBE),,
|
||||
[#include <X11/Xlib.h>])
|
||||
AC_CHECK_LIB(Xext, XdbeQueryExtension,
|
||||
LIBS="-lXext $LIBS")
|
||||
fi
|
||||
|
||||
dnl Check for overlay visuals...
|
||||
AC_PATH_PROG(XPROP, xprop)
|
||||
AC_CACHE_CHECK(for X overlay visuals, ac_cv_have_overlay,
|
||||
|
@ -1336,9 +1311,6 @@ case $uname_GUI in
|
|||
if test x$enable_xft != xno; then
|
||||
graphics="$graphics+Xft"
|
||||
fi
|
||||
if test x$enable_xdbe != xno; then
|
||||
graphics="$graphics+Xdbe"
|
||||
fi
|
||||
if test x$enable_xinerama != xno; then
|
||||
graphics="$graphics+Xinerama"
|
||||
fi
|
||||
|
|
|
@ -85,11 +85,6 @@ if test -d $includedir/FL/images; then
|
|||
CXXFLAGS="-I$includedir/FL/images $CXXFLAGS"
|
||||
fi
|
||||
|
||||
if test -f "$libdir/libfltk_cairo.a"; then
|
||||
CFLAGS="$CAIROFLAGS $CFLAGS"
|
||||
CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
|
||||
fi
|
||||
|
||||
# libraries to link with:
|
||||
LIBNAME="@LIBNAME@"
|
||||
DSONAME="@DSONAME@"
|
||||
|
@ -256,8 +251,8 @@ if test x$use_images = xyes; then
|
|||
fi
|
||||
|
||||
if test x$use_cairo = xyes; then
|
||||
LDLIBS="-lfltk_cairo$SHAREDSUFFIX $CAIROLIBS $LDLIBS"
|
||||
LDSTATIC="$libdir/libfltk_cairo.a $CAIROLIBS $LDSTATIC"
|
||||
LDLIBS="$CAIROLIBS $LDLIBS"
|
||||
LDSTATIC="$CAIROLIBS $LDSTATIC"
|
||||
fi
|
||||
|
||||
LDLIBS="$DSOLINK $LDFLAGS $libs $LDLIBS"
|
||||
|
@ -377,7 +372,7 @@ if test "$echo_libs" = "yes"; then
|
|||
fi
|
||||
|
||||
if test x$use_cairo = xyes; then
|
||||
USELIBS="$libdir/libfltk_cairo.a $USELIBS"
|
||||
USELIBS="$USELIBS"
|
||||
fi
|
||||
|
||||
if test x$use_images = xyes; then
|
||||
|
|
|
@ -25,9 +25,6 @@ add_executable(fluid ${CPPFILES})
|
|||
target_link_libraries(fluid fltk fltk_images fltk_forms)
|
||||
|
||||
# link in optional libraries
|
||||
if(FLTK_HAVE_CAIRO)
|
||||
target_link_libraries(fluid fltk_cairo)
|
||||
endif(FLTK_HAVE_CAIRO)
|
||||
|
||||
if(FLTK_USE_GL)
|
||||
target_link_libraries(fluid fltk_gl)
|
||||
|
|
|
@ -36,34 +36,6 @@
|
|||
// Fl_Window class will probably do double-buffer and this subclass
|
||||
// does nothing.
|
||||
|
||||
#if USE_XDBE
|
||||
|
||||
#include <X11/extensions/Xdbe.h>
|
||||
|
||||
static int use_xdbe;
|
||||
|
||||
static int can_xdbe() {
|
||||
static int tried;
|
||||
if (!tried) {
|
||||
tried = 1;
|
||||
int event_base, error_base;
|
||||
if (!XdbeQueryExtension(fl_display, &event_base, &error_base)) return 0;
|
||||
Drawable root = RootWindow(fl_display,fl_screen);
|
||||
int numscreens = 1;
|
||||
XdbeScreenVisualInfo *a = XdbeGetVisualInfo(fl_display,&root,&numscreens);
|
||||
if (!a) return 0;
|
||||
for (int j = 0; j < a->count; j++) {
|
||||
if (a->visinfo[j].visual == fl_visual->visualid
|
||||
/*&& a->visinfo[j].perflevel > 0*/) {
|
||||
use_xdbe = 1; break;
|
||||
}
|
||||
}
|
||||
XdbeFreeVisualInfo(a);
|
||||
}
|
||||
return use_xdbe;
|
||||
}
|
||||
#endif
|
||||
|
||||
void Fl_Double_Window::show() {
|
||||
Fl_Window::show();
|
||||
}
|
||||
|
@ -336,12 +308,6 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
|||
//make_current(); // make sure fl_gc is non-zero
|
||||
Fl_X *myi = Fl_X::i(this);
|
||||
if (!myi->other_xid) {
|
||||
#if USE_XDBE
|
||||
if (can_xdbe()) {
|
||||
myi->other_xid = XdbeAllocateBackBufferName(fl_display, fl_xid(this), XdbeUndefined);
|
||||
myi->backbuffer_bad = 1;
|
||||
} else
|
||||
#endif
|
||||
#if defined(USE_X11) || defined(WIN32)
|
||||
myi->other_xid = fl_create_offscreen(w(), h());
|
||||
clear_damage(FL_DAMAGE_ALL);
|
||||
|
@ -354,46 +320,6 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
|||
# error unsupported platform
|
||||
#endif
|
||||
}
|
||||
#if USE_XDBE
|
||||
if (use_xdbe) {
|
||||
if (myi->backbuffer_bad) {
|
||||
// Make sure we do a complete redraw...
|
||||
if (myi->region) {XDestroyRegion(myi->region); myi->region = 0;}
|
||||
clear_damage(FL_DAMAGE_ALL);
|
||||
myi->backbuffer_bad = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
XdbeBeginIdiom( fl_display );
|
||||
// Redraw as needed...
|
||||
if (damage()) {
|
||||
fl_clip_region(myi->region); myi->region = 0;
|
||||
fl_window = myi->other_xid;
|
||||
#if FLTK_HAVE_CAIRO
|
||||
Fl::cairo_set_drawable( this );
|
||||
#endif
|
||||
draw();
|
||||
#if FLTK_HAVE_CAIRO
|
||||
cairo_surface_flush( myi->cs );
|
||||
#endif
|
||||
|
||||
fl_window = myi->xid;
|
||||
|
||||
}
|
||||
|
||||
// Copy contents of back buffer to window...
|
||||
|
||||
XdbeSwapInfo s;
|
||||
s.swap_window = myi->xid;
|
||||
s.swap_action = XdbeUndefined;
|
||||
XdbeSwapBuffers(fl_display, &s, 1);
|
||||
|
||||
XdbeEndIdiom( fl_display );
|
||||
|
||||
return;
|
||||
} else
|
||||
#endif
|
||||
|
||||
fl_clip_region(myi->region);
|
||||
|
||||
|
@ -433,7 +359,9 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
|||
|
||||
fl_window = myi->xid;
|
||||
|
||||
#if FLTK_HAVE_CAIRO
|
||||
Fl::cairo_set_drawable( this );
|
||||
#endif
|
||||
|
||||
fl_clip_region(myi->region);
|
||||
|
||||
|
@ -442,9 +370,6 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
|||
if (eraseoverlay) fl_clip_region(0);
|
||||
// on Irix (at least) it is faster to reduce the area copied to
|
||||
// the current clip region:
|
||||
#if USE_XDBE
|
||||
if ( !use_xdbe )
|
||||
#endif
|
||||
{
|
||||
int X,Y,W,H; fl_clip_box(0,0,w(),h(),X,Y,W,H);
|
||||
if (myi->other_xid) fl_copy_offscreen(X, Y, W, H, myi->other_xid, X, Y);
|
||||
|
@ -458,15 +383,6 @@ void Fl_Double_Window::resize(int X,int Y,int W,int H) {
|
|||
int ow = w();
|
||||
int oh = h();
|
||||
Fl_Window::resize(X,Y,W,H);
|
||||
#if USE_XDBE
|
||||
if (use_xdbe) {
|
||||
Fl_X* myi = Fl_X::i(this);
|
||||
if (myi && myi->other_xid && ( ow != w() || oh != h() ) ) {
|
||||
myi->backbuffer_bad = 1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
Fl_X* myi = Fl_X::i(this);
|
||||
if (myi && myi->other_xid && (ow != w() || oh != h())) {
|
||||
fl_delete_offscreen(myi->other_xid);
|
||||
|
@ -477,9 +393,6 @@ void Fl_Double_Window::resize(int X,int Y,int W,int H) {
|
|||
void Fl_Double_Window::hide() {
|
||||
Fl_X* myi = Fl_X::i(this);
|
||||
if (myi && myi->other_xid) {
|
||||
#if USE_XDBE
|
||||
if (!use_xdbe)
|
||||
#endif
|
||||
fl_delete_offscreen(myi->other_xid);
|
||||
}
|
||||
Fl_Window::hide();
|
||||
|
|
|
@ -84,10 +84,6 @@ int Fl::visual(int flags) {
|
|||
|
||||
#else
|
||||
|
||||
#if USE_XDBE
|
||||
#include <X11/extensions/Xdbe.h>
|
||||
#endif
|
||||
|
||||
static int test_visual(XVisualInfo& v, int flags) {
|
||||
if (v.screen != fl_screen) return 0;
|
||||
#if USE_COLORMAP
|
||||
|
@ -103,31 +99,11 @@ static int test_visual(XVisualInfo& v, int flags) {
|
|||
#else
|
||||
// simpler if we can't use colormapped visuals at all:
|
||||
if (v.c_class != StaticColor && v.c_class != TrueColor) return 0;
|
||||
#endif
|
||||
#if USE_XDBE
|
||||
if (flags & FL_DOUBLE) {
|
||||
static XdbeScreenVisualInfo *xdbejunk;
|
||||
if (!xdbejunk) {
|
||||
int event_base, error_base;
|
||||
if (!XdbeQueryExtension(fl_display, &event_base, &error_base)) return 0;
|
||||
Drawable root = RootWindow(fl_display,fl_screen);
|
||||
int numscreens = 1;
|
||||
xdbejunk = XdbeGetVisualInfo(fl_display,&root,&numscreens);
|
||||
if (!xdbejunk) return 0;
|
||||
}
|
||||
for (int j = 0; ; j++) {
|
||||
if (j >= xdbejunk->count) return 0;
|
||||
if (xdbejunk->visinfo[j].visual == v.visualid) break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
int Fl::visual(int flags) {
|
||||
#if USE_XDBE == 0
|
||||
if (flags & FL_DOUBLE) return 0;
|
||||
#endif
|
||||
fl_open_display();
|
||||
// always use default if possible:
|
||||
if (test_visual(*fl_visual, flags)) return 1;
|
||||
|
|
Loading…
Reference in New Issue