13
0
Commit Graph

31 Commits

Author SHA1 Message Date
ab6e274613
Ignore idempotent set_name() calls
These calls are expensive, particularly for ArdourButton, that
triggers a re-layout.
2020-05-12 15:37:23 +02:00
563a8b15e0
Revert to use an image surface for CairoWidgets
This partially reverts 2edbda2526 and is a follow up to 0b266a54f,
to fix performance issues with MS Windows graphics performance.
2020-01-08 04:24:51 +01:00
2edbda2526
Replace explicit image-surface with cairo pattern/group
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 19:35:02 +01:00
c3ab63a2ea
Allow for per-widget image-surface backing
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-12-27 19:34:56 +01:00
5ec5bc4523 goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build 2019-09-25 12:16:13 -06:00
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
e01582dd9a Prepare a boxy, no round borders, button-style 2018-10-02 21:28:49 +02:00
5e9492b996 consolidate NSGLView 2017-03-21 15:53:29 +01:00
d06de26a4f Towards a consistent render() API.
This fixes an -Woverloaded-virtual ambiguity introduced in b5e613d45

  void render (cairo_t*, cairo_rectagle*)
  void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*)

ArdourCanvas prefers cairomm and CairoWidget itself uses Cairo::Context,
this improves overall API consistency.
2017-03-20 17:12:08 +01:00
60a0b8f645 Forward un/map events to NSGLView 2017-03-20 17:12:08 +01:00
e307094af3 Allow CairoWidget to be backed by NSGLView 2017-03-20 05:19:38 +01:00
004431426d Towards packing CairoWidgets on ArdourCanvas. 2016-12-19 13:36:42 +01:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
9a11e3a64d change API for CairoWidget::focus_handler
This functor/closure is responsible for stealing focus from any existing text entry (or whatever else may have focus)
when clicking on a CairoWidget or derived class.

The old implementation just gave focus back to the editor canvas. The new version walks up the widget packing
heirarchy to find a focusable parent (from the CairoWidget for which it is invoked). If no focusable parent
is found, it cancels keyboard focus in the toplevel window containing the CairoWidget
2016-03-15 12:41:21 -04:00
a8f242f80a no need for an noop method 2016-03-15 12:41:21 -04:00
bc487bb4b0 replicate the remove-all-trailing whitespace commit(s) in master 2016-02-22 15:31:24 -05:00
a48684c692 if _need_bg is set to false in a CairoWidget, then don't actually draw the background 2016-02-22 15:31:23 -05:00
4a9ffee486 Allow partial CairoWidget exposure 2016-02-12 22:57:46 +01:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
b385d02022 merge two small pieces of code by Valeriy into libs/gtkmm2ext, conditionally used ONLY in Tracks builds.
This code is not acceptable for use in Ardour ... comments in code explain more.
2015-06-29 14:18:10 -04:00
198c4d1d88 gfx-card & performance testing 2015-05-02 04:54:59 +02:00
de85bfd857 fix #6117 - fader prelight 2015-01-28 02:22:52 +01:00
b04414d170 allow to use cairo-image/software surface for canvas & cairowidgets 2014-10-28 02:15:10 +01:00
9be64f2648 add a focus handling callback so that all button press events on CairoWidgets will cause a focus reset. 2014-09-16 12:42:39 -04:00
585fa45b62 fix cairo widget background 2014-08-30 01:43:10 +02:00
e7a15027e8 refactor flat_buttons into cairowidget, and add a canvas-like convenience function for setting cairo color with a Gtk::Color 2014-08-27 10:55:01 -05:00
a7226133a9 refactor _grabbed into cairo_widget 2014-08-22 11:49:59 -05:00
ab44e41dfd change the meters into CairoWidget, add expose_area to CairoWidget::render() 2014-03-20 23:50:40 +01:00
e4e6010cd4 add on_name_changed() virtual method to CairoWidget
If a CairoWidget does not a GtkRC-defined style, then changing its name does not trigger on_style_changed(). Since we want to use CairoWidget::set_name()
to trigger changes in the rendering of a widget, this is ... bad. Adding on_name_changed() provides a workaround for that.
2014-03-06 09:44:33 -05:00
b08d13706f remove additional "mid" color from ArdourButton; replace Active/Mid widget state with ExplicitActive/ImplicitActive; represent implicit-active state with colored border around ArdourButton; tune button colors; new rounded_foo() functions, some in use, some not in use right now
git-svn-id: svn://localhost/ardour2/branches/3.0@11466 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-07 17:43:55 +00:00
20aeb5af0a move CairoWidget into gtkmm2ext, add CairoPacker, made the time info box use CairoPacker, make the info status "bar" use CairoPacker
git-svn-id: svn://localhost/ardour2/branches/3.0@10933 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-07 13:57:45 +00:00