1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 /** 18 * @author Igor V. Stolyarov 19 * @version $Revision$ 20 * Created on 23.11.2005 21 * 22 */ 23 24 package java.awt.image; 25 26 import java.awt.Image; 27 import java.awt.image.DataBuffer; 28 import java.awt.image.DataBufferByte; 29 import java.awt.image.DataBufferDouble; 30 import java.awt.image.DataBufferFloat; 31 import java.awt.image.DataBufferInt; 32 import java.awt.image.DataBufferShort; 33 import java.awt.image.DataBufferUShort; 34 35 import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; 36 import org.apache.harmony.awt.gl.GLVolatileImage; 37 import org.apache.harmony.awt.gl.Surface; 38 import org.apache.harmony.awt.gl.image.DataBufferListener; 39 import org.apache.harmony.awt.internal.nls.Messages; 40 41 /** 42 * This class not part of public API. It useful for receiving package private 43 * data from other packages. 44 * 45 * @since Android 1.0 46 */ 47 class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { 48 init()49 static void init() { 50 inst = new AwtImageBackdoorAccessorImpl(); 51 } 52 53 @Override getImageSurface(Image image)54 public Surface getImageSurface(Image image) { 55 if (image instanceof BufferedImage) { 56 return ((BufferedImage)image).getImageSurface(); 57 } else if (image instanceof GLVolatileImage) { 58 return ((GLVolatileImage)image).getImageSurface(); 59 } 60 return null; 61 } 62 63 @Override isGrayPallete(IndexColorModel icm)64 public boolean isGrayPallete(IndexColorModel icm) { 65 return icm.isGrayPallete(); 66 } 67 68 @Override getData(DataBuffer db)69 public Object getData(DataBuffer db) { 70 if (db instanceof DataBufferByte) { 71 return ((DataBufferByte)db).getData(); 72 } else if (db instanceof DataBufferUShort) { 73 return ((DataBufferUShort)db).getData(); 74 } else if (db instanceof DataBufferShort) { 75 return ((DataBufferShort)db).getData(); 76 } else if (db instanceof DataBufferInt) { 77 return ((DataBufferInt)db).getData(); 78 } else if (db instanceof DataBufferFloat) { 79 return ((DataBufferFloat)db).getData(); 80 } else if (db instanceof DataBufferDouble) { 81 return ((DataBufferDouble)db).getData(); 82 } else { 83 // awt.235=Wrong Data Buffer type : {0} 84 throw new IllegalArgumentException(Messages.getString("awt.235", //$NON-NLS-1$ 85 db.getClass())); 86 } 87 } 88 89 @Override getDataInt(DataBuffer db)90 public int[] getDataInt(DataBuffer db) { 91 if (db instanceof DataBufferInt) { 92 return ((DataBufferInt)db).getData(); 93 } 94 return null; 95 } 96 97 @Override getDataByte(DataBuffer db)98 public byte[] getDataByte(DataBuffer db) { 99 if (db instanceof DataBufferByte) { 100 return ((DataBufferByte)db).getData(); 101 } 102 return null; 103 } 104 105 @Override getDataShort(DataBuffer db)106 public short[] getDataShort(DataBuffer db) { 107 if (db instanceof DataBufferShort) { 108 return ((DataBufferShort)db).getData(); 109 } 110 return null; 111 } 112 113 @Override getDataUShort(DataBuffer db)114 public short[] getDataUShort(DataBuffer db) { 115 if (db instanceof DataBufferUShort) { 116 return ((DataBufferUShort)db).getData(); 117 } 118 return null; 119 } 120 121 @Override getDataDouble(DataBuffer db)122 public double[] getDataDouble(DataBuffer db) { 123 if (db instanceof DataBufferDouble) { 124 return ((DataBufferDouble)db).getData(); 125 } 126 return null; 127 } 128 129 @Override getDataFloat(DataBuffer db)130 public float[] getDataFloat(DataBuffer db) { 131 if (db instanceof DataBufferFloat) { 132 return ((DataBufferFloat)db).getData(); 133 } 134 return null; 135 } 136 137 @Override addDataBufferListener(DataBuffer db, DataBufferListener listener)138 public void addDataBufferListener(DataBuffer db, DataBufferListener listener) { 139 db.addDataBufferListener(listener); 140 } 141 142 @Override removeDataBufferListener(DataBuffer db)143 public void removeDataBufferListener(DataBuffer db) { 144 db.removeDataBufferListener(); 145 } 146 147 @Override validate(DataBuffer db)148 public void validate(DataBuffer db) { 149 db.validate(); 150 } 151 152 @Override releaseData(DataBuffer db)153 public void releaseData(DataBuffer db) { 154 db.releaseData(); 155 } 156 } 157