Revision: 75837
          http://sourceforge.net/p/brlcad/code/75837
Author:   starseeker
Date:     2020-05-19 13:35:48 +0000 (Tue, 19 May 2020)
Log Message:
-----------
This gets the 4 missing libged commands building, but not working.  Apparently 
these were libtclcad only commands, and the framebuffer server fbp is distinct 
from the dm's embedded framebuffer so this change isn't manipulating the same 
fbp.  It looks at this point like the framebuffer object/server code in 
libtclcad needs to be modded to use the libged dm existing framebuffer as its 
target/container, or (maybe better) we just remove these 4 libged functions and 
recast them as libtclcad specific functionality/commands that can reference the 
libtclcad data structures directly.

Modified Paths:
--------------
    brlcad/branches/dm-fb-merge/include/ged/framebuffer.h
    brlcad/branches/dm-fb-merge/src/libged/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/libged/fb2pix.c
    brlcad/branches/dm-fb-merge/src/libged/fbclear.c
    brlcad/branches/dm-fb-merge/src/libged/pix2fb.c
    brlcad/branches/dm-fb-merge/src/libged/png2fb.c
    brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c

Modified: brlcad/branches/dm-fb-merge/include/ged/framebuffer.h
===================================================================
--- brlcad/branches/dm-fb-merge/include/ged/framebuffer.h       2020-05-19 
03:34:33 UTC (rev 75836)
+++ brlcad/branches/dm-fb-merge/include/ged/framebuffer.h       2020-05-19 
13:35:48 UTC (rev 75837)
@@ -33,7 +33,6 @@
 
 __BEGIN_DECLS
 
-#if 0
 
 /**
  * Fb2pix writes a framebuffer image to a .pix file.
@@ -45,7 +44,6 @@
  */
 GED_EXPORT extern int ged_fbclear(struct ged *gedp, int argc, const char 
*argv[]);
 
-
 /**
  * Pix2fb reads a pix file into a framebuffer.
  */
@@ -56,7 +54,6 @@
  */
 GED_EXPORT extern int ged_png2fb(struct ged *gedp, int argc, const char 
*argv[]);
 
-#endif
 
 __END_DECLS
 

Modified: brlcad/branches/dm-fb-merge/src/libged/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/CMakeLists.txt       2020-05-19 
03:34:33 UTC (rev 75836)
+++ brlcad/branches/dm-fb-merge/src/libged/CMakeLists.txt       2020-05-19 
13:35:48 UTC (rev 75837)
@@ -151,8 +151,8 @@
   facedef.c
   facetize_log.c
   facetize.cpp
-  #fb2pix.c
-  #fbclear.c
+  fb2pix.c
+  fbclear.c
   find.c
   form.c
   fracture.c
@@ -239,12 +239,12 @@
   pathlist.c
   pathsum.c
   perspective.c
-  #pix2fb.c
+  pix2fb.c
   plot.c
   pmat.c
   pmodel2view.c
   png.c
-  #png2fb.c
+  png2fb.c
   pnts_util.c
   pnts.cpp
   polyclip.cpp

Modified: brlcad/branches/dm-fb-merge/src/libged/fb2pix.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/fb2pix.c     2020-05-19 03:34:33 UTC 
(rev 75836)
+++ brlcad/branches/dm-fb-merge/src/libged/fb2pix.c     2020-05-19 13:35:48 UTC 
(rev 75837)
@@ -109,10 +109,20 @@
        [-s squaresize] [-w width] [-n height] [file.pix]\n";
 
     GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_FBSERV(gedp, GED_ERROR);
-    GED_CHECK_FBSERV_FBP(gedp, GED_ERROR);
     GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
 
