| /* | 
 |  * 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; | 
 |     } | 
 | } | 
 |  |