From 28a944114364b8a9a72cfaef207d23b62da64428 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Mon, 23 Jun 2003 17:59:04 +0000 Subject: [PATCH] Allow the ImageManager to function if we're running in headless mode. It will create all images as 32-bit ARGB. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2674 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/media/image/ImageManager.java | 9 +++++++-- .../com/threerings/media/image/ImageUtil.java | 18 ++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/java/com/threerings/media/image/ImageManager.java b/src/java/com/threerings/media/image/ImageManager.java index ef1559b5f..9d57195b8 100644 --- a/src/java/com/threerings/media/image/ImageManager.java +++ b/src/java/com/threerings/media/image/ImageManager.java @@ -1,5 +1,5 @@ // -// $Id: ImageManager.java,v 1.56 2003/05/31 00:56:38 mdb Exp $ +// $Id: ImageManager.java,v 1.57 2003/06/23 17:59:04 mdb Exp $ package com.threerings.media.image; @@ -119,7 +119,12 @@ public class ImageManager { // DEBUG: override transparency for the moment on all images transparency = Transparency.TRANSLUCENT; - return _gc.createCompatibleImage(width, height, transparency); + if (_gc != null) { + return _gc.createCompatibleImage(width, height, transparency); + } else { + // if we're running in headless mode, do everything in 24-bit + return new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + } } /** diff --git a/src/java/com/threerings/media/image/ImageUtil.java b/src/java/com/threerings/media/image/ImageUtil.java index 1171a98e6..b0d33ab6d 100644 --- a/src/java/com/threerings/media/image/ImageUtil.java +++ b/src/java/com/threerings/media/image/ImageUtil.java @@ -1,5 +1,5 @@ // -// $Id: ImageUtil.java,v 1.32 2003/05/07 19:14:38 mdb Exp $ +// $Id: ImageUtil.java,v 1.33 2003/06/23 17:59:04 mdb Exp $ package com.threerings.media.image; @@ -10,6 +10,7 @@ import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; +import java.awt.HeadlessException; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; @@ -576,16 +577,21 @@ public class ImageUtil } /** - * Obtains the default graphics configuration for this VM. + * Obtains the default graphics configuration for this VM. If the JVM + * is in headless mode, this method will return null. */ protected static GraphicsConfiguration getDefGC () { if (_gc == null) { // obtain information on our graphics environment - GraphicsEnvironment env = - GraphicsEnvironment.getLocalGraphicsEnvironment(); - GraphicsDevice gd = env.getDefaultScreenDevice(); - _gc = gd.getDefaultConfiguration(); + try { + GraphicsEnvironment env = + GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = env.getDefaultScreenDevice(); + _gc = gd.getDefaultConfiguration(); + } catch (HeadlessException e) { + // no problem, just return null + } } return _gc; }