19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this work for additional information regarding copyright ownership. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (the "License"); you may not use this file except in compliance with 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @author Igor V. Stolyarov 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @version $Revision$ 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Created on 23.11.2005 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage java.awt.image; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.Image; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBuffer; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBufferByte; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBufferDouble; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBufferFloat; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBufferInt; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBufferShort; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.DataBufferUShort; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.GLVolatileImage; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.Surface; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.image.DataBufferListener; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.internal.nls.Messages; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This class not part of public API. It useful for receiving package private 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * data from other packages. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @since Android 1.0 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static void init() { 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project inst = new AwtImageBackdoorAccessorImpl(); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Surface getImageSurface(Image image) { 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (image instanceof BufferedImage) { 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((BufferedImage)image).getImageSurface(); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (image instanceof GLVolatileImage) { 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((GLVolatileImage)image).getImageSurface(); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isGrayPallete(IndexColorModel icm) { 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return icm.isGrayPallete(); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object getData(DataBuffer db) { 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferByte) { 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferByte)db).getData(); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (db instanceof DataBufferUShort) { 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferUShort)db).getData(); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (db instanceof DataBufferShort) { 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferShort)db).getData(); 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (db instanceof DataBufferInt) { 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferInt)db).getData(); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (db instanceof DataBufferFloat) { 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferFloat)db).getData(); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (db instanceof DataBufferDouble) { 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferDouble)db).getData(); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.235=Wrong Data Buffer type : {0} 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(Messages.getString("awt.235", //$NON-NLS-1$ 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.getClass())); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int[] getDataInt(DataBuffer db) { 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferInt) { 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferInt)db).getData(); 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getDataByte(DataBuffer db) { 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferByte) { 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferByte)db).getData(); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short[] getDataShort(DataBuffer db) { 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferShort) { 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferShort)db).getData(); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short[] getDataUShort(DataBuffer db) { 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferUShort) { 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferUShort)db).getData(); 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public double[] getDataDouble(DataBuffer db) { 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferDouble) { 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferDouble)db).getData(); 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float[] getDataFloat(DataBuffer db) { 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (db instanceof DataBufferFloat) { 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((DataBufferFloat)db).getData(); 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void addDataBufferListener(DataBuffer db, DataBufferListener listener) { 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.addDataBufferListener(listener); 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void removeDataBufferListener(DataBuffer db) { 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.removeDataBufferListener(); 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void validate(DataBuffer db) { 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.validate(); 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void releaseData(DataBuffer db) { 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.releaseData(); 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 157