blinds's People
blinds's Issues
Build fails with --no-default-features
Examples for custom async
Moving this topic from ryanisaacg/quicksilver#552
Its seems pretty straightforward to make an async call (like, by using platter.load_file
), await that call (blocking the application loop) and resume the program execution upon the completion of the call. This will work for situations like loading game initialization data, and may be acceptable in some situations like switching "levels".
However, what's not clear is how to setup custom non-blocking events. Something that feels like
- Initialize my own custom event stream with a custom type
- Setup async tasks, registered to the custom event stream which, upon completion, enqueues the task output as a custom event
- During each "big loop"
- Poll the blinds EventStream for window events until exhausted
- Poll the custom event stream for custom events until exhausted
- Run my main logic
- Drawing
- Triggering more async tasks, similarly registered to the custom event stream
I think that this would cover things like sockets/websockets (I have a long-lived connection to the server) as well as remote procedure calls and non-blocking resource loading.
Provide a way to specify parent node for canvas on WASM
The API should ideally allow end-user to specify which parent node the canvas should be attached to.
Use with gfx-hal
There's some stuff in https://www.falseidolfactory.com/2020/04/01/intro-to-gfx-hal-part-1-drawing-a-triangle.html that uses winit that I can't find a blinds equivalent for. Mostly the Logical/Physical split, requesting to close a window (i.e. if cleanup needs to be done before hand, or a confirmation box should be displayed), and the "request redraw" events.
Is there an example of using blinds with gfx-hal?
Support for multi-threaded desktop async executors
It may be possible for blinds to support multithreading on desktop execution, which would allow background execution of tasks. This may make integrating with the winit event loop more complicated, though.
Add a way to get gamepad metadata
With removing the gamepad cache layer, the gamepad metadata is no longer available.
Expose physical key location
Add width / height getters to window
Make events model more forward-compatible
Technically adding an event is a breaking change, as is adding any information to the events themselves. Event variants that contain opaque structs should be more resilient and allow non-breaking changes.
Set browser tab titles
Attempt to cache values for input
This also enables marking key events as repeats
Event loop doesn't generate empty frames
The eventstream only awakes when there are new events to process, so even though the event loop is set to poll it behaves like Winit's Wait.
Handle more failures gracefully
Some errors mostly can't be addressed by the user, but are also not fatal. The API should somehow reflect this.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.