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