Commit graph

29 commits

Author SHA1 Message Date
Victor Berger 6513351e0c
Wayland's eventloop 2.0 (#790)
* match unix common API to evl 2.0

* wayland: eventloop2.0

* make EventLoopProxy require T: 'static

* Fix linux build and tests

* wayland: update sctk & small fixes
2019-02-21 10:51:43 +01:00
Osspial 9602716ed2
Event Loop 2.0 API and Windows implementation (#638)
* Rename EventsLoop and associated types to EventLoop

* Rename WindowEvent::Refresh to WindowEvent::Redraw

* Remove second thread from win32 backend

* Update run_forever to hijack thread

* Replace windows Mutex with parking_lot Mutex

* Implement new ControlFlow and associated events

* Add StartCause::Init support, timer example

* Add ability to send custom user events

* Fully invert windows control flow so win32 calls into winit's callback

* Add request_redraw

* Rename platform to platform_impl

* Rename os to platform, add Ext trait postfixes

* Add platform::desktop module with EventLoopExt::run_return

* Re-organize into module structure

* Improve documentation

* Small changes to examples

* Improve docs for run and run_return

* Change instances of "events_loop" to "event_loop"

* Rename MonitorId to MonitorHandle

* Add CHANGELOG entry

* Improve WaitUntil timer precision

* When SendEvent is called during event closure, buffer events

* Fix resize lag when waiting in some situations

* Update send test and errors that broke some examples/APIs

* Improve clarity/fix typos in docs

* Fix unreachable panic after setting ControlFlow to Poll during some RedrawRequested events.

* Fix crash when running in release mode

* Remove crossbeam dependency and make drop events work again

* Remove serde implementations from ControlFlow

* Fix 1.24.1 build

* Fix freeze when setting decorations

* Replace &EventLoop in callback with &EventLoopWindowTarget

* Document and implement Debug for EventLoopWindowTarget

* Fix some deadlocks that could occur when changing window state

* Fix thread executor not executing closure when called from non-loop thread

* Fix buffered events not getting dispatched

* Fix crash with runner refcell not getting dropped

* Address review feedback

* Fix CHANGELOG typo

* Catch panics in user callback
2019-02-05 10:30:33 -05:00
Osspial 6bec912961 Add optional Serde implementations and missing derivable traits (#652)
* Add optional serde feature

* Document features in README

* Add changelog entry

* Implement some missing derivable traits

* Add changelog entry for std derives

* Remove extraneous space on serde doc comments

* Add period to end of serde line in readme

* Remove serde impls from WindowAttributes

* Add serde impls for TouchPhase

* Add serde test file

* Add feature lines to testing CIs

* Remove WindowAttributes from changelog
2018-11-01 04:24:56 -04:00
Francesca Frangipane 42f0671531
x11: Windows are Sync again (#474)
* x11: Windows are Sync again

Fixes #472

* Add test ensuring that Window is Sync

Window must be Sync for Vulkano's Arc<FramebufferAbstract> to be usable.
2018-04-21 11:53:57 -04:00
Victor Berger 229029f2da Formalize thread-safety guarantees (#322) 2017-10-18 20:40:21 +02:00
mitchmindtree c8e791b402 Add a test that checks that EventsLoopProxy impls Send 2017-05-25 23:18:56 +10:00
mitchmindtree 06a5ec35b3 [WIP] Remove Sync and Clone from EventsLoop. Add EventsLoopProxy.
This commit only updates the top-level API to get some early feedback.
None of the platform-specific code has been updated yet. I'm hoping to
get around to this over the next couple days however if someone more
familiar with the windows backend would like to do a PR against this
fork that would be a great help.

Closes #187.
2017-05-25 20:13:54 +10:00
Victor Berger e6e96ab6f4 tests: don't instanciate an event loop to check EventsLoop: Send+Sync 2017-03-04 09:09:09 +01:00
mitchmindtree 3ce7904e01 Wrap the temporarily stored user callback in a type to enforce
invariants

This also removes the need for "box"ing the callback in favour of
storing a raw `*mut` pointer. We can do this by ensuring that we never
store the pointer for longer than the lifetime of the user callback,
which is the duration of a call to `poll_events` or `run_forever`.

Also removes old commented out event code from the window module.
2017-02-05 12:51:09 +11:00
Pierre Krieger 007ad0f911 Fix the test and the examples 2016-03-26 18:10:19 +01:00
Pierre Krieger 10bb03c5f0 Remove most OpenGL stuff and make it compile on win32 2016-02-23 12:56:23 +01:00
Fredrik Noren 2a66d1cffc Construct cocoa headless context based on args 2016-01-18 13:12:40 -05:00
Fredrik Noren db074dc32f Use GLES 2016-01-18 12:45:55 -05:00
Fredrik Noren a5de084856 Only run headless test on osx for now 2016-01-09 14:31:56 -05:00
Fredrik Noren c344f36e93 Trigger build 2016-01-09 13:32:48 -05:00
Fredrik Noren 3d2f71e59b Bigger headless window size in test 2016-01-08 00:35:51 -05:00
Fredrik Noren 898a411c86 Don't run headless test on linux 2016-01-08 00:34:10 -05:00
Fredrik Noren c6c4dfdd1e Fix cocoa headless 2016-01-08 00:03:54 -05:00
Pierre Krieger 297a8cbb1d Add test for WindowProxy to implement Send 2015-02-16 10:29:53 +01:00
Pierre Krieger 469d0eafd1 Update for rust alpha 1.0 2015-01-10 08:23:20 +01:00
Pierre Krieger dbdb43f077 Update for Rustc 2015-01-08 09:28:22 +01:00
Pierre Krieger 7f6f4f8d04 Update for gl_generator's changes 2014-12-24 08:12:10 +01:00
Jakob Fries 12d5d5beea Avoid warning; if_let and tuple_indexing now part of language. 2014-12-08 21:12:03 +01:00
Pierre Krieger 9b39d99f6e Detect OSMesa errors 2014-11-14 15:59:45 +01:00
Tomaka17 7ce851dad9 Update for changes in gl-rs 2014-11-05 15:32:01 +01:00
Tomaka17 c61b4ccf99 Test now less restrictive 2014-10-26 15:58:43 +01:00
Tomaka17 2ff393fe62 Update for rustc and gl-rs 2014-10-22 11:23:21 +02:00
Tomaka17 c71625e301 Add test for headless rendering 2014-10-11 20:38:52 +02:00
Tomaka17 e565bfeb13 Implement headless rendering 2014-10-09 15:55:42 +02:00