|  | /* | 
|  | * Copyright (C) 2011 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  |  | 
|  | package android.renderscript; | 
|  |  | 
|  | import android.content.Context; | 
|  | import android.graphics.SurfaceTexture; | 
|  | import android.util.AttributeSet; | 
|  | import android.view.TextureView; | 
|  |  | 
|  | /** | 
|  | * @hide | 
|  | * @deprecated in API 16 | 
|  | * The Texture View for a graphics renderscript (RenderScriptGL) | 
|  | * to draw on. | 
|  | * | 
|  | */ | 
|  | @Deprecated | 
|  | public class RSTextureView extends TextureView implements TextureView.SurfaceTextureListener { | 
|  | private RenderScriptGL mRS; | 
|  | private SurfaceTexture mSurfaceTexture; | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Standard View constructor. In order to render something, you | 
|  | * must call {@link android.opengl.GLSurfaceView#setRenderer} to | 
|  | * register a renderer. | 
|  | */ | 
|  | public RSTextureView(Context context) { | 
|  | super(context); | 
|  | init(); | 
|  | //Log.v(RenderScript.LOG_TAG, "RSSurfaceView"); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Standard View constructor. In order to render something, you | 
|  | * must call {@link android.opengl.GLSurfaceView#setRenderer} to | 
|  | * register a renderer. | 
|  | */ | 
|  | public RSTextureView(Context context, AttributeSet attrs) { | 
|  | super(context, attrs); | 
|  | init(); | 
|  | //Log.v(RenderScript.LOG_TAG, "RSSurfaceView"); | 
|  | } | 
|  |  | 
|  | private void init() { | 
|  | setSurfaceTextureListener(this); | 
|  | //android.util.Log.e("rs", "getSurfaceTextureListerner " + getSurfaceTextureListener()); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | */ | 
|  | @Override | 
|  | public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { | 
|  | //Log.e(RenderScript.LOG_TAG, "onSurfaceTextureAvailable"); | 
|  | mSurfaceTexture = surface; | 
|  |  | 
|  | if (mRS != null) { | 
|  | mRS.setSurfaceTexture(mSurfaceTexture, width, height); | 
|  | } | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | */ | 
|  | @Override | 
|  | public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { | 
|  | //Log.e(RenderScript.LOG_TAG, "onSurfaceTextureSizeChanged"); | 
|  | mSurfaceTexture = surface; | 
|  |  | 
|  | if (mRS != null) { | 
|  | mRS.setSurfaceTexture(mSurfaceTexture, width, height); | 
|  | } | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | */ | 
|  | @Override | 
|  | public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { | 
|  | //Log.e(RenderScript.LOG_TAG, "onSurfaceTextureDestroyed"); | 
|  | mSurfaceTexture = surface; | 
|  |  | 
|  | if (mRS != null) { | 
|  | mRS.setSurfaceTexture(null, 0, 0); | 
|  | } | 
|  |  | 
|  | return true; | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | */ | 
|  | @Override | 
|  | public void onSurfaceTextureUpdated(SurfaceTexture surface) { | 
|  | //Log.e(RenderScript.LOG_TAG, "onSurfaceTextureUpdated"); | 
|  | mSurfaceTexture = surface; | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Inform the view that the activity is paused. The owner of this view must | 
|  | * call this method when the activity is paused. Calling this method will | 
|  | * pause the rendering thread. | 
|  | * Must not be called before a renderer has been set. | 
|  | */ | 
|  | public void pause() { | 
|  | if(mRS != null) { | 
|  | mRS.pause(); | 
|  | } | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Inform the view that the activity is resumed. The owner of this view must | 
|  | * call this method when the activity is resumed. Calling this method will | 
|  | * recreate the OpenGL display and resume the rendering | 
|  | * thread. | 
|  | * Must not be called before a renderer has been set. | 
|  | */ | 
|  | public void resume() { | 
|  | if(mRS != null) { | 
|  | mRS.resume(); | 
|  | } | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Create a new RenderScriptGL object and attach it to the | 
|  | * TextureView if present. | 
|  | * | 
|  | * | 
|  | * @param sc The RS surface config to create. | 
|  | * | 
|  | * @return RenderScriptGL The new object created. | 
|  | */ | 
|  | public RenderScriptGL createRenderScriptGL(RenderScriptGL.SurfaceConfig sc) { | 
|  | RenderScriptGL rs = new RenderScriptGL(this.getContext(), sc); | 
|  | setRenderScriptGL(rs); | 
|  | if (mSurfaceTexture != null) { | 
|  | mRS.setSurfaceTexture(mSurfaceTexture, getWidth(), getHeight()); | 
|  | } | 
|  | return rs; | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Destroy the RenderScriptGL object associated with this | 
|  | * TextureView. | 
|  | */ | 
|  | public void destroyRenderScriptGL() { | 
|  | mRS.destroy(); | 
|  | mRS = null; | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Set a new RenderScriptGL object.  This also will attach the | 
|  | * new object to the TextureView if present. | 
|  | * | 
|  | * @param rs The new RS object. | 
|  | */ | 
|  | public void setRenderScriptGL(RenderScriptGL rs) { | 
|  | mRS = rs; | 
|  | if (mSurfaceTexture != null) { | 
|  | mRS.setSurfaceTexture(mSurfaceTexture, getWidth(), getHeight()); | 
|  | } | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @deprecated in API 16 | 
|  | * Returns the previously set RenderScriptGL object. | 
|  | * | 
|  | * @return RenderScriptGL | 
|  | */ | 
|  | public RenderScriptGL getRenderScriptGL() { | 
|  | return mRS; | 
|  | } | 
|  | } | 
|  |  |