Add programmable shader support and assosciated example