154a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn/*
254a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * Copyright (C) 2010 The Android Open Source Project
354a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn *
454a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
554a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * you may not use this file except in compliance with the License.
654a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * You may obtain a copy of the License at
754a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn *
854a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
954a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn *
1054a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * Unless required by applicable law or agreed to in writing, software
1154a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
1254a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1354a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * See the License for the specific language governing permissions and
1454a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn * limitations under the License.
1554a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn */
1654a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
1754a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn#ifndef _ANDROID_VIEW_SURFACE_H
1854a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn#define _ANDROID_VIEW_SURFACE_H
1954a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
2054a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn#include <android/native_window.h>
2154a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
2254a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn#include "jni.h"
2354a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
2454a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackbornnamespace android {
2554a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
264e8a5c922c287ec97fec847194e930f8598a1941tedboclass Surface;
27cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brownclass ISurfaceTexture;
284e8a5c922c287ec97fec847194e930f8598a1941tedbo
2964a55af0ac700baecb0877235eb42caac59a3560Jeff Brown/* Gets the underlying ANativeWindow for a Surface. */
3064a55af0ac700baecb0877235eb42caac59a3560Jeff Brownextern sp<ANativeWindow> android_view_Surface_getNativeWindow(
3164a55af0ac700baecb0877235eb42caac59a3560Jeff Brown        JNIEnv* env, jobject surfaceObj);
3264a55af0ac700baecb0877235eb42caac59a3560Jeff Brown
3364a55af0ac700baecb0877235eb42caac59a3560Jeff Brown/* Returns true if the object is an instance of Surface. */
3464a55af0ac700baecb0877235eb42caac59a3560Jeff Brownextern bool android_view_Surface_isInstanceOf(JNIEnv* env, jobject obj);
3554a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
364e8a5c922c287ec97fec847194e930f8598a1941tedbo/* Gets the underlying Surface from a Surface Java object. */
3764a55af0ac700baecb0877235eb42caac59a3560Jeff Brownextern sp<Surface> android_view_Surface_getSurface(JNIEnv* env, jobject surfaceObj);
384e8a5c922c287ec97fec847194e930f8598a1941tedbo
39cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brown/* Creates a Surface from an ISurfaceTexture. */
40cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brownextern jobject android_view_Surface_createFromISurfaceTexture(JNIEnv* env,
41cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brown        const sp<ISurfaceTexture>& surfaceTexture);
42cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brown
4354a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn} // namespace android
4454a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn
4554a181b1a2b1517a9479b21fbf7705a688232fafDianne Hackborn#endif // _ANDROID_VIEW_SURFACE_H
46