use SurfaceView to render