Revision: 76001
http://sourceforge.net/p/brlcad/code/76001
Author: starseeker
Date: 2020-06-02 18:17:32 +0000 (Tue, 02 Jun 2020)
Log Message:
-----------
Expose the png2fb, fb2pix, pix2fb and fbclear GED commands in MGED. Still
haven't fully run to ground the consequences of getting the fb through the dm
rather than fbserv_obj, but with the addtion of the fb_refresh calls these
commands do successfully update the MGED embedded framebuffer.
Modified Paths:
--------------
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/mged/setup.c
Modified: brlcad/branches/dm-fb-merge/src/libged/fb2pix.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/fb2pix.c 2020-06-02 07:00:20 UTC
(rev 76000)
+++ brlcad/branches/dm-fb-merge/src/libged/fb2pix.c 2020-06-02 18:17:32 UTC
(rev 76001)
@@ -116,7 +116,8 @@
return GED_ERROR;
}
- struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+ struct dm *dmp = (struct dm *)gedp->ged_dmp;
+ struct fb *fbp = dm_get_fb(dmp);
if (!fbp) {
bu_vls_printf(gedp->ged_result_str, "display manager does not have a
framebuffer");
@@ -148,8 +149,12 @@
if (outfp != stdout)
fclose(outfp);
- if (ret == BRLCAD_OK)
+ if (ret == BRLCAD_OK) {
+ (void)dm_draw_begin(dmp);
+ fb_refresh(fbp, 0, 0, dm_get_width(dmp), dm_get_height(dmp));
+ (void)dm_draw_end(dmp);
return GED_OK;
+ }
return GED_ERROR;
}
Modified: brlcad/branches/dm-fb-merge/src/libged/fbclear.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/fbclear.c 2020-06-02 07:00:20 UTC
(rev 76000)
+++ brlcad/branches/dm-fb-merge/src/libged/fbclear.c 2020-06-02 18:17:32 UTC
(rev 76001)
@@ -60,7 +60,8 @@
return GED_ERROR;
}
- struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+ struct dm *dmp = (struct dm *)gedp->ged_dmp;
+ struct fb *fbp = dm_get_fb(dmp);
if (!fbp) {
bu_vls_printf(gedp->ged_result_str, "display manager does not have a
framebuffer");
@@ -92,6 +93,10 @@
if (ret)
return GED_ERROR;
+ (void)dm_draw_begin(dmp);
+ fb_refresh(fbp, 0, 0, dm_get_width(dmp), dm_get_height(dmp));
+ (void)dm_draw_end(dmp);
+
return GED_OK;
}
Modified: brlcad/branches/dm-fb-merge/src/libged/pix2fb.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/pix2fb.c 2020-06-02 07:00:20 UTC
(rev 76000)
+++ brlcad/branches/dm-fb-merge/src/libged/pix2fb.c 2020-06-02 18:17:32 UTC
(rev 76001)
@@ -183,7 +183,8 @@
return GED_ERROR;
}
- struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+ struct dm *dmp = (struct dm *)gedp->ged_dmp;
+ struct fb *fbp = dm_get_fb(dmp);
if (!fbp) {
bu_vls_printf(gedp->ged_result_str, "display manager does not have a
framebuffer");
@@ -219,8 +220,13 @@
bu_snooze(BU_SEC2USEC(pause_sec));
- if (ret == BRLCAD_OK)
+
+ if (ret == BRLCAD_OK) {
+ (void)dm_draw_begin(dmp);
+ fb_refresh(fbp, 0, 0, dm_get_width(dmp), dm_get_height(dmp));
+ (void)dm_draw_end(dmp);
return GED_OK;
+ }
return GED_ERROR;
}
Modified: brlcad/branches/dm-fb-merge/src/libged/png2fb.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/png2fb.c 2020-06-02 07:00:20 UTC
(rev 76000)
+++ brlcad/branches/dm-fb-merge/src/libged/png2fb.c 2020-06-02 18:17:32 UTC
(rev 76001)
@@ -144,7 +144,8 @@
return GED_ERROR;
}
- struct fb *fbp = dm_get_fb((struct dm *)gedp->ged_dmp);
+ struct dm *dmp = (struct dm *)gedp->ged_dmp;
+ struct fb *fbp = dm_get_fb(dmp);
if (!fbp) {
bu_vls_printf(gedp->ged_result_str, "display manager does not have a
framebuffer");
@@ -177,6 +178,10 @@
if (fp_in != stdin)
fclose(fp_in);
+ (void)dm_draw_begin(dmp);
+ fb_refresh(fbp, 0, 0, dm_get_width(dmp), dm_get_height(dmp));
+ (void)dm_draw_end(dmp);
+
if (ret == BRLCAD_OK)
return GED_OK;
Modified: brlcad/branches/dm-fb-merge/src/mged/setup.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/mged/setup.c 2020-06-02 07:00:20 UTC
(rev 76000)
+++ brlcad/branches/dm-fb-merge/src/mged/setup.c 2020-06-02 18:17:32 UTC
(rev 76001)
@@ -154,6 +154,8 @@
{"exists", cmd_ged_plain_wrapper, ged_exists},
{"facedef", f_facedef, GED_FUNC_PTR_NULL},
{"facetize", cmd_ged_plain_wrapper, ged_facetize},
+ {"fb2pix", cmd_ged_dm_wrapper, ged_fb2pix},
+ {"fbclear", cmd_ged_dm_wrapper, ged_fbclear},
{"form", cmd_ged_plain_wrapper, ged_form},
{"fracture", cmd_ged_plain_wrapper, ged_fracture},
{"front", f_bv_front, GED_FUNC_PTR_NULL},
@@ -257,8 +259,10 @@
{"pathlist", cmd_ged_plain_wrapper, ged_pathlist},
{"paths", cmd_ged_plain_wrapper, ged_pathsum},
{"permute", f_permute, GED_FUNC_PTR_NULL},
+ {"pix2fb", cmd_ged_dm_wrapper, ged_pix2fb},
{"plot", cmd_ged_plain_wrapper, ged_plot},
{"png", cmd_ged_plain_wrapper, ged_png},
+ {"png2fb", cmd_ged_dm_wrapper, ged_png2fb},
{"pnts", cmd_ged_plain_wrapper, ged_pnts},
{"prcolor", cmd_ged_plain_wrapper, ged_prcolor},
{"prefix", cmd_ged_plain_wrapper, ged_prefix},
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