diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2008-07-27 06:22:56 +0000 |
|---|---|---|
| committer | joncruz <joncruz@users.sourceforge.net> | 2008-07-27 06:22:56 +0000 |
| commit | d0ba4ee9dc1e622d0ee4fabfc657c019559e7692 (patch) | |
| tree | b059c494c710298be08d3c71a0f03b9a12914545 /src/debug | |
| parent | fix messed up scale/rotate handles (diff) | |
| download | inkscape-d0ba4ee9dc1e622d0ee4fabfc657c019559e7692.tar.gz inkscape-d0ba4ee9dc1e622d0ee4fabfc657c019559e7692.zip | |
Add tracking of skew factor and display in warning message.
(bzr r6429)
Diffstat (limited to 'src/debug')
| -rw-r--r-- | src/debug/gdk-event-latency-tracker.cpp | 14 | ||||
| -rw-r--r-- | src/debug/gdk-event-latency-tracker.h | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/debug/gdk-event-latency-tracker.cpp b/src/debug/gdk-event-latency-tracker.cpp index 6a8a48eb3..cfd5a9b71 100644 --- a/src/debug/gdk-event-latency-tracker.cpp +++ b/src/debug/gdk-event-latency-tracker.cpp @@ -16,7 +16,7 @@ namespace Inkscape { namespace Debug { GdkEventLatencyTracker::GdkEventLatencyTracker() - : start_seconds(0.0), max_latency(0.0), skew(1.0) + : start_seconds(0.0), max_latency(0.0), skew(1.0), last_elapsed(0.0), last_seconds(0.0) { elapsed.stop(); elapsed.reset(); @@ -35,7 +35,9 @@ boost::optional<double> GdkEventLatencyTracker::process(GdkEvent const *event) { skew = prefs_get_double_attribute_limited("debug.latency", "skew", 1.0, 0.5, 2.0); return boost::optional<double>(0.0); } else { - double const current_seconds = (elapsed.elapsed() * skew) + start_seconds; + last_elapsed = elapsed.elapsed(); + last_seconds = timestamp_seconds; + double const current_seconds = (last_elapsed * skew) + start_seconds; double delta = current_seconds - timestamp_seconds; if (delta < 0.0) { start_seconds += -delta; @@ -47,6 +49,14 @@ boost::optional<double> GdkEventLatencyTracker::process(GdkEvent const *event) { } } +double GdkEventLatencyTracker::getSkew() { + double val = 0.0; + if ((last_elapsed > 0.0) && (last_seconds > 0.0)) { + val = (last_seconds - start_seconds) / last_elapsed; + } + return val; +} + GdkEventLatencyTracker &GdkEventLatencyTracker::default_tracker() { static GdkEventLatencyTracker tracker; return tracker; diff --git a/src/debug/gdk-event-latency-tracker.h b/src/debug/gdk-event-latency-tracker.h index cb04ee035..5a05baf48 100644 --- a/src/debug/gdk-event-latency-tracker.h +++ b/src/debug/gdk-event-latency-tracker.h @@ -24,6 +24,7 @@ public: GdkEventLatencyTracker(); boost::optional<double> process(GdkEvent const *e); double maxLatency() const { return max_latency; } + double getSkew(); static GdkEventLatencyTracker &default_tracker(); @@ -34,6 +35,8 @@ private: double start_seconds; double max_latency; double skew; + double last_elapsed; + double last_seconds; Glib::Timer elapsed; }; |
