Package net.sf.jiga.xtended

Examples of net.sf.jiga.xtended.JXAException


                        final Monitor monitor = renderableImpl.imageSynch;
                        synchronized (monitor) {
                                waitFor(data);
                                if (!renderableImpl.isTileModeEnabled() && renderableImpl.isJava2DModeEnabled()) {
                                        if (data == null) {
                                                throw new JXAException("no data to fit size");
                                        }
                                        renderableImpl.bounds.setSize(new Dimension(data.getWidth(renderableImpl.io.obs), data.getHeight(renderableImpl.io.obs)));
                                } else {
                                        ImageReader r = renderableImpl.io.__getInput(tileSrc, innerResource, renderableImpl.io.getReader(0, tileMime), isUseIIOCacheEnabled());
                                        renderableImpl.bounds.setSize(new Dimension(r.getWidth(0), r.getHeight(0)));
                                        ((ImageInputStream) r.getInput()).flush();
                                        ((ImageInputStream) r.getInput()).close();
                                        r.dispose();
                                }
                        }
                } catch (Exception ex) {
                        JXAException e = new JXAException(ex);
                        throw e;
                } finally {
                        if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                DebugMap._getInstance().tickPrintln(System.out, tileSrc + ": " + renderableImpl.bounds.width + "x" + renderableImpl.bounds.height, true);
                        }
View Full Code Here


                                        return __loadImage(src, innerResource, r, renderMode, bufferedType, useCache);
                                }
                        });
                } catch (PrivilegedActionException ex) {
                        Exception e = ex.getException();
                        JXAException ioe = new JXAException(e);
                        throw ioe;
                }
        }
View Full Code Here

                         */
                } catch (Exception ex) {
                        if (isDebugEnabled()) {
                                ex.printStackTrace();
                        }
                        JXAException e = new JXAException(ex);
                        throw e;
                } finally {
                        Thread.currentThread().setPriority(pty);
                }
        }
