Giter Club home page Giter Club logo

jadebase's People

Contributors

jadematrix avatar

Watchers

 avatar  avatar

jadebase's Issues

Smart GUI resource management task requeueing

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.

Stop using that dumb-ass line splitting style

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
);

Windows port

Native port of jadebase to Windows.

Support for Windows 7+? TBD

Switch to 'clean' headers

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.

Animation/constraints fusion system

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.

Move away from X for Linux port

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.

Improve window manipulation controls

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.