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 24package java.awt.image; 25 26import java.awt.Image; 27import java.awt.image.DataBuffer; 28import java.awt.image.DataBufferByte; 29import java.awt.image.DataBufferDouble; 30import java.awt.image.DataBufferFloat; 31import java.awt.image.DataBufferInt; 32import java.awt.image.DataBufferShort; 33import java.awt.image.DataBufferUShort; 34 35import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; 36import org.apache.harmony.awt.gl.GLVolatileImage; 37import org.apache.harmony.awt.gl.Surface; 38import org.apache.harmony.awt.gl.image.DataBufferListener; 39import 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 */ 47class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { 48 49 static void init() { 50 inst = new AwtImageBackdoorAccessorImpl(); 51 } 52 53 @Override 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 64 public boolean isGrayPallete(IndexColorModel icm) { 65 return icm.isGrayPallete(); 66 } 67 68 @Override 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 90 public int[] getDataInt(DataBuffer db) { 91 if (db instanceof DataBufferInt) { 92 return ((DataBufferInt)db).getData(); 93 } 94 return null; 95 } 96 97 @Override 98 public byte[] getDataByte(DataBuffer db) { 99 if (db instanceof DataBufferByte) { 100 return ((DataBufferByte)db).getData(); 101 } 102 return null; 103 } 104 105 @Override 106 public short[] getDataShort(DataBuffer db) { 107 if (db instanceof DataBufferShort) { 108 return ((DataBufferShort)db).getData(); 109 } 110 return null; 111 } 112 113 @Override 114 public short[] getDataUShort(DataBuffer db) { 115 if (db instanceof DataBufferUShort) { 116 return ((DataBufferUShort)db).getData(); 117 } 118 return null; 119 } 120 121 @Override 122 public double[] getDataDouble(DataBuffer db) { 123 if (db instanceof DataBufferDouble) { 124 return ((DataBufferDouble)db).getData(); 125 } 126 return null; 127 } 128 129 @Override 130 public float[] getDataFloat(DataBuffer db) { 131 if (db instanceof DataBufferFloat) { 132 return ((DataBufferFloat)db).getData(); 133 } 134 return null; 135 } 136 137 @Override 138 public void addDataBufferListener(DataBuffer db, DataBufferListener listener) { 139 db.addDataBufferListener(listener); 140 } 141 142 @Override 143 public void removeDataBufferListener(DataBuffer db) { 144 db.removeDataBufferListener(); 145 } 146 147 @Override 148 public void validate(DataBuffer db) { 149 db.validate(); 150 } 151 152 @Override 153 public void releaseData(DataBuffer db) { 154 db.releaseData(); 155 } 156} 157