From a8c84e90a39c54174dd24b5b76bd17aed8311481 Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Fri, 13 Jul 2018 20:53:52 +0100 Subject: Make GUI nice and smooth. --- common/nextpnr.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'common') diff --git a/common/nextpnr.h b/common/nextpnr.h index 50465869..efcab9fc 100644 --- a/common/nextpnr.h +++ b/common/nextpnr.h @@ -238,6 +238,16 @@ struct CellInfo std::unordered_map pins; }; +struct UIUpdatesRequired +{ + bool allUIReload; + bool frameUIReload; + std::unordered_set belUIReload; + std::unordered_set wireUIReload; + std::unordered_set pipUIReload; + std::unordered_set groupUIReload; +}; + struct BaseCtx { // -------------------------------------------------------------- @@ -260,6 +270,8 @@ struct BaseCtx idstring_idx_to_str = new std::vector; IdString::initialize_add(this, "", 0); IdString::initialize_arch(this); + + allUiReload = true; } ~BaseCtx() @@ -292,6 +304,25 @@ struct BaseCtx void refreshUiPip(PipId pip) { pipUiReload.insert(pip); } void refreshUiGroup(GroupId group) { groupUiReload.insert(group); } + + UIUpdatesRequired getUIUpdatesRequired(void) + { + UIUpdatesRequired req; + req.allUIReload = allUiReload; + req.frameUIReload = frameUiReload; + req.belUIReload = belUiReload; + req.wireUIReload = wireUiReload; + req.pipUIReload = pipUiReload; + req.groupUIReload = groupUiReload; + + allUiReload = false; + frameUiReload = false; + belUiReload.clear(); + wireUiReload.clear(); + pipUiReload.clear(); + groupUiReload.clear(); + return req; + } }; NEXTPNR_NAMESPACE_END -- cgit v1.2.3