jadematrix / jadebase Goto Github PK
View Code? Open in Web Editor NEWCross-platform framework for professional software applications
License: Other
Cross-platform framework for professional software applications
License: Other
Currently, if no window is open to greate an OpenGL context, the GUI resource management task soft-fails and requeues itself. However it could be immediately picked back up by another task thread, unnecessarily retrying to open GUI resources while there is still no window open.
Fix:
On fail, the GUI resource management task should NOT requeue but instead set a flag in the window management subsystem to submit a new task when the next window is registered. This flag should be activated on program startup and initial submit of this task should be removed from initialization of named resources. This also elegantly solves an issue where a window opened after all others have closed might not be able to retrieve any GUI resources as 1. there would be no context to copy and 2. no resource management task for the new context.
Port of jadebase to OS X (Cocoa)
X is a pain to work with. There's at least one bug that kind of breaks things for jadebase internals. Also, using straight X doesn't mesh well with say Gnome desktop applications.
Perhaps Wayland will fix some of these issues? Or perhaps do 'native' ports to each of the major window managers for Linux.
Up until now, function declarations have included argument names, and class declarations have been in (mostly) private-protected-public order.
TODO:
Remove argument names from function declarations in headers, replace with better in-line documentation. Switch class declarations to public-protected-private as much as possible; this includes moving any trivial implementations from their declarations.
This is rather ugly and a pain to maintain, don't know why I ever thought to use it:
ff::write( str,
"@ ",
e.position[ 0 ],
",",
e.position[ 1 ],
" press ",
e.stroke.pressure,
" tilt ",
e.stroke.tilt[ 0 ],
",",
e.stroke.tilt[ 1 ],
" rotate ",
e.stroke.rotation,
" wheel ",
e.stroke.wheel );
Perhaps try something more normal instead:
ff::write(
str,
"@ ",
e.position[ 0 ],
",",
e.position[ 1 ],
" press ",
e.stroke.pressure,
" tilt ",
e.stroke.tilt[ 0 ],
",",
e.stroke.tilt[ 1 ],
" rotate ",
e.stroke.rotation,
" wheel ",
e.stroke.wheel
);
jadebase Dynamics subsystem that combines animation & constraints into one system. The idea is that animation is a time-based constraint, and constraints are physically-constrained animations.
This project will involve heavy value caching & memory locality, otherwise it's doomed to poor performance.
This system would initially be used for GUI layout & animation, but would be available in application code for whatever uses jadebase applications have.
Native port of jadebase to Windows.
Support for Windows 7+? TBD
Right now, all window manipulation is handled through window::manipulate
tasks. This is the only interface for both the event system (updating windows from manipulation via the GUI) and application code (updating windows procedurally).
This should be split out into the existing window::manipulate
for use by application code and protected methods of window
for use by window::manipulate
and the event system. This allows platform-specifc code to be wrapped in these methods and window::manipulate
code to be platform-agnostic.
Note that the event system may need a way to lock windows while they update multiple parameters in one pass.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.