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