Revision: 75513
http://sourceforge.net/p/brlcad/code/75513
Author: starseeker
Date: 2020-04-22 00:24:12 +0000 (Wed, 22 Apr 2020)
Log Message:
-----------
Switch to using only the plugins - turn off the building of the backend files
directly into libdm.
Modified Paths:
--------------
brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt
brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp
brlcad/branches/dm-fb-merge/src/libdm/fb_generic.c
brlcad/branches/dm-fb-merge/src/libdm/include/private.h
Modified: brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt 2020-04-22
00:11:28 UTC (rev 75512)
+++ brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt 2020-04-22
00:24:12 UTC (rev 75513)
@@ -24,106 +24,38 @@
add_subdirectory(plot)
add_subdirectory(txt)
+# We no longer use these in libdm, but MGED hasn't caught up yet...
+set(libdm_DEFINES "")
+
if(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_OPENGL AND BRLCAD_ENABLE_TK)
add_subdirectory(glx)
+ list(APPEND libdm_DEFINES DM_OGL IF_OGL)
endif(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_OPENGL AND BRLCAD_ENABLE_TK)
if(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_TK)
add_subdirectory(X)
+ list(APPEND libdm_DEFINES DM_X IF_X)
endif(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_TK)
if(WIN32 AND BRLCAD_ENABLE_OPENGL)
add_subdirectory(wgl)
+ list(APPEND libdm_DEFINES DM_WGL IF_WGL)
endif(WIN32 AND BRLCAD_ENABLE_OPENGL)
if(BRLCAD_ENABLE_TK AND NOT WIN32)
add_subdirectory(tk)
+ list(APPEND libdm_DEFINES DM_TK IF_TK)
endif(BRLCAD_ENABLE_TK AND NOT WIN32)
if(BRLCAD_ENABLE_OSG AND BRLCAD_ENABLE_TK)
add_subdirectory(osgl)
+ list(APPEND libdm_DEFINES DM_OSGL IF_OSGL)
endif(BRLCAD_ENABLE_OSG AND BRLCAD_ENABLE_TK)
if(BRLCAD_ENABLE_QT)
add_subdirectory(qt)
-endif(BRLCAD_ENABLE_QT)
-
-# Initialize libdm_DEFINES in case of reconfiguration
-set(libdm_DEFINES "")
-
-# Set libdm compilation definitions
-get_property(libdm_DEFINES GLOBAL PROPERTY libdm_DEFINES)
-# Add the individual OS specific files and definitions
-if(WIN32 AND BRLCAD_ENABLE_OPENGL)
- list(APPEND libdm_DEFINES DM_WGL IF_WGL)
- set(dmw32_srcs wgl/if_wgl.c)
- set(DM_EXTRA_LIBS ${DM_EXTRA_LIBS} ${OPENGL_LIBRARIES})
- set_property(SOURCE wgl/dm-wgl.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
- set_property(SOURCE wgl/if_wgl.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
-endif(WIN32 AND BRLCAD_ENABLE_OPENGL)
-
-if(BRLCAD_ENABLE_X11)
- set(DM_X_LIBS ${X11_LIBRARIES})
-endif(BRLCAD_ENABLE_X11)
-
-if(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_TK)
- list(APPEND libdm_DEFINES DM_X IF_X)
- set(dmx11_srcs X/if_X24.c X/color.c)
- set(DM_EXTRA_LIBS ${DM_EXTRA_LIBS} ${X11_LIBRARIES})
- set_property(SOURCE X/dm-X.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
- set_property(SOURCE X/if_X24.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
-endif(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_TK)
-
-if(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_OPENGL AND BRLCAD_ENABLE_TK)
- list(APPEND libdm_DEFINES DM_OGL IF_OGL)
- set(dmogl_srcs glx/if_ogl.c)
- set(DM_EXTRA_LIBS ${DM_EXTRA_LIBS} ${OPENGL_LIBRARIES})
- set_property(SOURCE glx/dm-ogl.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
- set_property(SOURCE glx/if_ogl.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
-endif(BRLCAD_ENABLE_X11 AND BRLCAD_ENABLE_OPENGL AND BRLCAD_ENABLE_TK)
-
-if(BRLCAD_ENABLE_TK AND NOT WIN32)
- list(APPEND libdm_DEFINES DM_TK IF_TK)
- set(DM_EXTRA_LIBS ${DM_EXTRA_LIBS} ${TCL_LIBRARY} ${TK_LIBRARY})
- set(dmtk_srcs tk/if_tk.c)
- set_property(SOURCE tk/dm-tk.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
- set_property(SOURCE tk/if_tk.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
-endif(BRLCAD_ENABLE_TK AND NOT WIN32)
-
-if(BRLCAD_ENABLE_QT)
- CHECK_CXX_FLAG(Wno-float-equal)
-
list(APPEND libdm_DEFINES DM_QT IF_QT)
- set(dmqt_srcs qt/if_qt.cpp)
- set_property(SOURCE qt/if_qt.cpp APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
- set(CMAKE_AUTOMOC ON)
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- add_definitions(${Qt5Widgets_DEFINITIONS})
- set(DM_EXTRA_LIBS ${DM_EXTRA_LIBS} ${Qt5Widgets_LIBRARIES})
endif(BRLCAD_ENABLE_QT)
-add_definitions(
- -DIF_REMOTE
- -DIF_AB
- )
-if(BRLCAD_ENABLE_OSG AND BRLCAD_ENABLE_TK)
- list(APPEND libdm_DEFINES DM_OSGL IF_OSGL)
- set(dmosg_srcs osgl/if_osgl.cpp)
- set_property(SOURCE osgl/if_osgl.cpp APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
- set(OSG_LIBRARIES
- ${OPENGL_LIBRARIES}
- ${OSG_LIBRARY}
- ${OSGTEXT_LIBRARY}
- ${OSGVIEWER_LIBRARY}
- )
- set(DM_EXTRA_LIBS ${DM_EXTRA_LIBS} ${OSG_LIBRARIES})
-endif(BRLCAD_ENABLE_OSG AND BRLCAD_ENABLE_TK)
-
-
+# put the defines where MGED's build can find them...
set_property(GLOBAL PROPERTY libdm_DEFINES "${libdm_DEFINES}")
set(LIBDM_SRCS
- ${dmx11_srcs}
- ${dmw32_srcs}
- ${dmogl_srcs}
- ${dmosg_srcs}
- ${dmtk_srcs}
- ${dmqt_srcs}
null/dm-Null.c
null/if_null.c
txt/if_debug.c
@@ -158,7 +90,7 @@
)
set_property(SOURCE dm_obj.c APPEND PROPERTY COMPILE_DEFINITIONS
FB_USE_INTERNAL_API)
set_property(SOURCE dm_init.cpp APPEND PROPERTY COMPILE_DEFINITIONS
"DM_PLUGIN_SUFFIX=\"${CMAKE_SHARED_LIBRARY_SUFFIX}\"")
-BRLCAD_ADDLIB(libdm "${LIBDM_SRCS}"
"librt;libbu;libpkg;${DM_EXTRA_LIBS};${PNG_LIBRARIES}")
+BRLCAD_ADDLIB(libdm "${LIBDM_SRCS}"
"librt;libbu;libpkg;${TCL_LIBRARY};${TK_LIBRARY};${OPENGL_LIBRARIES};${PNG_LIBRARIES}")
set_target_properties(libdm PROPERTIES VERSION 20.0.1 SOVERSION 20)
if(BRLCAD_ENABLE_OSG)
Modified: brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp 2020-04-22
00:11:28 UTC (rev 75512)
+++ brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp 2020-04-22
00:24:12 UTC (rev 75513)
@@ -202,7 +202,6 @@
fb_log("\"%s\"(%d) : allocation of %lu bytes failed.\n", \
__FILE__, __LINE__, _bytes_)
-#ifdef IF_REMOTE
/**
* True if the non-null string s is all digits
*/
@@ -220,7 +219,6 @@
return 1;
}
-#endif
struct fb *
fb_open(const char *file, int width, int height)
@@ -291,7 +289,6 @@
return FB_NULL;
}
-#ifdef IF_REMOTE
if (fb_totally_numeric(file) || strchr(file, ':') != NULL) {
/* We have a remote file name of the form <host>:<file>
* or a port number (which assumes localhost) */
@@ -298,7 +295,6 @@
*ifp->i = *remote_interface.i;
goto found_interface;
}
-#endif /* IF_REMOTE */
/* Assume it's a disk file */
if (_fb_disk_enable) {
@@ -354,11 +350,10 @@
}
/* Print the ones not in the device list */
-#ifdef IF_REMOTE
fb_log("%-12s %s\n",
remote_interface.i->if_name,
remote_interface.i->if_type);
-#endif
+
if (_fb_disk_enable) {
fb_log("%-12s %s\n",
disk_interface.i->if_name,
Modified: brlcad/branches/dm-fb-merge/src/libdm/fb_generic.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/fb_generic.c 2020-04-22 00:11:28 UTC
(rev 75512)
+++ brlcad/branches/dm-fb-merge/src/libdm/fb_generic.c 2020-04-22 00:24:12 UTC
(rev 75513)
@@ -52,39 +52,6 @@
#include "./include/private.h"
#include "dm.h"
-#if 0
-/**
- * First element of list is default device when no name given
- */
-static
-struct fb *_if_list[] = {
-#ifdef IF_OSGL
- &osgl_interface,
-#endif
-#ifdef IF_WGL
- &wgl_interface,
-#endif
-#ifdef IF_OGL
- &ogl_interface,
-#endif
-#ifdef IF_X
- &X24_interface,
-#endif
-#ifdef IF_TK
- &tk_interface,
-#endif
-#ifdef IF_QT
- &qt_interface,
-#endif
- &debug_interface,
-/* never get any of the following by default */
- &stk_interface,
- &memory_interface,
- &fb_null_interface,
- (struct fb *) 0
-};
-#endif
-
struct fb *fb_get()
{
struct fb *new_fb = FB_NULL;
@@ -102,56 +69,6 @@
}
}
-#if 0
-void fb_set_interface(struct fb *ifp, const char *interface_type)
-{
- int i = 0;
- if (!ifp) return;
- while (_if_list[i] != FB_NULL) {
- if (bu_strncmp(interface_type, _if_list[i]->i->if_name+5,
strlen(interface_type)) == 0) {
- /* found it, copy its struct in */
- *ifp->i = *(_if_list[i]->i);
- return;
- } else {
- i++;
- }
- }
-}
-
-struct fb_platform_specific *
-fb_get_platform_specific(uint32_t magic)
-{
- int i = 0;
- if (!magic) return NULL;
- while (_if_list[i] != FB_NULL) {
- if (magic == _if_list[i]->i->type_magic) {
- /* found it, get its specific struct */
- return (*(_if_list[i])).i->if_existing_get(magic);
- } else {
- i++;
- }
- }
- return NULL;
-}
-
-void
-fb_put_platform_specific(struct fb_platform_specific *fb_p)
-{
- int i = 0;
- if (!fb_p) return;
- while (_if_list[i] != FB_NULL) {
- if (fb_p->magic == _if_list[i]->i->type_magic) {
- /* found it, clear its specific struct */
- (*(_if_list[i])).i->if_existing_put(fb_p);
- return;
- } else {
- i++;
- }
- }
- return;
-}
-#endif
-
struct fb *
fb_open_existing(const char *file, int width, int height, struct
fb_platform_specific *fb_p)
{
@@ -372,107 +289,6 @@
}
-#if 0
-struct fb *
-fb_open(const char *file, int width, int height)
-{
- register struct fb *ifp;
- int i;
-
- if (width < 0 || height < 0)
- return FB_NULL;
-
- ifp = (struct fb *) calloc(sizeof(struct fb), 1);
- if (ifp == FB_NULL) {
- Malloc_Bomb(sizeof(struct fb));
- return FB_NULL;
- }
- ifp->i = (struct fb_impl *) calloc(sizeof(struct fb_impl), 1);
- if (file == NULL || *file == '\0') {
- /* No name given, check environment variable first. */
- if ((file = (const char *)getenv("FB_FILE")) == NULL || *file == '\0') {
- /* None set, use first device as default */
- *ifp->i = *(_if_list[0]->i); /* struct copy */
- file = ifp->i->if_name;
- goto found_interface;
- }
- }
- /*
- * Determine what type of hardware the device name refers to.
- *
- * "file" can in general look like: hostname:/pathname/devname#
- *
- * If we have a ':' assume the remote interface
- * (We don't check to see if it's us. Good for debugging.)
- * else strip out "/path/devname" and try to look it up in the
- * device array. If we don't find it assume it's a file.
- */
- i = 0;
- while (_if_list[i] != (struct fb *)NULL) {
- if (bu_strncmp(file, _if_list[i]->i->if_name,
- strlen(_if_list[i]->i->if_name)) == 0) {
- /* found it, copy its struct in */
- *ifp->i = *(_if_list[i]->i);
- goto found_interface;
- }
- i++;
- }
-
- /* Not in list, check special interfaces or disk files */
- /* "/dev/" protection! */
- if (bu_strncmp(file, "/dev/", 5) == 0) {
- fb_log("fb_open: no such device \"%s\".\n", file);
- free((void *) ifp);
- return FB_NULL;
- }
-
-#ifdef IF_REMOTE
- if (fb_totally_numeric(file) || strchr(file, ':') != NULL) {
- /* We have a remote file name of the form <host>:<file>
- * or a port number (which assumes localhost) */
- *ifp->i = *remote_interface.i;
- goto found_interface;
- }
-#endif /* IF_REMOTE */
- /* Assume it's a disk file */
- if (_fb_disk_enable) {
- *ifp->i = *disk_interface.i;
- } else {
- fb_log("fb_open: no such device \"%s\".\n", file);
- free((void *) ifp);
- return FB_NULL;
- }
-
-found_interface:
- /* Copy over the name it was opened by. */
- ifp->i->if_name = (char*)malloc((unsigned) strlen(file) + 1);
- if (ifp->i->if_name == (char *)NULL) {
- Malloc_Bomb(strlen(file) + 1);
- free((void *) ifp);
- return FB_NULL;
- }
- bu_strlcpy(ifp->i->if_name, file, strlen(file)+1);
-
- /* Mark OK by filling in magic number */
- ifp->i->if_magic = FB_MAGIC;
-
- i=(*ifp->i->if_open)(ifp, file, width, height);
- if (i != 0) {
- ifp->i->if_magic = 0; /* sanity */
- free((void *) ifp->i->if_name);
- free((void *) ifp);
-
- if (i < 0)
- fb_log("fb_open: can't open device \"%s\", ret=%d.\n", file, i);
- else
- bu_exit(0, "Terminating early by request\n"); /* e.g., zap memory */
-
- return FB_NULL;
- }
- return ifp;
-}
-#endif
-
int
fb_close(struct fb *ifp)
{
@@ -518,41 +334,7 @@
}
-#if 0
/**
- * Generic Help.
- * Print out the list of available frame buffers.
- */
-int
-fb_genhelp(void)
-{
- int i;
-
- i = 0;
- while (_if_list[i] != (struct fb *)NULL) {
- fb_log("%-12s %s\n",
- _if_list[i]->i->if_name,
- _if_list[i]->i->if_type);
- i++;
- }
-
- /* Print the ones not in the device list */
-#ifdef IF_REMOTE
- fb_log("%-12s %s\n",
- remote_interface.i->if_name,
- remote_interface.i->if_type);
-#endif
- if (_fb_disk_enable) {
- fb_log("%-12s %s\n",
- disk_interface.i->if_name,
- disk_interface.i->if_type);
- }
-
- return 0;
-}
-#endif
-
-/**
* Check for a color map being linear in the upper 8 bits of R, G, and
* B. Returns 1 for linear map, 0 for non-linear map (i.e.,
* non-identity map).
Modified: brlcad/branches/dm-fb-merge/src/libdm/include/private.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/include/private.h 2020-04-22
00:11:28 UTC (rev 75512)
+++ brlcad/branches/dm-fb-merge/src/libdm/include/private.h 2020-04-22
00:24:12 UTC (rev 75513)
@@ -199,9 +199,8 @@
#ifdef IF_QT
FB_EXPORT extern struct fb qt_interface;
#endif
-#ifdef IF_REMOTE
+
FB_EXPORT extern struct fb remote_interface; /* not in list[] */
-#endif
/* Always included */
FB_EXPORT extern struct fb debug_interface, disk_interface, stk_interface;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits