1c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein/* 2c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * Copyright (C) 2006 The Android Open Source Project 3c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * 4c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * Licensed under the Apache License, Version 2.0 (the "License"); 5c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * you may not use this file except in compliance with the License. 6c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * You may obtain a copy of the License at 7c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * 8c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * http://www.apache.org/licenses/LICENSE-2.0 9c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * 10c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * Unless required by applicable law or agreed to in writing, software 11c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * distributed under the License is distributed on an "AS IS" BASIS, 12c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * See the License for the specific language governing permissions and 14c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein * limitations under the License. 15c086ca1fa7cebc3e9a51abd4be4688346225c2e4Dan Bornstein */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.google.android.gles_jni; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.*; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class EGLSurfaceImpl extends EGLSurface { 22863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat long mEGLSurface; 23863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat private long mNativePixelRef; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLSurfaceImpl() { 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mEGLSurface = 0; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNativePixelRef = 0; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat public EGLSurfaceImpl(long surface) { 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mEGLSurface = surface; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNativePixelRef = 0; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 329b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy 339b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy @Override 349b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy public boolean equals(Object o) { 359b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy if (this == o) return true; 369b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy if (o == null || getClass() != o.getClass()) return false; 379b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy 389b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy EGLSurfaceImpl that = (EGLSurfaceImpl) o; 399b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy 409b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy return mEGLSurface == that.mEGLSurface; 419b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy 429b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy } 439b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy 449b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy @Override 459b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy public int hashCode() { 46863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat /* 47863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat * Based on the algorithm suggested in 48863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat * http://developer.android.com/reference/java/lang/Object.html 49863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat */ 50863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat int result = 17; 51863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat result = 31 * result + (int) (mEGLSurface ^ (mEGLSurface >>> 32)); 52863f98bbb3e234e18c62ce2678ae970b75995f69Ashok Bhat return result; 539b7146db6d9c0586b98b062fbcdb3fac6cc54d19Romain Guy } 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 55