@Override public void initialize(AppSettings settings) { if (initialized) { return; } initialized = true; logger.log(Level.INFO, getBuildInfo()); if (!lowPermissions) { if (NativeLibraryLoader.isUsingNativeBullet()) { NativeLibraryLoader.loadNativeLibrary("bulletjme", true); } } }
@Override public JmeContext newContext(AppSettings settings, Type contextType) { initialize(settings); JmeContext ctx; if (settings.getRenderer() == null || settings.getRenderer().equals("NULL") || contextType == JmeContext.Type.Headless) { ctx = new NullContext(); ctx.setSettings(settings); } else if (settings.getRenderer().startsWith("LWJGL")) { ctx = newContextLwjgl(settings, contextType); ctx.setSettings(settings); } else if (settings.getRenderer().startsWith("JOGL")) { ctx = newContextJogl(settings, contextType); ctx.setSettings(settings); } else if (settings.getRenderer().startsWith("CUSTOM")) { ctx = newContextCustom(settings, contextType); ctx.setSettings(settings); } else { throw new UnsupportedOperationException( "Unrecognizable renderer specified: " + settings.getRenderer()); } return ctx; }
@Override public AudioRenderer newAudioRenderer(AppSettings settings) { initialize(settings); AL al; ALC alc; EFX efx; if (settings.getAudioRenderer().startsWith("LWJGL")) { al = newObject("com.jme3.audio.lwjgl.LwjglAL"); alc = newObject("com.jme3.audio.lwjgl.LwjglALC"); efx = newObject("com.jme3.audio.lwjgl.LwjglEFX"); } else if (settings.getAudioRenderer().startsWith("JOAL")) { al = newObject("com.jme3.audio.joal.JoalAL"); alc = newObject("com.jme3.audio.joal.JoalALC"); efx = newObject("com.jme3.audio.joal.JoalEFX"); } else { throw new UnsupportedOperationException( "Unrecognizable audio renderer specified: " + settings.getAudioRenderer()); } if (al == null || alc == null || efx == null) { return null; } return new ALAudioRenderer(al, alc, efx); }
@Override public void writeImageFile(OutputStream outStream, String format, ByteBuffer imageData, int width, int height) throws IOException { BufferedImage awtImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Screenshots.convertScreenShot2(imageData.asIntBuffer(), awtImage); ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); if (format.equals("jpg")) { JPEGImageWriteParam jpegParam = (JPEGImageWriteParam) writeParam; jpegParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParam.setCompressionQuality(0.95f); } awtImage = verticalFlip(awtImage); ImageOutputStream imgOut = new MemoryCacheImageOutputStream(outStream); writer.setOutput(imgOut); IIOImage outputImage = new IIOImage(awtImage, null, null); try { writer.write(null, outputImage, writeParam); } finally { imgOut.close(); writer.dispose(); } }
@Override public void writeImageFile(OutputStream outStream, String format, ByteBuffer imageData, int width, int height) throws IOException { BufferedImage awtImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Screenshots.convertScreenShot2(imageData.asIntBuffer(), awtImage); ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); if (format.equals("jpg")) { JPEGImageWriteParam jpegParam = (JPEGImageWriteParam) writeParam; jpegParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParam.setCompressionQuality(0.95f); } awtImage = verticalFlip(awtImage); ImageOutputStream imgOut = new MemoryCacheImageOutputStream(outStream); writer.setOutput(imgOut); IIOImage outputImage = new IIOImage(awtImage, null, null); try { writer.write(null, outputImage, writeParam); } finally { imgOut.close(); writer.dispose(); } }
@Override public JmeContext newContext(AppSettings settings, Type contextType) { initialize(settings); JmeContext ctx; if (settings.getRenderer() == null || settings.getRenderer().equals("NULL") || contextType == JmeContext.Type.Headless) { ctx = new NullContext(); ctx.setSettings(settings); } else if (settings.getRenderer().startsWith("LWJGL")) { ctx = newContextLwjgl(settings, contextType); ctx.setSettings(settings); } else if (settings.getRenderer().startsWith("JOGL")) { ctx = newContextJogl(settings, contextType); ctx.setSettings(settings); } else if (settings.getRenderer().startsWith("CUSTOM")) { ctx = newContextCustom(settings, contextType); ctx.setSettings(settings); } else { throw new UnsupportedOperationException( "Unrecognizable renderer specified: " + settings.getRenderer()); } return ctx; }
@Override public AudioRenderer newAudioRenderer(AppSettings settings) { initialize(settings); AL al; ALC alc; EFX efx; if (settings.getAudioRenderer().startsWith("LWJGL")) { al = newObject("com.jme3.audio.lwjgl.LwjglAL"); alc = newObject("com.jme3.audio.lwjgl.LwjglALC"); efx = newObject("com.jme3.audio.lwjgl.LwjglEFX"); } else if (settings.getAudioRenderer().startsWith("JOAL")) { al = newObject("com.jme3.audio.joal.JoalAL"); alc = newObject("com.jme3.audio.joal.JoalALC"); efx = newObject("com.jme3.audio.joal.JoalEFX"); } else { throw new UnsupportedOperationException( "Unrecognizable audio renderer specified: " + settings.getAudioRenderer()); } if (al == null || alc == null || efx == null) { return null; } return new ALAudioRenderer(al, alc, efx); }
@Override public void initialize(AppSettings settings) { if (initialized) { return; } initialized = true; try { if (!lowPermissions) { // can only modify logging settings // if permissions are available // JmeFormatter formatter = new JmeFormatter(); // Handler fileHandler = new FileHandler("jme.log"); // fileHandler.setFormatter(formatter); // Logger.getLogger("").addHandler(fileHandler); // Handler consoleHandler = new ConsoleHandler(); // consoleHandler.setFormatter(formatter); // Logger.getLogger("").removeHandler(Logger.getLogger("").getHandlers()[0]); // Logger.getLogger("").addHandler(consoleHandler); } // } catch (IOException ex){ // logger.log(Level.SEVERE, "I/O Error while creating log file", ex); } catch (SecurityException ex) { logger.log(Level.SEVERE, "Security error in creating log file", ex); } logger.log(Level.INFO, getBuildInfo()); }