<azonenberg>
ehntoo: if i'm understanding this right, scopehal is now free of GTK dependencies entirely
<azonenberg>
and cairo in EyeMask is the only thing used in scopeprotocols?
<d1b2>
<ehntoo> I believe that's accurate. I have a branch around somewhere where I'd started removing GTK libraries everywhere possible, but got swamped with work this week.
<azonenberg>
Ok
<azonenberg>
well i'm thinking of starting work on removing gtk in EyeMask soon. my thought is to expose the polygons directly via some kind of API
<azonenberg>
then have glscopeclient draw it with cairo (basically moving the render code out to glscopeclient) and ngscopeclient draw with ImDrawList
<azonenberg>
what remains is the actual hit testing logic
<azonenberg>
which might be best done by a simple dumb software rasterizer using bresenham plus flood fill, but i'm not certain on that yet
<azonenberg>
the other option is, instead of bitmasking, a closed form geometric solver
<azonenberg>
i.e. check each pixel against the polygon geometry
<azonenberg>
but i think it's faster if we just make a bool[] and fill it
<azonenberg>
then we have a trivial mask check for violations
<azonenberg>
sooo re filters, where to actually instantiate them?
<azonenberg>
gui wise
<azonenberg>
in particular, you cant right click on the plot to make a filter
<azonenberg>
because we can now have arbitrarily many waveforms in a plot
<azonenberg>
so i think it will be necessary to right click on the channel button
<azonenberg>
(or via the graph editor which is still TBD)
<azonenberg>
The other thing i'm going to change is instantiating one of each filter at app startup time vs one every time you right click
<azonenberg>
(we need an instance of each filter to call ValidateInput() on in order to check what inputs are legal for use where, but creating them every right click is slooow)