docs: protected void renderBitmapImage( BitmapMode mode , ImageBase image ) {
  		switch( mode ) {
  			case UNSAFE: {
  				if (image.getWidth() == bitmap.getWidth() && image.getHeight() == bitmap.getHeight())
  					ConvertBitmap.boofToBitmap(image, bitmap, bitmapTmp);
  			} break;
  
  			case DOUBLE_BUFFER: {
  				// TODO if there are multiple processing threads bad stuff will happen here. Need one work buffer
  				// per thread
  				// convert the image. this can be a slow operation
  				if (image.getWidth() == bitmapWork.getWidth() && image.getHeight() == bitmapWork.getHeight())
  					ConvertBitmap.boofToBitmap(image, bitmapWork, bitmapTmp);
  
  				// swap the two buffers. If it's locked don't swap. This will skip a frame but will not cause
  				// a significant slow down
  				if( bitmapLock.tryLock() ) {
  					try {
  						Bitmap tmp = bitmapWork;
  						bitmapWork = bitmap;
  						bitmap = tmp;
  					} finally {
  						bitmapLock.unlock();
  					}
  				}
  			} break;
  		}
  	}