+    if (!gedp->ged_dmp) {
+       bu_vls_printf(gedp->ged_result_str, "no display manager currently 
active");
+       return GED_ERROR;
+    }
+
+    struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+
+    if (!fbp) {
+       bu_vls_printf(gedp->ged_result_str, "display manager does not have a 
framebuffer");
+       return GED_ERROR;
+    }
+
     /* initialize result */
     bu_vls_trunc(gedp->ged_result_str, 0);
 
@@ -131,7 +141,7 @@
 
     setmode(fileno(stdout), O_BINARY);
 
-    ret = fb_write_fp(gedp->ged_fbsp->fbs_fbp, outfp,
+    ret = fb_write_fp(fbp, outfp,
                      screen_width, screen_height,
                      crunch, inverse, gedp->ged_result_str);
 

Modified: brlcad/branches/dm-fb-merge/src/libged/fbclear.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/fbclear.c    2020-05-19 03:34:33 UTC 
(rev 75836)
+++ brlcad/branches/dm-fb-merge/src/libged/fbclear.c    2020-05-19 13:35:48 UTC 
(rev 75837)
@@ -53,10 +53,20 @@
     unsigned char clearColor[3] = {0.0, 0.0 ,0.0};
 
     GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_FBSERV(gedp, GED_ERROR);
-    GED_CHECK_FBSERV_FBP(gedp, GED_ERROR);
     GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
 
+    if (!gedp->ged_dmp) {
+       bu_vls_printf(gedp->ged_result_str, "no display manager currently 
active");
+       return GED_ERROR;
+    }
+
+    struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+
+    if (!fbp) {
+       bu_vls_printf(gedp->ged_result_str, "display manager does not have a 
framebuffer");
+       return GED_ERROR;
+    }
+
     /* initialize result */
     bu_vls_trunc(gedp->ged_result_str, 0);
 
@@ -77,7 +87,7 @@
        return GED_ERROR;
     }
 
-    ret = fb_clear(gedp->ged_fbsp->fbs_fbp, clearColor);
+    ret = fb_clear(fbp, clearColor);
 
     if (ret)
        return GED_ERROR;

Modified: brlcad/branches/dm-fb-merge/src/libged/pix2fb.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/pix2fb.c     2020-05-19 03:34:33 UTC 
(rev 75836)
+++ brlcad/branches/dm-fb-merge/src/libged/pix2fb.c     2020-05-19 13:35:48 UTC 
(rev 75837)
@@ -176,10 +176,21 @@
     int ret;
 
     GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_FBSERV(gedp, GED_ERROR);
-    GED_CHECK_FBSERV_FBP(gedp, GED_ERROR);
     GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
 
+    if (!gedp->ged_dmp) {
+       bu_vls_printf(gedp->ged_result_str, "no display manager currently 
active");
+       return GED_ERROR;
+    }
+
+    struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+
+    if (!fbp) {
+       bu_vls_printf(gedp->ged_result_str, "display manager does not have a 
framebuffer");
+       return GED_ERROR;
+    }
+
+
     /* initialize result */
     bu_vls_trunc(gedp->ged_result_str, 0);
 
@@ -194,7 +205,7 @@
        return GED_HELP;
     }
 
-    ret = fb_read_fd(gedp->ged_fbsp->fbs_fbp, infd,
+    ret = fb_read_fd(fbp, infd,
                     file_width, file_height,
                     file_xoff, file_yoff,
                     scr_width, scr_height,

Modified: brlcad/branches/dm-fb-merge/src/libged/png2fb.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/png2fb.c     2020-05-19 03:34:33 UTC 
(rev 75836)
+++ brlcad/branches/dm-fb-merge/src/libged/png2fb.c     2020-05-19 13:35:48 UTC 
(rev 75837)
@@ -137,10 +137,20 @@
     int ret;
 
     GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_FBSERV(gedp, GED_ERROR);
-    GED_CHECK_FBSERV_FBP(gedp, GED_ERROR);
     GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
 
+    if (!gedp->ged_dmp) {
+       bu_vls_printf(gedp->ged_result_str, "no display manager currently 
active");
+       return GED_ERROR;
+    }
+
+    struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+
+    if (!fbp) {
+       bu_vls_printf(gedp->ged_result_str, "display manager does not have a 
framebuffer");
+       return GED_ERROR;
+    }
+
     /* initialize result */
     bu_vls_trunc(gedp->ged_result_str, 0);
 
@@ -155,7 +165,7 @@
        return GED_HELP;
     }
 
-    ret = fb_read_png(gedp->ged_fbsp->fbs_fbp, fp_in,
+    ret = fb_read_png(fbp, fp_in,
                      file_xoff, file_yoff,
                      scr_xoff, scr_yoff,
                      clear, zoom, inverse,

Modified: brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c      2020-05-19 
03:34:33 UTC (rev 75836)
+++ brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c      2020-05-19 
13:35:48 UTC (rev 75837)
@@ -1169,8 +1169,8 @@
     {"faceplate",      "center_dot|prim_labels|view_params|view_scale 
color|draw [val(s)]", TO_UNLIMITED, to_faceplate, GED_FUNC_PTR_NULL},
     {"facetize",       (char *)0, TO_UNLIMITED, to_pass_through_func, 
ged_facetize},
     {"voxelize",       (char *)0, TO_UNLIMITED, to_pass_through_func, 
ged_voxelize},
-    //{"fb2pix",       "[-h -i -c] [-s squaresize] [-w width] [-n height] 
[file.pix]", TO_UNLIMITED, to_view_func, ged_fb2pix},
-    //{"fbclear",      "[r g b]", TO_UNLIMITED, to_view_func, ged_fbclear},
+    {"fb2pix",         "[-h -i -c] [-s squaresize] [-w width] [-n height] 
[file.pix]", TO_UNLIMITED, to_view_func, ged_fb2pix},
+    {"fbclear",        "[r g b]", TO_UNLIMITED, to_view_func, ged_fbclear},
     {"find_arb_edge",  "arb vx vy ptol", 5, to_view_func, 
ged_find_arb_edge_nearest_pnt},
     {"find_bot_edge",  "bot vx vy", 5, to_view_func, 
ged_find_bot_edge_nearest_pnt},
     {"find_bot_pnt",   "bot vx vy", 5, to_view_func, 
ged_find_bot_pnt_nearest_pnt},
@@ -1315,7 +1315,7 @@
     {"pathlist",       (char *)0, TO_UNLIMITED, to_pass_through_func, 
ged_pathlist},
     {"paths",  (char *)0, TO_UNLIMITED, to_pass_through_func, ged_pathsum},
     {"perspective",    "[angle]", 3, to_view_func_plus, ged_perspective},
-    //{"pix2fb",       "[options] [file.pix]", TO_UNLIMITED, to_view_func, 
ged_pix2fb},
+    {"pix2fb",         "[options] [file.pix]", TO_UNLIMITED, to_view_func, 
ged_pix2fb},
     {"plot",   "[options] file.pl", 16, to_view_func, ged_plot},
     {"pmat",   "[mat]", 3, to_view_func, ged_pmat},
     {"pmodel2view",    "vname", 2, to_view_func, ged_pmodel2view},
@@ -1323,7 +1323,7 @@
     {"pix",    "file", TO_UNLIMITED, to_pix, GED_FUNC_PTR_NULL},
     {"png",    "file", TO_UNLIMITED, to_png, GED_FUNC_PTR_NULL},
 #endif
-    //{"png2fb",       "[options] [file.png]", TO_UNLIMITED, to_view_func, 
ged_png2fb},
+    {"png2fb",         "[options] [file.png]", TO_UNLIMITED, to_view_func, 
ged_png2fb},
     {"pngwf",  "[options] file.png", 16, to_view_func, ged_png},
     {"poly_circ_mode", "x y", TO_UNLIMITED, to_poly_circ_mode, 
GED_FUNC_PTR_NULL},
     {"poly_cont_build",        "x y", TO_UNLIMITED, to_poly_cont_build, 
GED_FUNC_PTR_NULL},
@@ -14924,7 +14924,6 @@
 
     /* Copy argv into av while skipping argv[1] (i.e. the view name) */
     gedp->ged_gvp = gdvp->gdv_view;
-    //gedp->ged_fbsp = &gdvp->gdv_fbs;
     gedp->ged_refresh_clientdata = (void *)gdvp;
     av[0] = (char *)argv[0];
     ac = argc-1;

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

Reply via email to