First Commit with Flashing Rainbow

This is the first known good implementation and boilerplate
Finished and Working Shader Program (grey box)

TODO:
  - Textured Quad
  - Abstraction as below:
    PhotoQuad is an abstraction of Photo with Effects.
    One photo can be assigned to one effect. But one effect
    Can be applied to multiple photos. Thus PhotoQuad is an observer
    of Effect.

    Effect will includes:
    - Texture Units from 1 onwards
    - A Shader Program
Working Commit Showing Textures

- Showing Textures and GreyScale Effects
- CompoEffect and CompoQuad as Observer
- Able to accomodate Filter with multiple textures
Applying Effects and Cleaning Up Projects

   - Normal
   - Greyscale
   - Bleach
   - Sepia
   - Ansel
   - InkWell
   - Rise

BUGFIX: For NPOT Textures:

  Because Ramps and a lot of maps aren't power of two
  We need to set these:

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

Cleaning Up and Removing Uneeded Files

  - Cleaning Up All Files
  - Adding Icons
  - Move all Effects to CompoComposition.cpp
  - Removing Excess Headers from CompoView.mm
TODO:
  - Move FrameBuffer to CPP ;)
Added Multiple Effects:

  - Cinta
  - Analog
  - Thermo
  - Desaku
  - Kelud
  - Hero
Added Readme and Framework Building
Added New Effects

  - Pencil
  - Stylish
  - Hudson
  - Lord Kelvin
FIX: C++11 Warning Fix

  - Removing out of class initialization
Updated CompoTypes.h

  - Included Primitive Logging

  TODO:
    - Advanced Logging based on Google Log Framework
      https://code.google.com/p/google-glog/
EARLY SUPPORT FOR THIS FUCKING ANDROID

Creating a bare bone Android App and glue for Android
Committing to avoid losing hours of mingling with NDK

I dunno where it goes but I'd like to shout

    ________  __________ __    ___    _   ______  ____  ____  ________
   / ____/ / / / ____/ //_/   /   |  / | / / __ \/ __ \/ __ \/  _/ __ \
  / /_  / / / / /   / ,<     / /| | /  |/ / / / / /_/ / / / // // / / /
 / __/ / /_/ / /___/ /| |   / ___ |/ /|  / /_/ / _, _/ /_/ // // /_/ /
/_/    \____/\____/_/ |_|  /_/  |_/_/ |_/_____/_/ |_|\____/___/_____/

before continuing this project

NOTES:
  - javac is able to create java headers
  - javap is able to generate method signature
  - need to implement Java_OnLoad
  - Cache the VM Instance on the CompoTypes for further reference

The FUCKING UNCLEAR COMMAND used to create JNI Headers

  $ cd src
  $ javac io/nomad/compo/CompoView.java \
    -cp ${ANDROID_HOME}/sdk/platforms/android-19/android.jar \
    -d ../bin/classes/ -h ../jni/
  $ javap -cp ${ANDROID_HOME}/sdk/platforms/android-19/android.jar \
    android.graphics.Bitmap

The LINK OF OBSCURE JNI TIPS from FUCKING GOOGLE
https://developer.android.com/training/articles/perf-jni.html

Shader Library Succeeded to be compiled

   - Fixes on C++11 extensions

   TODO: Texture Loading and all done
Adding bridge to Android JNI via NDK

  - CPU Detection
  - AssetManager attachment
  - Activity LifeCycle
  - Decode Image via InputStream JNI Call

  TODO:
  Creating Surface based on this article
  http://www.altdevblogaday.com/2013/08/18/the-main-loop-in-devils-attorney-on-android/

  NOTES: It's Messy because it's Java and It's Android
  P.S: I cannot get rid of rants because Android Native Development sucks
Accessing Bridge directly from Activity

  - Accessing Bridge from Activity
  - Getting AssetManager directly from Activity
  - Caching assetManager to Global Reference
Fixes on C++

TODO:
  - Warning suppression on temporary object
Image Loading from file succeeded

  - Added Boost as dependency for shared_ptr on Android

  NOTES:
  To add shared_ptr to Android
  1. build boost BCP
  2. use boost::shared_ptr directly
  3. implement boost::throw_exception

  DON'T USE gnustl_static as it's licensed with GPLv3.
All Native Module Compilable and Basic Layout Made

  - Basic Layout Made
  - All Native Module Compilable
  - shared_ptr using boost
  - threading using tinythread

  TODO:
    - Write the real rendering code
Basic Framework For Rendering Thread

   - Thread is saved by ID
   - Each View has its ID as thread ID
Move the library to `gnustl_static`

  - Using gnustl_static rather than stlport
  - Remove boost and tinythread deps
  - Global Surface Ref deletion
Modified project file to make compo android root
Fixes memory leak my detaching asset manager

  - Add Quick build-install-debug script
  - Detach Asset Manager on Activity destroy
Added pthread locking