mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-08-30 09:58:55 +02:00
Finally worked out how to correctly use the OpenGL general-purpose
frame buffers and render buffers, and use fast frame buffer bit block transfers to do copies to and from backing store. Also found a long-standing problem where multiple windows fail to refresh properly in OpenGL and Cairo interfaces due to a lack of calling GrLock() and GrUnlock() around the call to fetch backing store after an expose event. The use of the general purpose frame buffer allows magic to avoid calling any indirect rendering methods and should now (finally) allow magic to run in OpenGL mode over a VNC. Use of direct rendering methods only also means that magic does not need to be compiled with the ad hoc switch to have Cairo handle drawing into pixmaps for the icons (this remains to be tested).
This commit is contained in:
+12
-14
@@ -4,7 +4,7 @@ running configure, to aid debugging if configure makes a mistake.
|
||||
It was created by configure, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ ./configure --enable-cairo-offscreen
|
||||
$ ./configure
|
||||
|
||||
## --------- ##
|
||||
## Platform. ##
|
||||
@@ -125,7 +125,7 @@ configure: failed program was:
|
||||
| #define PACKAGE_BUGREPORT ""
|
||||
| #define PACKAGE_URL ""
|
||||
| #define MAGIC_VERSION "8.2"
|
||||
| #define MAGIC_REVISION "27"
|
||||
| #define MAGIC_REVISION "29"
|
||||
| /* end confdefs.h. */
|
||||
| #include <ac_nonexistent.h>
|
||||
configure:3474: result: gcc -E
|
||||
@@ -146,7 +146,7 @@ configure: failed program was:
|
||||
| #define PACKAGE_BUGREPORT ""
|
||||
| #define PACKAGE_URL ""
|
||||
| #define MAGIC_VERSION "8.2"
|
||||
| #define MAGIC_REVISION "27"
|
||||
| #define MAGIC_REVISION "29"
|
||||
| /* end confdefs.h. */
|
||||
| #include <ac_nonexistent.h>
|
||||
configure:3594: checking for g++
|
||||
@@ -302,7 +302,7 @@ configure: failed program was:
|
||||
| #define PACKAGE_BUGREPORT ""
|
||||
| #define PACKAGE_URL ""
|
||||
| #define MAGIC_VERSION "8.2"
|
||||
| #define MAGIC_REVISION "27"
|
||||
| #define MAGIC_REVISION "29"
|
||||
| #define STDC_HEADERS 1
|
||||
| #define HAVE_SYS_TYPES_H 1
|
||||
| #define HAVE_SYS_STAT_H 1
|
||||
@@ -343,7 +343,7 @@ configure: failed program was:
|
||||
| #define PACKAGE_BUGREPORT ""
|
||||
| #define PACKAGE_URL ""
|
||||
| #define MAGIC_VERSION "8.2"
|
||||
| #define MAGIC_REVISION "27"
|
||||
| #define MAGIC_REVISION "29"
|
||||
| #define STDC_HEADERS 1
|
||||
| #define HAVE_SYS_TYPES_H 1
|
||||
| #define HAVE_SYS_STAT_H 1
|
||||
@@ -433,7 +433,7 @@ configure: failed program was:
|
||||
| #define PACKAGE_BUGREPORT ""
|
||||
| #define PACKAGE_URL ""
|
||||
| #define MAGIC_VERSION "8.2"
|
||||
| #define MAGIC_REVISION "27"
|
||||
| #define MAGIC_REVISION "29"
|
||||
| #define STDC_HEADERS 1
|
||||
| #define HAVE_SYS_TYPES_H 1
|
||||
| #define HAVE_SYS_STAT_H 1
|
||||
@@ -506,7 +506,7 @@ configure: failed program was:
|
||||
| #define PACKAGE_BUGREPORT ""
|
||||
| #define PACKAGE_URL ""
|
||||
| #define MAGIC_VERSION "8.2"
|
||||
| #define MAGIC_REVISION "27"
|
||||
| #define MAGIC_REVISION "29"
|
||||
| #define STDC_HEADERS 1
|
||||
| #define HAVE_SYS_TYPES_H 1
|
||||
| #define HAVE_SYS_STAT_H 1
|
||||
@@ -651,8 +651,8 @@ generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
on stravinsky
|
||||
|
||||
config.status:800: creating defs.mak
|
||||
config.status:903: WARNING: 'defs.mak.in' seems to ignore the --datarootdir setting
|
||||
config.status:799: creating defs.mak
|
||||
config.status:902: WARNING: 'defs.mak.in' seems to ignore the --datarootdir setting
|
||||
|
||||
## ---------------- ##
|
||||
## Cache variables. ##
|
||||
@@ -759,7 +759,7 @@ CPPFLAGS=''
|
||||
CSH='/bin/csh'
|
||||
CXX='g++'
|
||||
CXXFLAGS='-g -O2'
|
||||
DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DMAGIC_VERSION=\"8.2\" -DMAGIC_REVISION=\"27\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_VOID_P=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_LONG=8 -DSIZEOF_UNSIGNED_LONG_LONG=8 -DSTDC_HEADERS=1 -DHAVE_SETENV=1 -DHAVE_PUTENV=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_PATHS_H=1 -DHAVE_VA_COPY=1 -DHAVE___VA_COPY=1 -DFILE_LOCKS=1 -DCALMA_MODULE=1 -DCIF_MODULE=1 -DX11_BACKING_STORE=1 -DPLOT_MODULE=1 -DLEF_MODULE=1 -DROUTE_MODULE=1 -DUSE_NEW_MACROS=1 -DHAVE_LIBGL=1 -DHAVE_LIBGLU=1 -DVECTOR_FONTS=1 -DHAVE_LIBCAIRO=1 -DCAIRO_OFFSCREEN_RENDER=1 -DMAGIC_WRAPPER=1 -DTHREE_D=1 -Dlinux=1 -DSYSV=1 -DISC=1'
|
||||
DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DMAGIC_VERSION=\"8.2\" -DMAGIC_REVISION=\"29\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_VOID_P=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_LONG=8 -DSIZEOF_UNSIGNED_LONG_LONG=8 -DSTDC_HEADERS=1 -DHAVE_SETENV=1 -DHAVE_PUTENV=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_PATHS_H=1 -DHAVE_VA_COPY=1 -DHAVE___VA_COPY=1 -DFILE_LOCKS=1 -DCALMA_MODULE=1 -DCIF_MODULE=1 -DPLOT_MODULE=1 -DLEF_MODULE=1 -DROUTE_MODULE=1 -DUSE_NEW_MACROS=1 -DHAVE_LIBGL=1 -DHAVE_LIBGLU=1 -DVECTOR_FONTS=1 -DHAVE_LIBCAIRO=1 -DMAGIC_WRAPPER=1 -DTHREE_D=1 -Dlinux=1 -DSYSV=1 -DISC=1'
|
||||
DEPEND_FLAG='-MM'
|
||||
ECHO_C=''
|
||||
ECHO_N='printf'
|
||||
@@ -783,7 +783,7 @@ LIBS='-lcairo -lGLU -lGL '
|
||||
LIB_SPECS=' -L/usr/lib64 -ltk8.6 -L/usr/lib64 -ltcl8.6'
|
||||
LTLIBOBJS=''
|
||||
M4='/bin/m4'
|
||||
MAGIC_REVISION='27'
|
||||
MAGIC_REVISION='29'
|
||||
MAGIC_VERSION='8.2'
|
||||
MCPP='${MAGICDIR}/scripts/preproc.py'
|
||||
OA=''
|
||||
@@ -884,7 +884,7 @@ unused=' readline lisp'
|
||||
#define PACKAGE_BUGREPORT ""
|
||||
#define PACKAGE_URL ""
|
||||
#define MAGIC_VERSION "8.2"
|
||||
#define MAGIC_REVISION "27"
|
||||
#define MAGIC_REVISION "29"
|
||||
#define STDC_HEADERS 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
@@ -911,7 +911,6 @@ unused=' readline lisp'
|
||||
#define FILE_LOCKS 1
|
||||
#define CALMA_MODULE 1
|
||||
#define CIF_MODULE 1
|
||||
#define X11_BACKING_STORE 1
|
||||
#define PLOT_MODULE 1
|
||||
#define LEF_MODULE 1
|
||||
#define ROUTE_MODULE 1
|
||||
@@ -920,7 +919,6 @@ unused=' readline lisp'
|
||||
#define HAVE_LIBGLU 1
|
||||
#define VECTOR_FONTS 1
|
||||
#define HAVE_LIBCAIRO 1
|
||||
#define CAIRO_OFFSCREEN_RENDER 1
|
||||
#define MAGIC_WRAPPER 1
|
||||
#define THREE_D 1
|
||||
#define linux 1
|
||||
|
||||
@@ -417,7 +417,7 @@ $config_files
|
||||
|
||||
Report bugs to the package provider."
|
||||
|
||||
ac_cs_config="'--enable-cairo-offscreen' 'CFLAGS=-g'"
|
||||
ac_cs_config="'CFLAGS=-g'"
|
||||
ac_cs_version="\
|
||||
config.status
|
||||
configured by ./configure, generated by GNU Autoconf 2.69,
|
||||
@@ -496,7 +496,7 @@ if $ac_cs_silent; then
|
||||
fi
|
||||
|
||||
if $ac_cs_recheck; then
|
||||
set X /bin/sh './configure' '--enable-cairo-offscreen' 'CFLAGS=-g' $ac_configure_extra_args --no-create --no-recursion
|
||||
set X /bin/sh './configure' 'CFLAGS=-g' $ac_configure_extra_args --no-create --no-recursion
|
||||
shift
|
||||
$as_echo "running CONFIG_SHELL=/bin/sh $*" >&6
|
||||
CONFIG_SHELL='/bin/sh'
|
||||
@@ -588,7 +588,7 @@ S["INSTALL_TARGET"]="install-tcl"
|
||||
S["ALL_TARGET"]="tcl"
|
||||
S["OA_LIBS"]=""
|
||||
S["OA"]=""
|
||||
S["MAGIC_REVISION"]="27"
|
||||
S["MAGIC_REVISION"]="29"
|
||||
S["MAGIC_VERSION"]="8.2"
|
||||
S["SCPP"]="gcc -E -x c"
|
||||
S["MCPP"]="${MAGICDIR}/scripts/preproc.py"
|
||||
@@ -674,12 +674,11 @@ S["ECHO_T"]=""
|
||||
S["ECHO_N"]="-n"
|
||||
S["ECHO_C"]=""
|
||||
S["DEFS"]="-DPACKAGE_NAME=\\\"\\\" -DPACKAGE_TARNAME=\\\"\\\" -DPACKAGE_VERSION=\\\"\\\" -DPACKAGE_STRING=\\\"\\\" -DPACKAGE_BUGREPORT=\\\"\\\" -DPACKAGE_URL=\\\"\\\" -DMAGIC_VERSION="\
|
||||
"\\\"8.2\\\" -DMAGIC_REVISION=\\\"27\\\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHA"\
|
||||
"\\\"8.2\\\" -DMAGIC_REVISION=\\\"29\\\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHA"\
|
||||
"VE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_VOID_P=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_LONG=8 -DSIZEOF_U"\
|
||||
"NSIGNED_LONG_LONG=8 -DSTDC_HEADERS=1 -DHAVE_SETENV=1 -DHAVE_PUTENV=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_PATHS_H=1 -DHAVE"\
|
||||
"_VA_COPY=1 -DHAVE___VA_COPY=1 -DFILE_LOCKS=1 -DCALMA_MODULE=1 -DCIF_MODULE=1 -DX11_BACKING_STORE=1 -DPLOT_MODULE=1 -DLEF_MODULE=1 -DROUTE_MODULE=1 -"\
|
||||
"DUSE_NEW_MACROS=1 -DHAVE_LIBGL=1 -DHAVE_LIBGLU=1 -DVECTOR_FONTS=1 -DHAVE_LIBCAIRO=1 -DCAIRO_OFFSCREEN_RENDER=1 -DMAGIC_WRAPPER=1 -DTHREE_D=1 -Dlinux"\
|
||||
"=1 -DSYSV=1 -DISC=1"
|
||||
"_VA_COPY=1 -DHAVE___VA_COPY=1 -DFILE_LOCKS=1 -DCALMA_MODULE=1 -DCIF_MODULE=1 -DPLOT_MODULE=1 -DLEF_MODULE=1 -DROUTE_MODULE=1 -DUSE_NEW_MACROS=1 -DHA"\
|
||||
"VE_LIBGL=1 -DHAVE_LIBGLU=1 -DVECTOR_FONTS=1 -DHAVE_LIBCAIRO=1 -DMAGIC_WRAPPER=1 -DTHREE_D=1 -Dlinux=1 -DSYSV=1 -DISC=1"
|
||||
S["mandir"]="${datarootdir}/man"
|
||||
S["localedir"]="${datarootdir}/locale"
|
||||
S["libdir"]="${exec_prefix}/lib"
|
||||
|
||||
Vendored
+2
-2
@@ -1408,7 +1408,7 @@ Optional Features:
|
||||
--disable-cif disable cif package
|
||||
--disable-client-render disable OpenGL client-side rendering
|
||||
--enable-invert-y invert screen top to bottom in OpenGL
|
||||
--enable-framebuffer-backing-store enable OpenGL framebuffer backing store
|
||||
--disable-framebuffer-backing-store disable OpenGL framebuffer backing store
|
||||
--disable-plot disable plot package
|
||||
--disable-lef disable LEF package
|
||||
--disable-readline disable readline package
|
||||
@@ -6942,7 +6942,7 @@ fi
|
||||
if test "${enable_framebuffer_backing_store+set}" = set; then :
|
||||
enableval=$enable_framebuffer_backing_store;
|
||||
else
|
||||
enable_framebuffer_backing_store=no
|
||||
enable_framebuffer_backing_store=yes
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@@ -975,9 +975,9 @@ if test "x$enable_invert_y" = "xyes" ; then
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(framebuffer-backing-store,
|
||||
[ --enable-framebuffer-backing-store enable OpenGL framebuffer backing store],
|
||||
[ --disable-framebuffer-backing-store disable OpenGL framebuffer backing store],
|
||||
[],
|
||||
[enable_framebuffer_backing_store=no])
|
||||
[enable_framebuffer_backing_store=yes])
|
||||
|
||||
if test "x$enable_framebuffer_backing_store" != "xyes" ; then
|
||||
AC_DEFINE(X11_BACKING_STORE)
|
||||
|
||||
+2
-2
@@ -61,14 +61,14 @@ LIB_SPECS = -L/usr/lib64 -ltk8.6 -L/usr/lib64 -ltcl8.6
|
||||
WISH_EXE = /usr/bin/wish
|
||||
TCL_LIB_DIR = /usr/lib
|
||||
MAGIC_VERSION = 8.2
|
||||
MAGIC_REVISION = 27
|
||||
MAGIC_REVISION = 29
|
||||
|
||||
CC = gcc
|
||||
CPP = gcc -E
|
||||
CXX = g++
|
||||
|
||||
CPPFLAGS = -I. -I${MAGICDIR}
|
||||
DFLAGS = -DCAD_DIR=\"${LIBDIR}\" -DBIN_DIR=\"${BINDIR}\" -DTCL_DIR=\"${TCLDIR}\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DMAGIC_VERSION=\"8.2\" -DMAGIC_REVISION=\"27\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_VOID_P=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_LONG=8 -DSIZEOF_UNSIGNED_LONG_LONG=8 -DSTDC_HEADERS=1 -DHAVE_SETENV=1 -DHAVE_PUTENV=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_PATHS_H=1 -DHAVE_VA_COPY=1 -DHAVE___VA_COPY=1 -DFILE_LOCKS=1 -DCALMA_MODULE=1 -DCIF_MODULE=1 -DX11_BACKING_STORE=1 -DPLOT_MODULE=1 -DLEF_MODULE=1 -DROUTE_MODULE=1 -DUSE_NEW_MACROS=1 -DHAVE_LIBGL=1 -DHAVE_LIBGLU=1 -DVECTOR_FONTS=1 -DHAVE_LIBCAIRO=1 -DCAIRO_OFFSCREEN_RENDER=1 -DMAGIC_WRAPPER=1 -DTHREE_D=1 -Dlinux=1 -DSYSV=1 -DISC=1 -DNDEBUG -DGCORE=\"/bin/gcore\"
|
||||
DFLAGS = -DCAD_DIR=\"${LIBDIR}\" -DBIN_DIR=\"${BINDIR}\" -DTCL_DIR=\"${TCLDIR}\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DMAGIC_VERSION=\"8.2\" -DMAGIC_REVISION=\"29\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_VOID_P=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_LONG=8 -DSIZEOF_UNSIGNED_LONG_LONG=8 -DSTDC_HEADERS=1 -DHAVE_SETENV=1 -DHAVE_PUTENV=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_PATHS_H=1 -DHAVE_VA_COPY=1 -DHAVE___VA_COPY=1 -DFILE_LOCKS=1 -DCALMA_MODULE=1 -DCIF_MODULE=1 -DPLOT_MODULE=1 -DLEF_MODULE=1 -DROUTE_MODULE=1 -DUSE_NEW_MACROS=1 -DHAVE_LIBGL=1 -DHAVE_LIBGLU=1 -DVECTOR_FONTS=1 -DHAVE_LIBCAIRO=1 -DMAGIC_WRAPPER=1 -DTHREE_D=1 -Dlinux=1 -DSYSV=1 -DISC=1 -DNDEBUG -DGCORE=\"/bin/gcore\"
|
||||
DFLAGS += -DSHDLIB_EXT=\".so\"
|
||||
CFLAGS = -g -m64 -fPIC -Wimplicit-int -fPIC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user