Git Product home page Git Product logo

oopcanvas's Introduction

UI Framework built from ground up, powered by HTML5 Canvas.

Demo
Documentation

License: MIT
Version: 0.0.0
Status: Very early phase. Many of the following info can be obsolete and is subject to change.

Diagrams

Architecture Runloop Interaction

Coding Style

  1. public methods: ClassName.prototype.publicMethod = function(args) {};
  2. protected methods: ClassName.prototype._protectedMethod = function(args) {};
  3. private methods: defined as function _privateMethod () {} in Closure.

Some ideas

  1. core and main modules don't have to namespace their contributed public methods.

  2. 3rd-party moduels and plugins MUST namespace their contributed public methods. plugins are not first-class citizen, in terms that they can only bring in instance methods. 3rd-party module, however, has the full ability as the first-party module. e.g. create sub-namespace under OOPCanvas, and contribute the static class, properties and configurations.

  3. module can be defined as a function or an object. if module is defined a function, it will not have submodules. If module has submodules, it needs to be defined as an object, and each of its submodules can be either a function or object.

TODO:

Architecture
Performance
It seems that hitTest adds quite a lot performace overhead. Add grouping will probably scale down the hitTest process.
Need to re-evaluate if isHitTestVisible should be true by default and its performance implication even when subclass does not override hittest method.

oopcanvas's People

Contributors

marty-wang avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

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.