View Full Code Here

                /*
                 * if ((renderMode & MODE_TILE) != 0) { throw new
                 * InterruptedException("unable to paint with the tile mode enabled"); }
                 */
                if (!renderableImpl.isJava2DModeEnabled()) {
                        throw new JXAException("unable to paint if the Java2D mode is disabled");
                }
                if (!SwingUtilities.isEventDispatchThread()) {
                        System.err.println(JXAenvUtils.log("painting outside EDT !", JXAenvUtils.LVL.APP_WRN));
                }
                renderableImpl.io.obs = pobs;
                Throwable interrupt_ = null;
                boolean complete = true;
                Sprite clone = null;
                fx &= ~GLFX.bits._getAllBitRanges();
                /*
                 * if (renderableImpl.isTileModeEnabled()) { if (isDebugEnabled()) {
                 * System.err.println(toString() + " : tile mode disables fx in java2d
                 * render mode !"); } fx = gfx.FX_NONE; }
                 */
                if (fx != gfx.FX_NONE) {
                        clone = (Sprite) clone();
                }
                final Monitor monitor = renderableImpl.validateMonitor;
                synchronized (monitor) {
                        while (validating) {
                                if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                        DebugMap._getInstance().tickPrintln(System.out, "validating " + toString() + " sprite's waiting for...", false);
                                }
                                monitor.wait(1000);
                        }
                        if (!valid) {
                                if (isDebugEnabled()) {
                                        System.err.println("." + (!valid ? "!INVALID!" : ""));
                                }
                                return false;
                        }
                        painting = true;
                        final Monitor monitor1 = renderableImpl.imageSynch;
                        synchronized (monitor1) {
                                Shape backgroundClip = g2.getClip();
                                try {
                                        waitFor(data);
                                        if (data == null && !renderableImpl.isTileModeEnabled() || tileSrc == null && renderableImpl.isTileModeEnabled()) {
                                                throw new JXAException("Sprite " + toString() + " has no data to draw ! try (re)validate().");
                                        } else {
                                                if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                                        DebugMap._getInstance().tickPrintln(System.out, ">>>>>> Java2D draw image size : " + renderableImpl.bounds.getWidth() + "x" + renderableImpl.bounds.getHeight() + " on clip : " + g2.getClipBounds() + " <<<<<< " + toString(), false);
                                                }
                                        }
                                        AffineTransform baseTx = new AffineTransform();
                                        if (tx != null) {
                                                baseTx.concatenate(tx);
                                        }
                                        PerspectiveTransform basePtx = new PerspectiveTransform();
                                        if (ptx != null) {
                                                basePtx.concatenate(ptx);
                                        }
                                        if (_paintStatus) {
                                                g2.drawString("sprite v", (int) renderableImpl.bounds.getX(), (int) renderableImpl.bounds.getY());
                                        }
                                        if (baseTx.getScaleX() == 0.0 || baseTx.getScaleY() == 0.0 || baseTx.getDeterminant() == 0.0) {
                                                if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                                        DebugMap._getInstance().tickPrintln(System.out, "transform " + toString() + " contains Zero, so is avoided. TX=" + baseTx, true);
                                                }
                                                throw new JXAException(toString() + " transform failed! " + baseTx);
                                        }
                                        if (!renderableImpl.isTileModeEnabled()) {
                                                if (data.getWidth(renderableImpl.io.obs) <= 0 || data.getHeight(renderableImpl.io.obs) <= 0) {
                                                        throw new JXAException(toString() + " image data size was not available!");
                                                }
                                        }
                                        if (!basePtx.isIdentity()) {
                                                basePtx.preConcatenate(baseTx.createInverse());
                                                double[] perspectiveTransform = new double[]{0, 0, renderableImpl.bounds.getWidth(), 0, renderableImpl.bounds.getWidth(), renderableImpl.bounds.getHeight(), 0, renderableImpl.bounds.getHeight()};
                                                basePtx.inverseTransform(perspectiveTransform, 0, perspectiveTransform, 0, 4);
                                                Polygon perspectiveTransformPoly = new Polygon();
                                                for (int i = 0; i < perspectiveTransform.length; i += 2) {
                                                        perspectiveTransformPoly.addPoint((int) perspectiveTransform[i], (int) perspectiveTransform[i + 1]);
                                                }
                                                if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                                        DebugMap._getInstance().tickPrintln(System.out, "Warped area : " + perspectiveTransformPoly.getBounds(), false);
                                                }
                                                g2.translate(getLocation().x, getLocation().y);
                                                g2.clip(perspectiveTransformPoly);
                                                if (isDebugEnabled()) {
                                                        g2.draw(perspectiveTransformPoly);
                                                }
                                                g2.translate(-getLocation().x, -getLocation().y);
                                        } else if (!baseTx.isIdentity() && basePtx.isIdentity()) {
                                                Rectangle transform = baseTx.createTransformedShape(new Rectangle(renderableImpl.bounds.getSize())).getBounds();
                                                if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                                        DebugMap._getInstance().tickPrintln(System.out, "TXShape : " + transform, false);
                                                }
                                                if (transform.getSize().height <= 1 || transform.getSize().width <= 1) {
                                                        throw new JXAException(toString() + " transform failed! " + transform);
                                                }
                                                g2.translate(getLocation().x, getLocation().y);
                                                g2.clip(transform);
                                                if (isDebugEnabled()) {
                                                        g2.draw(transform);
                                                }
                                                g2.translate(-getLocation().x, -getLocation().y);
                                        } else {
                                                g2.clip(renderableImpl.bounds);
                                        }
                                        if (isDebugEnabled()) {
                                                g2.draw(renderableImpl.bounds);
                                        }
                                        AffineTransform fx_tx = new AffineTransform();
                                        AffineTransform fx_tx_mirror = new AffineTransform();
                                        long now = System.currentTimeMillis();
                                        if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                                DebugMap._getInstance().tickPrint(System.out, "FX : ", false);
                                                for (gfx select : gfx.values()) {
                                                        if ((select.bit() & fx) != 0) {
                                                                DebugMap._getInstance().tickPrint(System.out, " " + select, false);
                                                        }
                                                }
                                                DebugMap._getInstance().tickPrintln(System.out, ".", false);
                                        }
                                        /**
                                         * START SCROLLLING
                                         */
                                        if ((fx & gfx.FX_SCROLLING.bit()) != 0) {
                                                if (!(Sprite.fx.FX_lastTransformScrolling.get(hashCode()) instanceof AffineTransform)) {
                                                        Sprite.fx.FX_lastTransformScrolling.put(hashCode(), new AffineTransform());
                                                }
                                                if (!(Sprite.fx.FX_lastTransformTime.get(hashCode()) instanceof Long)) {
                                                        Sprite.fx.FX_lastTransformTime.put(hashCode(), now);
                                                }
                                                double translateH, translateV;
                                                translateH = (fx & gfx.FX_HORIZONTAL.bit()) != 0 ? Sprite.fx.FX_overallSPEED * (now - Sprite.fx.FX_lastTransformTime.get(hashCode())) : 0f;
                                                translateV = (fx & gfx.FX_VERTICAL.bit()) != 0 ? Sprite.fx.FX_overallSPEED * (now - Sprite.fx.FX_lastTransformTime.get(hashCode())) : 0f;
                                                Sprite.fx.FX_lastTransformScrolling.get(hashCode()).setToTranslation(-((Math.abs(Sprite.fx.FX_lastTransformScrolling.get(hashCode()).getTranslateX()) + translateH) % renderableImpl.bounds.width), -((Math.abs(Sprite.fx.FX_lastTransformScrolling.get(hashCode()).getTranslateY()) + translateV) % renderableImpl.bounds.height));
                                                fx_tx.preConcatenate(Sprite.fx.FX_lastTransformScrolling.get(hashCode()));
                                                double mX = 1, mY = 1;
                                                if ((fx & gfx.FX_REFLEXION.bit()) != 0) {
                                                        if ((fx & (gfx.FX_RIGHT.bit() | gfx.FX_LEFT.bit())) != 0) {
                                                                mX = -1;
                                                        }
                                                        if ((fx & (gfx.FX_TOP.bit() | gfx.FX_BOTTOM.bit())) != 0) {
                                                                mY = -1;
                                                        }
                                                }
                                                fx_tx_mirror.preConcatenate(AffineTransform.getTranslateInstance(mX * fx_tx.getTranslateX(), mY * fx_tx.getTranslateY()));
                                                Sprite.fx.FX_lastTransformTime.put(hashCode(), now);
                                        }
                                        /**
                                         * END SCROLLLING
                                         */
                                        /**
                                         * START ROTQTION
                                         */
                                        if ((fx & gfx.FX_ROTATION.bit()) != 0) {
                                                if (!(Sprite.fx.FX_lastTransformTime.get(hashCode()) instanceof Long)) {
                                                        Sprite.fx.FX_lastTransformTime.put(hashCode(), now);
                                                }
                                                float lastTransformTheta = Sprite.fx.FX_lastTransformTheta.containsKey(hashCode()) ? Sprite.fx.FX_lastTransformTheta.get(hashCode()) : (1f - 1f / 360f) * 2f * (float) Math.PI;
                                                float rotationSpeed = Sprite.fx.FX_overallRADIALSPEED * 360f / (2f * (float) Math.PI);
                                                if ((fx - (fx & (GLFX.bits._getAllBits() | GLFX.bits._getAllBitRanges()))) != 0) {
                                                        rotationSpeed = fx - (fx & (GLFX.bits._getAllBits() | GLFX.bits._getAllBitRanges()));
                                                        rotationSpeed /= 1000f;
                                                }
                                                lastTransformTheta -= (float) (now - Sprite.fx.FX_lastTransformTime.get(hashCode())) * rotationSpeed;
                                                lastTransformTheta = lastTransformTheta % (2f * (float) Math.PI);
                                                fx_tx.preConcatenate(AffineTransform.getRotateInstance(lastTransformTheta, (float) renderableImpl.bounds.width / 2f, (float) renderableImpl.bounds.height / 2f));
                                                fx_tx_mirror.preConcatenate(AffineTransform.getRotateInstance(-lastTransformTheta, (float) renderableImpl.bounds.width / 2f, (float) renderableImpl.bounds.height / 2f));
                                                Sprite.fx.FX_lastTransformTheta.put(hashCode(), lastTransformTheta);
                                                Sprite.fx.FX_lastTransformTime.put(hashCode(), now);
                                        }
                                        /**
                                         * END ROTQTION
                                         */
                                        /**
                                         * START RELEXION + SHADOW
                                         */
                                        if ((fx & (gfx.FX_REFLEXION.bit() | gfx.FX_SHADOW.bit())) != 0) {
                                                Sprite shadow = clone;
                                                if (shadow == null) {
                                                        throw new JXAException("clone failed to recover data");
                                                }
                                                shadow.setCompositeEnabled(true);
                                                shadow.setTX(fx_tx);
                                                if ((fx & gfx.FX_REFLEXION.bit()) != 0 && (fx & (gfx.FX_TOP.bit() | gfx.FX_BOTTOM.bit() | gfx.FX_LEFT.bit() | gfx.FX_RIGHT.bit())) != 0) {
                                                        shadow.setTX(fx_tx_mirror);
                                                        if ((fx & (gfx.FX_TOP.bit() | gfx.FX_BOTTOM.bit())) != 0) {
                                                                shadow.setFlipEnabled(true, Sprite.VERTICAL);
                                                        }
                                                        if ((fx & (gfx.FX_LEFT.bit() | gfx.FX_RIGHT.bit())) != 0) {
                                                                shadow.setFlipEnabled(true, Sprite.HORIZONTAL);
                                                        }
                                                        Point endPoint = new Point(0, 0);
                                                        Point startPoint = new Point(0, 0);
                                                        if ((fx & gfx.FX_TOP.bit()) != 0) {
                                                                startPoint = new Point(0, (int) ((float) renderableImpl.bounds.height * .66f));
                                                                endPoint = new Point(0, 0);
                                                        }
                                                        if ((fx & gfx.FX_BOTTOM.bit()) != 0) {
                                                                startPoint = new Point(0, 0);
                                                                endPoint = new Point(0, (int) ((float) renderableImpl.bounds.height * .66f));
                                                        }
                                                        if ((fx & gfx.FX_LEFT.bit()) != 0) {
                                                                startPoint = new Point(0, 0);
                                                                endPoint = new Point((int) ((float) renderableImpl.bounds.width * .66f), 0);
                                                        }
                                                        if ((fx & gfx.FX_RIGHT.bit()) != 0) {
                                                                startPoint = new Point((int) ((float) renderableImpl.bounds.width * .66f), 0);
                                                                endPoint = new Point(0, 0);
                                                        }
                                                        if (!(FX_gradients.get(hashCode()) instanceof GradientPaint)) {
                                                                FX_gradients.put(hashCode(), new GradientPaint(startPoint.x, startPoint.y, new Color(1.0f, 1.0f, 1.0f, 1.0f), endPoint.x, endPoint.y, new Color(1.0f, 1.0f, 1.0f, 0.0f), false));
                                                        } else if (FX_gradients.get(hashCode()).getPoint2().distance(FX_gradients.get(hashCode()).getPoint1()) != startPoint.distance(endPoint)) {
                                                                FX_gradients.put(hashCode(), new GradientPaint(startPoint.x, startPoint.y, new Color(1.0f, 1.0f, 1.0f, 1.0f), endPoint.x, endPoint.y, new Color(1.0f, 1.0f, 1.0f, 0.0f), false));
                                                        }
                                                        Paint shadow_gradient = FX_gradients.get(hashCode());
                                                        shadow.setPaint(shadow_gradient);
                                                        shadow.setComposite(AlphaComposite.DstIn);
                                                        if (fx_color != null) {
                                                                shadow.runValidate();
                                                                shadow.setFlipEnabled(false, NONE);
                                                                shadow.setComposited(false);
                                                                shadow.setPaint(null);
                                                                shadow.setComposite(AlphaComposite.SrcAtop);
                                                                shadow.setColor(fx_color);
                                                        }
                                                } else {
                                                        shadow.setColor(fx_color);
                                                        shadow.setComposite(AlphaComposite.SrcIn);
                                                }
                                                shadow.runValidate();
                                                Shape clip = g2.getClip();
                                                g2.setClip(backgroundClip);
                                                if ((fx & gfx.FX_BACKGROUND.bit()) != 0 && (fx & gfx.FX_REPEAT.bit()) != 0) {
                                                        for (int j = -1; j < Math.ceil((float) backgroundClip.getBounds().getHeight() / (float) renderableImpl.bounds.height); j++) {
                                                                for (int i = -1; i < Math.ceil((float) backgroundClip.getBounds().getWidth() / (float) renderableImpl.bounds.width); i++) {
                                                                        int mh = (fx & gfx.FX_REFLEXION.bit()) != 0 && (fx & gfx.FX_BOTTOM.bit()) != 0 ? 2 : 1;
                                                                        mh = (fx & gfx.FX_REFLEXION.bit()) != 0 && (fx & gfx.FX_TOP.bit()) != 0 ? -1 : mh;
                                                                        int mw = (fx & gfx.FX_REFLEXION.bit()) != 0 && (fx & gfx.FX_RIGHT.bit()) != 0 ? 2 : 1;
                                                                        mw = (fx & gfx.FX_REFLEXION.bit()) != 0 && (fx & gfx.FX_LEFT.bit()) != 0 ? -1 : mw;
                                                                        shadow.setLocation((int) backgroundClip.getBounds().getX() + ((fx & gfx.FX_HORIZONTAL.bit()) != 0 ? i : 0) * mw * renderableImpl.bounds.width, (int) backgroundClip.getBounds().getY() + ((fx & gfx.FX_VERTICAL.bit()) != 0 ? j : 0) * mh * renderableImpl.bounds.height);
                                                                        shadow.setLocation(shadow.getLocation().x + fx_loc.x, shadow.getLocation().y + fx_loc.y);
                                                                        complete = shadow.draw(renderableImpl.io.obs, g2) && complete;
                                                                        if ((fx & gfx.FX_HORIZONTAL.bit()) == 0) {
                                                                                break;
                                                                        }
                                                                }
                                                                if ((fx & gfx.FX_VERTICAL.bit()) == 0) {
                                                                        break;
                                                                }
                                                        }
                                                } else {
                                                        if ((fx & gfx.FX_REFLEXION.bit()) != 0) {
                                                                if ((fx & gfx.FX_BOTTOM.bit()) != 0) {
                                                                        shadow.setLocation((int) renderableImpl.bounds.getX(), (int) renderableImpl.bounds.getMaxY());
                                                                }
                                                                if ((fx & gfx.FX_TOP.bit()) != 0) {
                                                                        shadow.setLocation((int) renderableImpl.bounds.getX(), (int) (renderableImpl.bounds.getY() - renderableImpl.bounds.getHeight()));
                                                                }
                                                                if ((fx & gfx.FX_LEFT.bit()) != 0) {
                                                                        shadow.setLocation((int) (renderableImpl.bounds.getX() - renderableImpl.bounds.getWidth()), (int) renderableImpl.bounds.getY());
                                                                }
                                                                if ((fx & gfx.FX_RIGHT.bit()) != 0) {
                                                                        shadow.setLocation((int) renderableImpl.bounds.getMaxX(), (int) renderableImpl.bounds.getY());
                                                                }
                                                        }
                                                        shadow.setLocation(shadow.getLocation().x + fx_loc.x, shadow.getLocation().y + fx_loc.y);
                                                        shadow.draw(renderableImpl.io.obs, g2);
                                                }
                                                g2.setClip(clip);
                                        }
                                        /**
                                         * END RELEXION + SHADOW
                                         */
                                        /**
                                         * START BACKGROUND + REPEAT
                                         */
                                        if ((fx & gfx.FX_BACKGROUND.bit()) != 0 && (fx & gfx.FX_REPEAT.bit()) != 0) {
                                                g2.setClip(backgroundClip);
                                                for (int j = -1; j < Math.ceil((float) backgroundClip.getBounds().getHeight() / (float) renderableImpl.bounds.height); j++) {
                                                        for (int i = -1; i < Math.ceil((float) backgroundClip.getBounds().getWidth() / (float) renderableImpl.bounds.width); i++) {
                                                                setLocation((int) backgroundClip.getBounds().getX() + ((fx & gfx.FX_HORIZONTAL.bit()) != 0 ? i : 0) * renderableImpl.bounds.width, (int) backgroundClip.getBounds().getY() + ((fx & gfx.FX_VERTICAL.bit()) != 0 ? j : 0) * renderableImpl.bounds.height);
                                                                Point loc = getLocation();
                                                                /*
                                                                 * setLocation(loc.x + fx_loc.x, loc.y +
                                                                 * fx_loc.y);
                                                                 */
                                                                if ((fx & gfx.FX_SCROLLING.bit()) != 0 && (fx & gfx.FX_REPEAT.bit()) != 0) {
                                                                        setLocation(getLocation().x + renderableImpl.bounds.width, getLocation().y + renderableImpl.bounds.height);
                                                                        if ((fx & gfx.FX_HORIZONTAL.bit()) != 0 && (fx & gfx.FX_VERTICAL.bit()) != 0) {
                                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                                        }
                                                                        setLocation(getLocation().x - renderableImpl.bounds.width, getLocation().y);
                                                                        if ((fx & gfx.FX_VERTICAL.bit()) != 0) {
                                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                                        }
                                                                        setLocation(getLocation().x + renderableImpl.bounds.width, getLocation().y - renderableImpl.bounds.height);
                                                                        if ((fx & gfx.FX_HORIZONTAL.bit()) != 0) {
                                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                                        }
                                                                }
                                                                setLocation(loc);
                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                                setLocation(
                                                                        renderableImpl.bounds.getBounds().getLocation());
                                                                if ((fx & gfx.FX_HORIZONTAL.bit()) == 0) {
                                                                        break;
                                                                }
                                                        }
                                                        if ((fx & gfx.FX_VERTICAL.bit()) == 0) {
                                                                break;
                                                        }
                                                }
                                        } else {
                                                /**
                                                 * END BACKGROUND + REPEAT
                                                 */
                                                /**
                                                 * START SCROLLING + REPEAT
                                                 */
                                                if ((fx & gfx.FX_SCROLLING.bit()) != 0 && (fx & gfx.FX_REPEAT.bit()) != 0) {
                                                        Point loc = getLocation();
                                                        setLocation(
                                                                getLocation().x + renderableImpl.bounds.width, getLocation().y + renderableImpl.bounds.height);
                                                        if ((fx & gfx.FX_HORIZONTAL.bit()) != 0 && (fx & gfx.FX_VERTICAL.bit()) != 0) {
                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                        }
                                                        setLocation(getLocation().x - renderableImpl.bounds.width, getLocation().y);
                                                        if ((fx & gfx.FX_VERTICAL.bit()) != 0) {
                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                        }
                                                        setLocation(getLocation().x + renderableImpl.bounds.width, getLocation().y - renderableImpl.bounds.height);
                                                        if ((fx & gfx.FX_HORIZONTAL.bit()) != 0) {
                                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                                        }
                                                        setLocation(loc);
                                                }
                                                /**
                                                 * END SCROLLING + REPEAT
                                                 */
                                                complete = __draw0(renderableImpl.io.obs, g2, baseTx, basePtx, fx_tx) && complete;
                                        }
                                } catch (Exception e) {
                                        if (isDebugEnabled()) {
                                                e.printStackTrace();
                                        }
                                        interrupt_ = e;
                                } finally {
                                        g2.setClip(backgroundClip);

                                        if (fx != gfx.FX_NONE) {
                                                if (clone instanceof Sprite) {
                                                        clone.clearResource();
                                                }
                                        }
                                        if (isHardwareAccel()) {
                                                clearResource(); /*
                                                 * free video memory
                                                 */

                                        }
                                        painting = false;
                                        monitor1.notifyAll();
                                }
                        }
                }
                if (interrupt_ instanceof Throwable) {
                        JXAException e = new JXAException("Sprite " + toString() + " caught an interruption.", interrupt_);
                        throw e;
                }
                return complete;
        }
