public static ImageLoader createImageLoader(@Nonnull final String imageFilename) { return imageFilename.endsWith(".tga") ? new TGAImageLoader() : new DefaultImageLoader(); } }
@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); // We can't dispose of openGlImage any earlier because it would destroy rawOpenGlImageData. disposeImage(openGlImageGraphics); return openGlImageByteBuffer; }
@Nonnull private BufferedImage createImageWithProperties(@Nonnull final ImageProperties imageProperties) { return new BufferedImage( imageProperties.getColorModel(), createRasterWithProperties(imageProperties), false, null); }
@Nonnull final NiftyResourceLoader resourceLoader) { log.fine("Loading image: " + filename); ImageLoader loader = ImageLoaderFactory.createImageLoader(filename); InputStream imageStream = null; try { imageStream = resourceLoader.getResourceAsStream(filename); if (imageStream != null) { ByteBuffer image = loader.loadAsByteBufferRGBA(imageStream); image.rewind(); width = loader.getImageWidth(); height = loader.getImageHeight(); textureWidth = loader.getTextureWidth(); textureHeight = loader.getTextureHeight(); createTexture(image, textureWidth, textureHeight, filterParam, loader.getImageBitDepth() == 32 ? GL11.GL_RGBA : GL11.GL_RGB);
@Nonnull private Image createImageFromFile(@Nonnull final String filename) { ImageLoader loader = ImageLoaderFactory.createImageLoader(filename); InputStream imageStream = null; try { assert resourceLoader != null; imageStream = resourceLoader.getResourceAsStream(filename); if (imageStream != null) { ByteBuffer image = loader.loadAsByteBufferRGBA(imageStream); image.rewind(); int width = loader.getImageWidth(); int height = loader.getImageHeight(); return imageFactory.create(image, width, height); } } catch (Exception e) { log.log(Level.WARNING, "Could not load image from file: [" + filename + "]", e); } finally { if (imageStream != null) { try { imageStream.close(); } catch (IOException ignored) { } } } return imageFactory.create(null, 0, 0); } }
public LwjglMouseCursor( @Nonnull final String cursorImageFilename, final int hotspotX, final int hotspotY, @Nonnull final NiftyResourceLoader resourceLoader) throws IOException { ImageLoader imageLoader = ImageLoaderFactory.createImageLoader(cursorImageFilename); InputStream imageStream = resourceLoader.getResourceAsStream(cursorImageFilename); if (imageStream == null) { throw new IOException("Cannot find / load mouse cursor image file: [" + cursorImageFilename + "]."); } try { ByteBuffer imageData = imageLoader.loadAsByteBufferARGB(imageStream, true); imageData.rewind(); int width = imageLoader.getImageWidth(); int height = imageLoader.getImageHeight(); cursor = new Cursor(width, height, hotspotX, height - hotspotY - 1, 1, imageData.asIntBuffer(), null); } catch (LWJGLException e) { throw new IOException(e); } finally { try { imageStream.close(); } catch (IOException e) { log.log(Level.INFO, "An error occurred while closing the InputStream used to load mouse cursor image: " + "[" + cursorImageFilename + "].", e); } } }
public Lwjgl3MouseCursor(final long glfwWindow, @Nonnull final String cursorImageFilename, final int hotspotX, final int hotspotY, @Nonnull final NiftyResourceLoader resourceLoader) throws IOException { this.glfwWindow = glfwWindow; ImageLoader imageLoader = ImageLoaderFactory.createImageLoader(cursorImageFilename); InputStream imageStream = resourceLoader.getResourceAsStream(cursorImageFilename); if (imageStream == null) { throw new IOException("Cannot find / load mouse cursor image file: [" + cursorImageFilename + "]."); } try { ByteBuffer imageData = imageLoader.loadAsByteBufferARGB(imageStream, true); imageData.rewind(); GLFWImage image = new GLFWImage(imageData); cursor = glfwCreateCursor(image, hotspotX, hotspotY); } finally { try { imageStream.close(); } catch (IOException e) { log.log(Level.INFO, "An error occurred while closing the InputStream used to load mouse cursor image: " + "[" + cursorImageFilename + "].", e); } } }
@Nonnull final NiftyResourceLoader resourceLoader) throws IOException { this.newtWindow = newtWindow; ImageLoader imageLoader = ImageLoaderFactory.createImageLoader(filename); InputStream imageStream = resourceLoader.getResourceAsStream(filename); if (imageStream == null) { BufferedImage image = imageLoader.loadAsBufferedImage(imageStream); final DimensionImmutable size = new Dimension(image.getWidth(), image.getHeight());
imageWidth = flipEndian(dis.readShort()); imageHeight = flipEndian(dis.readShort()); imageBitDepth = (short) dis.read(); if (imageBitDepth == 32) { textureHeight = imageHeight; if (forceNonePowerOfTwo) { textureWidth = get2Fold(imageWidth); textureHeight = get2Fold(imageHeight); ByteBuffer scratch = createNativeOrderedByteBuffer(rawData.length); scratch.put(rawData);
@Override @Nonnull public ByteBuffer loadAsByteBufferRGBA(@Nonnull @WillNotClose final InputStream imageStream) throws IOException { return convertToOpenGlFormat(loadImageFromStream(imageStream), false, false); }
@Nonnull @Override public ByteBuffer loadAsByteBufferARGB( @Nonnull @WillNotClose final InputStream imageStream, final boolean shouldFlipVertically) throws IOException { return loadImage(imageStream, shouldFlipVertically, false, null, false, true); }
@Nonnull @Override public BufferedImage loadAsBufferedImage(@Nonnull @WillNotClose InputStream imageStream) throws IOException { try { return loadImageFromStream(imageStream); } catch (IOException e) { throw new IOException("Could not load mouse cursor image!", e); } }
@Nonnull final NiftyResourceLoader resourceLoader) { log.fine("Loading image: " + filename); ImageLoader loader = ImageLoaderFactory.createImageLoader(filename); InputStream imageStream = null; try { imageStream = resourceLoader.getResourceAsStream(filename); if (imageStream != null) { ByteBuffer image = loader.loadAsByteBufferRGBA(imageStream); image.rewind(); width = loader.getImageWidth(); height = loader.getImageHeight(); textureWidth = loader.getTextureWidth(); textureHeight = loader.getTextureHeight(); createTexture(image, textureWidth, textureHeight, filterParam, loader.getImageBitDepth() == 32 ? GL11.GL_RGBA : GL11.GL_RGB);
@Nonnull private Image createImageFromFile(@Nonnull final String filename) { ImageLoader loader = ImageLoaderFactory.createImageLoader(filename); InputStream imageStream = null; try { assert resourceLoader != null; imageStream = resourceLoader.getResourceAsStream(filename); if (imageStream != null) { ByteBuffer image = loader.loadAsByteBufferRGBA(imageStream); image.rewind(); int width = loader.getImageWidth(); int height = loader.getImageHeight(); return imageFactory.create(image, width, height); } } catch (Exception e) { log.log(Level.WARNING, "Could not load image from file: [" + filename + "]", e); } finally { if (imageStream != null) { try { imageStream.close(); } catch (IOException ignored) { } } } return imageFactory.create(null, 0, 0); } }
dis.skipBytes(11); imageWidth = flipEndian(dis.readShort()); imageHeight = flipEndian(dis.readShort()); imageBitDepth = (short) dis.read(); if (imageBitDepth == 32) { textureWidth = get2Fold(imageWidth); textureHeight = get2Fold(imageHeight); ByteBuffer scratch = createNativeOrderedByteBuffer(rawData.length); scratch.put(rawData);
@Nonnull @Override public ByteBuffer loadAsByteBufferARGB( @Nonnull @WillNotClose final InputStream imageStream, final boolean shouldFlipVertically) throws IOException { try { return convertToOpenGlFormat(loadImageFromStream(imageStream), shouldFlipVertically, true); } catch (IOException e) { throw new IOException("Could not load mouse cursor image!", e); } }
@Nonnull @Override public ByteBuffer loadAsByteBufferRGBA(@Nonnull @WillNotClose final InputStream imageStream) throws IOException { return loadImage(imageStream, false, true, null); }
@Nonnull final NiftyResourceLoader resourceLoader) { log.fine("Loading image: " + filename); ImageLoader loader = ImageLoaderFactory.createImageLoader(filename); InputStream imageStream = null; try { imageStream = resourceLoader.getResourceAsStream(filename); if (imageStream != null) { ByteBuffer image = loader.loadAsByteBufferRGBA(imageStream); image.rewind(); width = loader.getImageWidth(); height = loader.getImageHeight(); textureWidth = loader.getTextureWidth(); textureHeight = loader.getTextureHeight(); createTexture(image, textureWidth, textureHeight, filterParam ? GL.GL_LINEAR : GL.GL_NEAREST, loader.getImageBitDepth() == 32 ? GL.GL_RGBA : GL.GL_RGB);