docs: @Override
  	protected void onDrawFrame(SurfaceView view, Canvas canvas) {
  		super.onDrawFrame(view, canvas);
  
  		// Display info on the image being process and how fast input camera
  		// stream (probably in YUV420) is converted into a BoofCV format
  		int width = bitmap.getWidth();
  		int height = bitmap.getHeight();
  		canvas.drawText(String.format(Locale.getDefault(),
  				"%d x %d Convert: %4.1f (ms)",
  				width,height,periodConvert.getAverage()),
  				0,120,paintText);
  		canvas.drawText(String.format(Locale.getDefault(),
  				"detector: %4.1f (ms)",timeDetection.getAverage()),
  				180,170,paintText);
  
  
  		// This line is magical and will save you hours/days of anguish
  		// What it does is correctly convert the coordinate system from
  		// image pixels that were processed into display coordinates
  		// taking in account rotations and weird CCD layouts
  		canvas.concat(imageToView);
  
  		// Draw the bounding squares around the QR Codes
  		synchronized (foundQR) {
  			for (int foundIdx = 0; foundIdx < foundQR.size(); foundIdx++) {
  				renderPolygon(foundQR.get(foundIdx),path,canvas,colorDetected);
  			}
  			if( foundQR.size() > 0 )
  				textMessageView.setText(message);
  		}
  
  		// Pro tip: Run in app fast or release mode for a dramatic speed up!
  		// In Android Studio expand "Build Variants" tab on left.
  	}