OSDN Git Service

Auto-save
[dvibrowser/dvi2epub.git] / src / jp / sourceforge / dvibrowser / dvicore / render / IntRGBImage.java
diff --git a/src/jp/sourceforge/dvibrowser/dvicore/render/IntRGBImage.java b/src/jp/sourceforge/dvibrowser/dvicore/render/IntRGBImage.java
deleted file mode 100644 (file)
index 9288c26..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 2009, Takeyuki Nagao
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the
- * following conditions are met:
- * 
- *  * Redistributions of source code must retain the above
- *    copyright notice, this list of conditions and the
- *    following disclaimer.
- *  * Redistributions in binary form must reproduce the above
- *    copyright notice, this list of conditions and the
- *    following disclaimer in the documentation and/or other
- *    materials provided with the distribution.
- *    
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- */
-
-package jp.sourceforge.dvibrowser.dvicore.render;
-
-import jp.sourceforge.dvibrowser.dvicore.DviException;
-import jp.sourceforge.dvibrowser.dvicore.DviRect;
-import jp.sourceforge.dvibrowser.dvicore.DviResolution;
-import jp.sourceforge.dvibrowser.dvicore.api.GammaCorrector;
-import jp.sourceforge.dvibrowser.dvicore.api.ImageDevice;
-import jp.sourceforge.dvibrowser.dvicore.gui.swing.ViewSpec;
-
-
-public class IntRGBImage
-{
-  private final int [] buf;
-  private final int width;
-  private final int height;
-
-  public IntRGBImage(int width, int height) {
-    this.buf = new int [width * height];
-    this.width = width;
-    this.height = height;
-  }
-
-  public IntRGBImage(int [] buf, int width, int height) {
-    this.buf = buf;
-    this.width = width;
-    this.height = height;
-  }
-
-  public int [] getBuffer() { return buf; }
-
-  public int width() { return width; }
-  public int height() { return height; }
-
-  public void fill(int c) {
-    for (int i=0; i<buf.length; i++)
-//      buf[i] = 0xff000000 | c;
-      buf[i] = c;
-  }
-
-  public ImageDevice getImageDevice(DviResolution res, GammaCorrector gc) {
-    return new ImageDeviceImpl(res, gc);
-  }
-  public ImageDevice getImageDevice(DviResolution res) {
-    return getImageDevice(res, null);
-  }
-
-  private class ImageDeviceImpl
-  extends AbstractDevice
-  implements ImageDevice
-  {
-    private final GammaCorrector originalGammaCorrector;
-    private GammaCorrector gammaCorrector;
-    private int maxval;
-    protected ImageDeviceImpl(DviResolution res, GammaCorrector gammaCorrector) {
-      super(res);
-      this.originalGammaCorrector = (gammaCorrector == null) ? ViewSpec.getDefaultGammaCorrector() : gammaCorrector;
-      if (originalGammaCorrector == null)
-        throw new IllegalStateException("Unable to determine the gamma corrector.");
-    }
-
-    public DviRect getBounds() {
-      return new DviRect(-point.x, -point.y, width, height);
-    }
-
-    public void begin(int maxval) {
-      this.maxval = maxval;
-      gammaCorrector = GammaCorrectorCache.wrap(originalGammaCorrector);
-    }
-
-    public void end() {
-    }
-
-    private int ptr = 0;
-//    private int gw;
-//    private int gh;
-    public boolean beginImage(int w, int h)
-    throws DviException
-    {
-//      gw = w;
-//      gh = h;
-      ptr = point.x + point.y * width;
-      return true;
-    }
-    public void endImage() {
-    }
-
-    public void putLine(int [] l_buf, int off, int len)
-    throws DviException
-    {
-      final int color = getColor().toIntRGB();
-      for (int i=0; i<len; i++) {
-        final int alpha10 = gammaCorrector.correctGamma(l_buf[off + i], maxval);
-        if (alpha10 != 0)
-          buf[ptr + i] = blend(buf[ptr + i], color, alpha10);
-      }
-      ptr += width;
-    }
-  }
-
-  private static int blendARGB(int c1, int c2, final int alpha10) {
-    int r, g, b;
-
-    b = c1 & 0xff;
-    b += (alpha10 * ((c2 & 0xff) - b)) >>> 10;
-    b &= 0xff;
-    c1 >>>= 8;
-    c2 >>>= 8;
-
-    g = c1 & 0xff;
-    g += (alpha10 * ((c2 & 0xff) - g)) >>> 10;
-    g &= 0xff;
-    c1 >>>= 8;
-    c2 >>>= 8;
-
-    r = c1 & 0xff;
-    r += (alpha10 * ((c2 & 0xff) - r)) >>> 10;
-    r &= 0xff;
-
-    return 0xff000000 | (r << 16) | (g << 8) | b;
-  }
-  
-  private static int blend(int c1, int c2, final int alpha10) {
-           int r, g, b;
-
-           b = c1 & 0xff;
-           b += (alpha10 * ((c2 & 0xff) - b)) >>> 10;
-           b &= 0xff;
-           c1 >>>= 8;
-           c2 >>>= 8;
-
-           g = c1 & 0xff;
-           g += (alpha10 * ((c2 & 0xff) - g)) >>> 10;
-           g &= 0xff;
-           c1 >>>= 8;
-           c2 >>>= 8;
-
-           r = c1 & 0xff;
-           r += (alpha10 * ((c2 & 0xff) - r)) >>> 10;
-           r &= 0xff;
-
-           return (r << 16) | (g << 8) | b;
-         }
-
-}
-//BenchMark: dvidump: 535 samples in 19.174 sec. 27.902 samples/sec.  35.839 msec./sample.