Restructure pixelDrawer in order to support generic callback, so that it can be am: b13be7b3cc am: fc6e5b4e51 am: fe8a5a46cb am: d9e108ff07

Change-Id: I8849db8286a5c8bdd33d43e9a5bb833026ebc6b9