@Nonnull
private ByteBuffer convertToOpenGlFormat(
@Nonnull final BufferedImage originalImage,
final boolean shouldFlipVertically,
final boolean shouldUseARGB) {
ImageProperties originalImageProperties = new ImageProperties(
originalImage.getWidth(),
originalImage.getHeight(),
shouldFlipVertically);
imageProperties = originalImageProperties;
BufferedImage openGlImage = createImageWithProperties(originalImageProperties);
Graphics2D openGlImageGraphics = (Graphics2D) openGlImage.getGraphics();
blankImageForMacOsXCompatibility(openGlImageGraphics, originalImageProperties);
copyImage(originalImage, openGlImageGraphics, originalImageProperties);
byte[] rawOpenGlImageData = getRawImageData(openGlImage);
if (shouldUseARGB) {
convertImageToARGB(rawOpenGlImageData);
}
ByteBuffer openGlImageByteBuffer = createByteBuffer(rawOpenGlImageData);
disposeImage(openGlImageGraphics);
return openGlImageByteBuffer;
}