pcb

HID rework

Registered by Chad Parker

A place to collect ideas for updating and reworking the GUI HIDs

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Chad Parker
Direction:
Needs approval
Assignee:
Chad Parker
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

This is just a list of features for now.

* lesstif, gtk-gdk, and gtk-gl hids should be compatible and be selectable at run-time. This shouldn't have to be a compile time choice.

UI:
  * need to be able to display a list of available keystroke actions
  * non-board related layers
  * rulers
  * dimensions
  * constraints (?)

Rendering:
  * presently, the hid redraws the entire screen every time the crosshair moves. This is not efficient. We should render each layer individually into a buffer and then draw the buffers in succession. We only need to redraw each layer when something changes, like, a track is drawn, or a component is removed, or the zoom of the view port changes. The GL HID can do this by rendering into textures and then applying those textures to surfaces at different depths. The gdk hid can render into a pixbuf. I don't know yet about how to make the lesstif HID do this.
  * In the GTK HID there are three different places where we render pcb data: the main window, the DRC window, and the pinout preview. As nearly as I can tell, they all do this differently. They're all doing basically the same thing, so, we ought to try to combine this code.

Backend:
  * Interaction should be a state machine of sorts. It already is partially, consider the various STATE_FIRST etc. things that show up in action.c. I can't articulate it, but it seems like it might be easier in general if this were to be implemented. You could have a state structure that defined things like, what modifier keys were valid and what shortcuts keys would do, hooks for functions, etc.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.