Update: use shader to blend pixel color.
Update: infinity canvas.
Update: add linux compatibility
Update: clear newly canvas tile's texture with (0, 0, 0, 0).
Update: only use fixed size canvas; use shader to generator brush shape
Revert "Update: only use fixed size canvas; use shader to generator brush shape"

This reverts commit 0a9d30b3af914d84dcd55140d0b04eac18512c43.
Update: client generator shape and blend color; update tile with dirty rect
Update: add a new brush - eraser.
Update: add 'undo'.
Update: canvas add 'redo'; input manager add 'KEY_REPEAT'; optimize brush blend.
Update: add a new brush 'pen'.
Update: add 'zoom'.
optimize: move 'il_init' to texture.c
Update: add some icon resources.
Update: Add ui and ui_manager; Use ui_manager to control canvas; Change input_manager to simulate touch event.
Update: Add renderer2d, use it to render canvas and other UI.
Update: Add ui_imagebox, ui_toolbox; Merge 'main.c' to 'app.c'; Canvas can adapt different resolution.
Change the fucking comment style.
Update: Add renderer2d_draw_texture_with_color; Improve appearence of 'undo' and 'redo'.
Fix bug: renderer2d set viewport while there is no viewport in the stack.