Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-01-04 | Return of image-surface backed canvas (windows graphics performance) | Robin Gareus | |
This partially reverts 2edbda252619b. Using cairo-groups increases performance on MacOS, and retains retina-resolution. However it adds a performance regression for MS Windows graphics rendering. cairo-groups use a "similar" surface, not an image surface. Empirically this adds significant overhead compared to rendering using the CPU and using bitblt. | |||
2019-12-27 | Replace explicit image-surface with cairo pattern/group | Robin Gareus | |
For MacOS/X this is equivalent, rendering happens using a CGBitmapContext + image-surface. Windows and Linux needs profiling for respective equivalent surfaces. | |||
2019-12-27 | Allow for per-widget image-surface backing | Robin Gareus | |
This is an intermediate commit, before replacing image surfaces with cairo pattern groups. The eventual goal is to reduce flickering and/or use CPU + bitblt for specific widgets instead of cairo graphics-cards accel. This also removes excessive calls to getenv() for every rendering operation. | |||
2019-09-30 | Fix remaining doxygen warnings (!) | Robin Gareus | |
2019-09-30 | NO-OP: whitespace, indent | Robin Gareus | |
2019-08-03 | Update canvas/UI lib GPL boilerplate and (C) from git log | Robin Gareus | |
2017-07-18 | Fix NSGLView invalidation | Robin Gareus | |
2017-07-17 | Clean up library inheritance (colors.h, utils.h) | Robin Gareus | |
make libwidget independent of libcanvas. Confine basics to pbd and gtkmm2ext. | |||
2017-06-26 | Add Canvas::get_microseconds_since_render_start() method | Tim Mayberry | |
Initial use is for the WaveView class to determine whether on not to draw the waveform in the GUI thread. | |||
2017-06-26 | Add Canvas::get_last_render_start_timestamp method | Tim Mayberry | |
2017-06-26 | Add an optional ArdourCanvas::Item::prepare_for_render interface | Tim Mayberry | |
Called when an item has requested a redraw and intersects with visible canvas area. Also add Canvas::prepare_for_render that will call Item::prepare_for_render for items visible on the canvas. | |||
2017-06-26 | Add PreRender signal to the canvas | Tim Mayberry | |
Emitted by the canvas immediately before rendering. | |||
2017-06-26 | Whitespace fixes in canvas.h | Tim Mayberry | |
2017-04-17 | Stop tooltip timeout when a canvas-widget or item is hidden. | Robin Gareus | |
2017-03-21 | Allow to selectively use NSGLView Canvas | Robin Gareus | |
Various GdkEvents are not yet handled correctly, eg. unpacking a widget from its container does not unmap it, nor are remaining widgets in the contained re-positioned (size allocation does not change, nor does the mapping). This affects eg. Mixbus Strips | |||
2017-03-20 | Forward un/map events to NSGLView | Robin Gareus | |
2017-03-20 | Move NSGlView into libgtkmm2ext | Robin Gareus | |
This allows to re-use the concept with CairoWidget | |||
2017-03-19 | Prepare NSView/OpenGL Canvas (to speed up rendering on [mac]OS[X] | Robin Gareus | |
This avoids Coregraphics (cairo_quartz_surface..) competely. The openGL texture bypasses CG's slow argb_image and CGSColorMask methods. | |||
2017-01-19 | remove use of boost::optional to define "undefined" Canvas::Rect, and use ↵ | Paul Davis | |
Rect::empty instead. This commit includes Rect::operator bool() which might be a candidate for removal in a future commit, in an attempt to make the meaning clearer | |||
2016-10-13 | stop using gkd_pango_context_get() in ArdourCanvas::Canvas and require ↵ | Paul Davis | |
concrete instances to supply a Pango::Context; do this for GtkCanvas and Push2Canvas | |||
2015-11-02 | fix crash when cleaning up canvas items | Robin Gareus | |
Backport from Mixbus. In Ardour this does not currently matter since there is no top-level canvas destroyed top-down. ... Editor::session_going_away MixerStrip::~MixerStrip MixbusStripCanvas::~MixbusStripCanvas ArdourCanvas::GtkCanvas::~GtkCanvas ArdourCanvas::Canvas::~Canvas ArdourCanvas::Root::~Root ArdourCanvas::Container::~Container ArdourCanvas::Item::~Item ArdourCanvas::Item::clear_items GtkCanvas::item_going_away() queue_draw_item_area() ..expose can take place async to garbage collection: crash in one of the items. | |||
2015-10-05 | NOOP, remove trailing tabs/whitespace. | Robin Gareus | |
2015-10-04 | globally remove all trailing whitespace from ardour code base. | Paul Davis | |
Paul Davis was responsible for introducing almost all of this. | |||
2015-02-12 | add accessor methods for single_exposure | Ben Loftis | |
2015-02-12 | _single_exposure is now a member variable for each GtkCanvas. | Ben Loftis | |
Gtk coalesces multiple exposes into a single combined rect. If _single_exposure is disabled, we break apart the individual expose rects for the canvas rendering. | |||
2014-11-15 | Fix MIDI region keyboard editing (add key handling to canvas). | David Robillard | |
2014-11-10 | add background color property to Canvas::Canvas ; rearrange expose handling ↵ | Paul Davis | |
and include background fill Conflicts: libs/canvas/canvas.cc libs/canvas/canvas/canvas.h | |||
2014-10-28 | allow to use cairo-image/software surface for canvas & cairowidgets | Robin Gareus | |
2014-10-28 | remove unused old API | Robin Gareus | |
2014-09-26 | further tweaks to canvas tooltip mechanism | Paul Davis | |
2014-09-26 | display and position canvas tooltip window | Paul Davis | |
2014-09-25 | basic design of Canvas item tooltip mechanism. | Paul Davis | |
No window yet to actually display the tooltip. | |||
2014-07-07 | Add Canvas::re_enter() which picks the current item again based on mouse ↵ | Paul Davis | |
pointer position and generates an enter event for it | |||
2014-06-29 | Change some declarations from 'struct' to 'class' (and vice-versa) | John Emmas | |
2014-06-26 | new API for TrackingText and similar items | Paul Davis | |
2014-06-24 | add scroll wheel handler to canvas | Ben Loftis | |
2014-06-21 | refactor Canvas so that all Items have children; add Container abstract base ↵ | Paul Davis | |
class; rename Group as "Layout" and retain only drawing semantics | |||
2014-06-09 | remove global canvas scroll offset, to provide no-scroll-parent == no-scroll ↵ | Paul Davis | |
behaviour | |||
2014-06-05 | fix problems with expose/redraws from canvas where requested area goes way ↵ | Paul Davis | |
outside the integer range allowed by GTK/GDK | |||
2014-06-03 | more profound changes to canvas scrolling, in particular find appropriate ↵ | Paul Davis | |
ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}() | |||
2014-06-03 | various changes to get independent scrolling to work better in canvas. ↵ | Paul Davis | |
mostly tweaks relating to how scroll offsets are used during rendering. Event handling offsets still require work. | |||
2014-06-03 | avoid recursing through the entire canvas when scrolling - only scroll ↵ | Paul Davis | |
explicitly identified ScrollGroups | |||
2014-06-03 | initial redesign of canvas scrolling to facilitate independent x- and y-axis ↵ | Paul Davis | |
scrolling of specific groups within the canvas. This commit should cause no change in behaviour, but contains all the code and changes necessary for the next step | |||
2014-05-30 | smooth visual curve drawing | Robin Gareus | |
2013-12-27 | add visibility/export control to libcanvas | Paul Davis | |
2013-12-12 | change enter/exit event delivery to follow X Window model (inferior, ↵ | Paul Davis | |
ancestor, virtual, nonlinear) | |||
2013-12-12 | change event propagation to be based on parent/child lineage, not z-axis ↵ | Paul Davis | |
stacking, plus some more alterations to try to get enter/leave working | |||
2013-10-31 | handle enter/leave items when zooming and scrolling occur | Paul Davis | |
2013-10-30 | notable changes to try to improve most of enter/leave handling for canvas items | Paul Davis | |
2013-06-18 | basically operational switch to canvas drawing coordinates, although text ↵ | Paul Davis | |
and waves don't work, and redraw areas are too small |