View Full Code Here

                        if (!fx_tx.isIdentity()) {
                                baseTX.preConcatenate(fx_tx);
                        }
                        if (!renderableImpl.isTileModeEnabled()) {
                                if (data == null) {
                                        throw new JXAException("No image data to render ! " + toString());
                                }
                                if (data instanceof RenderedImage) {
                                        g2.drawRenderedImage((RenderedImage) data, baseTX);
                                        complete = complete && true;
                                } else {
                                        complete = g2.drawImage(data, baseTX, obs) && complete;
                                }
                        } else {
                                if (tileSrc == null) {
                                        throw new JXAException("No suitable source for rendering ! " + toString());
                                }
                                ImageReader r = renderableImpl.io.__getInput(tileSrc, innerResource, renderableImpl.io.getReader(0, tileMime), isUseIIOCacheEnabled());
                                Dimension numTiles = renderableImpl.io.getNumTilesXY(r);
                                Dimension dim = new Dimension(r.getWidth(0), r.getHeight(0));
                                Dimension tiles = SpriteIO._WRITE_TILES_DIMENSION;
                                renderableImpl.io.notifyIIOReadListenersStarted(renderableImpl.io.rTileProgList, r, 0);
                                Area clip = g2.getClip() != null ? new Area(g2.getClip()) : new Area(new Rectangle(drawBounds.getSize()));
                                for (int x = 0; x < numTiles.width; x++) {
                                        for (int y = 0; y < numTiles.height; y++) {
                                                ImageReadParam irp = renderableImpl.io._getIRP(r, _type);
                                                Rectangle sroi = new Rectangle(x * tiles.width, y * tiles.height, tiles.width, tiles.height).intersection(new Rectangle(dim));
                                                if (sroi.isEmpty()) {
                                                        continue;
                                                }
                                                irp.setSourceRegion(sroi);
                                                Area a = new Area(baseTX.createTransformedShape(sroi));
                                                a.intersect(clip);
                                                if (!a.isEmpty()) {
                                                        BufferedImage b = r.read(0, irp);
                                                        renderableImpl.io.trackImage(renderableImpl.io.trackerPty, b);
                                                        renderableImpl.io.waitFor(renderableImpl.io.trackerPty);
                                                        renderableImpl.io.untrackImage(renderableImpl.io.trackerPty, b);
                                                        AffineTransform tileTX = AffineTransform.getTranslateInstance(sroi.getX(), sroi.getY());
                                                        tileTX.preConcatenate(baseTX);
                                                        g2.drawRenderedImage(b, tileTX);
                                                        b.flush();
                                                        if (isDebugEnabled()) {
                                                                g2.draw(baseTX.createTransformedShape(sroi));
                                                        }
                                                }
                                                renderableImpl.io.notifyIIOReadListenersProgress(renderableImpl.io.rTileProgList, r, (float) (y * numTiles.width + x) / (float) (numTiles.width * numTiles.height));
                                        }
                                }
                                ((ImageInputStream) r.getInput()).flush();
                                ((ImageInputStream) r.getInput()).close();
                                r.dispose();
                                renderableImpl.io.notifyIIOReadListenersComplete(renderableImpl.io.rTileProgList, r);
                        }
                        if (isDebugEnabled()) {
                                g2.draw(baseTX.createTransformedShape(new Rectangle(drawBounds.getSize())));
                        }
                } else {
                        if (!renderableImpl.isTileModeEnabled()) {
                                if (data == null) {
                                        throw new JXAException("No image data to render ! " + toString());
                                }
                                ParameterBlock pb = new ParameterBlock();
                                pb.addSource(data);
                                pb.add(new WarpPerspective(basePtx));
                                pb.add(Interpolation.getInstance(Interpolation.INTERP_NEAREST));
                                if (DebugMap._getInstance().isDebugLevelEnabled(gfx.DBUG)) {
                                        DebugMap._getInstance().tickPrintln(System.out, "Sprite " + toString() + " warped to : " + basePtx, false);
                                }
                                RenderedOp warpOp = JAI.create("warp", pb);
                                RenderedImage warped = (RenderedImage) warpOp.createInstance();
                                GraphicsJAI jai = GraphicsJAI.createGraphicsJAI(g2, obs);
                                jai.drawRenderedImage(warped, new AffineTransform());
                                complete = complete && true;
                        } else {
                                if (tileSrc == null) {
                                        throw new JXAException("No suitable source for rendering ! " + toString());
                                }
                                ImageReader r = renderableImpl.io.__getInput(tileSrc, innerResource, renderableImpl.io.getReader(0, tileMime), isUseIIOCacheEnabled());
                                Dimension numTiles = renderableImpl.io.getNumTilesXY(r);
                                Dimension dim = new Dimension(r.getWidth(0), r.getHeight(0));
                                Dimension tiles = SpriteIO._WRITE_TILES_DIMENSION;
View Full Code Here

                                        } else {
                                                data = this.data;
                                                waitFor(this.data);
                                        }
                                        if (data == null) {
                                                throw new JXAException("Sprite " + toString() + " had no data");
                                        }
                                }
                                if (tx == null) {
                                        tx = new AffineTransform();
                                }
                                if (scaling == null) {
                                        scaling = new AffineTransform();
                                }
                                if (mirroring == null) {
                                        mirroring = new AffineTransform();
                                }
                                if (ptx == null) {
                                        ptx = new PerspectiveTransform();
                                }
                                /*
                                 * compute actual size with transforming (resize)
                                 */
                                Dimension dataSize = data instanceof ImageReader ? new Dimension(((ImageReader) data).getWidth(0), ((ImageReader) data).getHeight(0)) : new Dimension(((Image) data).getWidth(renderableImpl.io.obs), ((Image) data).getHeight(renderableImpl.io.obs));
                                baseTx.scale((double) size.width / (double) dataSize.width, (double) size.height / (double) dataSize.height);
                                if (!ptx.equals(currentPrePerspectiveTransforming) || !tx.equals(currentPreTransforming) || !mirroring.equals(currentPreMirroring) || !scaling.equals(currentPreScaling) || !dataSize.equals(size)) {
                                        /*
                                         * add transform (watch out to the order !), WarpPerspective
                                         * maps DST onto the SRC unlike Affine maps SRC onto the
                                         * DST.
                                         */
                                        if (!ptx.equals(currentPrePerspectiveTransforming)) {
                                                /**
                                                 * SRC = TX' x MIRRORING' x
                                                 * SCALING' x PTX x resize' x
                                                 * DST
                                                 */
                                                if (!tx.equals(currentPreTransforming)) {
                                                        basePtx.concatenate(tx.createInverse());
                                                        currentPreTransforming = tx;
                                                }
                                                if (!mirroring.equals(currentPreMirroring)) {
                                                        basePtx.concatenate(mirroring.createInverse());
                                                        currentPreMirroring = mirroring;
                                                }
                                                if (!scaling.equals(currentPreScaling)) {
                                                        basePtx.concatenate(scaling.createInverse());
                                                        currentPreScaling = scaling;
                                                }
                                                basePtx.concatenate(ptx);
                                                currentPrePerspectiveTransforming = ptx;
                                        } else {
                                                /**
                                                 * DST = TX X MIRRORING x
                                                 * SCALING x resize x SRC
                                                 */
                                                if (!scaling.equals(currentPreScaling)) {
                                                        baseTx.preConcatenate(scaling);
                                                        currentPreScaling = scaling;
                                                }
                                                if (!mirroring.equals(currentPreMirroring)) {
                                                        baseTx.preConcatenate(mirroring);
                                                        currentPreMirroring = mirroring;
                                                }
                                                if (!tx.equals(currentPreTransforming)) {
                                                        baseTx.preConcatenate(tx);
                                                        currentPreTransforming = tx;
                                                }
                                        }
                                        Graphics dataG = null;
                                        Dimension nsize = null;
                                        Rectangle transform = null;
                                        Polygon perspectiveTransformPoly = new Polygon();
                                        double[] perspectiveTransform = new double[]{0, 0, size.width, 0, size.width, size.height, 0, size.height};
                                        if (basePtx.isIdentity()) {
                                                transform = baseTx.createTransformedShape(new Rectangle(dataSize)).getBounds();
                                                nsize = new Dimension((int) Math.round(transform.getWidth()), (int) Math.round(transform.getHeight()));
                                        } else {
                                                basePtx.inverseTransform(perspectiveTransform, 0, perspectiveTransform, 0, 4);
                                                for (int i = 0; i < perspectiveTransform.length; i += 2) {
                                                        perspectiveTransformPoly.addPoint((int) Math.round(perspectiveTransform[i]), (int) Math.round(perspectiveTransform[i + 1]));
                                                }
                                                transform = perspectiveTransformPoly.getBounds();
                                                nsize = transform.getSize();
                                        }
                                        if (data instanceof ImageReader) {
                                                ndata = FileHelper._createTempFile(_TILES_PREFIX, renderableImpl.io._getIIOTmpDir(), true);
                                        } else {
                                                ndata = (cache & BUFFERED) != 0 ? SpriteIO.createBufferedImage(nsize, _type) : (Image) createVolatileImage(nsize, _getTransparency(_type));
                                        }
                                        if (ndata == null || nsize.width < 1 || nsize.height < 1) {
                                                throw new JXAException("Sprite " + toString() + " failed to create new data on resize");
                                        }
                                        if (basePtx.isIdentity()) {
                                                if (data instanceof ImageReader) {
                                                        /**
                                                         * file output
View Full Code Here

                                                        if (rLen >= len) {
                                                                break;
                                                        }
                                                }
                                                if (rLen > len) {
                                                        throw new JXAException("Illegal rLen returned value " + rLen + ", expected len " + len);
                                                }
                                                raf.close();
                                        } else {
                                                in.skipBytes((int) len);
                                        }
View Full Code Here

                if (!(s instanceof ImageInputStream)) {
                        in = ImageIO.createImageInputStream(s);
                        it = ImageIO.getImageReaders(in);
                        in.close();
                } else {
                        throw new JXAException("Cannot use an ImageInputStream as source. A standard InputStream may be passed in.");
                }
                try {
                        for (; it.hasNext();) {
                                Map<String, Object> m = _loadImage(s, false, it.next(), Sf3RenderableImpl.MODE_TILE | Sf3RenderableImpl.MODE_JAVA2D, DEFAULT_TYPE, useCache);
                                ImageReader r = (ImageReader) m.get("reader");
                                if (s instanceof Image) {
                                        sp = new Sprite((Image) s, r.getOriginatingProvider().getMIMETypes()[0], new Dimension(r.getWidth(0), r.getHeight(0)));
                                }
                                if (s instanceof File) {
                                        sp = new Sprite((File) s, r.getOriginatingProvider().getMIMETypes()[0], new Dimension(r.getWidth(0), r.getHeight(0)), true);
                                } else if (s instanceof InputStream) {
                                        sp = new Sprite((InputStream) s, r.getOriginatingProvider().getMIMETypes()[0], new Dimension(r.getWidth(0), r.getHeight(0)), true);
                                } else if (s instanceof String) {
                                        sp = new Sprite((String) s, false, r.getOriginatingProvider().getMIMETypes()[0], new Dimension(r.getWidth(0), r.getHeight(0)), true);
                                }
                                r.dispose();
                                break;
                        }
                        return sp;
                } catch (URISyntaxException ex) {
                        JXAException e = new JXAException(ex);
                        throw e;
                }
        }
View Full Code Here

                ImageReader r = renderableImpl.io.getReader(0, tileMime);
                r = renderableImpl.io.__getInput(tileSrc, innerResource, r, useCache);
                Dimension dim = new Dimension(r.getWidth(0), r.getHeight(0));
                if ((_TILEFLAGS & renderableImpl.io.prepareWrite(dim, w, its, iwp, useCache, newTileWrite, r, _type)) != _TILEFLAGS) {
                        throw new JXAException("Something went wrong to store " + storeMime + " from " + tileSrc);
                }
                return w;
        }
View Full Code Here

                                                        }
                                                        if (compositeEnabled && !composited && data instanceof Image) {
                                                                texUpdate = true;
                                                                waitFor(data);
                                                                if (data == null) {
                                                                        throw new JXAException("Sprite " + toString() + " had no data to draw ");
                                                                }
                                                                Graphics g1 = _createImageGraphics(data);
                                                                g1.setClip(0, 0, data.getWidth(renderableImpl.io.obs), data.getHeight(renderableImpl.io.obs));
                                                                Graphics2D g = wrapRendering(g1);
                                                                Paint pnt = g.getPaint();
View Full Code Here

TOP

Related Classes of net.sf.jiga.xtended.JXAException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.