> > Did you try this on win32? The default timer resolution there is > > ~16msec which > > is about the 60Hz frame rate, which seems like it can cause some > > framerate > > instability. Its possible to temporarily raise this resolution by > > calling > > timeBeginPeriod() although its frowned upon to always do this as it > > raises > > total system cpu use. Maybe we could hook this up to the default > > paint clock, > > so that whenever we're doing regular animations we increase the > > timer resolution. > > I haven't tested on anything but X11. My feeling is that we should > just > switch g_get_monotonic_time() to using QueryPerformanceCounter() on > windows, and not worry about all the warnings you find on the > internet > that on some old version of windows on some buggy bios that QPC jumps > as you switch between cores. > > If it turns out that doesn't work, we can write some function that > combines GetTickCount() and QPC and sanity-checks, interpolates, etc, > but we really shouldn't do so without having demonstrated existence > of > such buggy systems among our user base.
I did a bunch of research on this, see the g_get_monitonic_time() win32 implementation for it. I definately don't think we can just rely on QPC as is. Its not monotonic, it will drift over time and i believe over e.g. cpu sleeps. If we use it we should slave it to the lower precision clock in some kind of PLL (this is what firefox does). I just couldn't be bothered with the complexity last time... And anyway, the QPC time is just for reporting time. A poll() sleep (i.e. MsgWaitForMultipleObjectsEx) will still use the timeGetTime precision, so it does not help here. > after 15 years it doesn't seem confusing to me! We could just document that people should spend 15 years first! > The two possibilities here would be: > > * Document people to use G_SOURCE_REMOVE / G_SOURCE_CONTINUE - this > is > the maximally consistent approach. I'd say go with this. > > I think the motion compression is still mishandling motion events > > from > > different devices, so that if you get two motion event streams for > > the > > same window from two devices they will be compressed together. > > Ah, yeah, forgot about that. Do you think it needs anything more > complex > than the attached patch. I don't think getting continual streams of > events for two devices is going to be common, so I'm not sure it's > worth > worrying about compressing interleaved streams. Nah, that seems fine. > > Also, there seems to be no compression of touch events, which seems > > kinda > > wrong, does it not? > > I think that should certainly wait until we have real usage of touch > events to figure out. Emmanuele probably makes a good point that full > history is probably more commonly useful for touch than it is for > mouse > motion where only painting programs actually care. Yeah, lets skip this for now. _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-devel-list