diff options
Diffstat (limited to 'rs/java/android/renderscript/RSSurfaceView.java')
-rw-r--r-- | rs/java/android/renderscript/RSSurfaceView.java | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/rs/java/android/renderscript/RSSurfaceView.java b/rs/java/android/renderscript/RSSurfaceView.java new file mode 100644 index 0000000..5db72d9 --- /dev/null +++ b/rs/java/android/renderscript/RSSurfaceView.java @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2008-2012 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.util.AttributeSet; +import android.view.SurfaceHolder; +import android.view.SurfaceView; + +/** + * @hide + * @deprecated in API 16 + * The Surface View for a graphics renderscript (RenderScriptGL) to draw on. + * + * <div class="special reference"> + * <h3>Developer Guides</h3> + * <p>For more information about creating an application that uses RenderScript, read the + * <a href="{@docRoot}guide/topics/renderscript/index.html">RenderScript</a> developer guide.</p> + * </div> + */ +public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback { + private SurfaceHolder mSurfaceHolder; + private RenderScriptGL mRS; + + /** + * @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 RSSurfaceView(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 RSSurfaceView(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + //Log.v(RenderScript.LOG_TAG, "RSSurfaceView"); + } + + private void init() { + // Install a SurfaceHolder.Callback so we get notified when the + // underlying surface is created and destroyed + SurfaceHolder holder = getHolder(); + holder.addCallback(this); + } + + /** + * @deprecated in API 16 + * This method is part of the SurfaceHolder.Callback interface, and is + * not normally called or subclassed by clients of RSSurfaceView. + */ + public void surfaceCreated(SurfaceHolder holder) { + mSurfaceHolder = holder; + } + + /** + * @deprecated in API 16 + * This method is part of the SurfaceHolder.Callback interface, and is + * not normally called or subclassed by clients of RSSurfaceView. + */ + public void surfaceDestroyed(SurfaceHolder holder) { + synchronized (this) { + // Surface will be destroyed when we return + if (mRS != null) { + mRS.setSurface(null, 0, 0); + } + } + } + + /** + * @deprecated in API 16 + * This method is part of the SurfaceHolder.Callback interface, and is + * not normally called or subclassed by clients of RSSurfaceView. + */ + public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { + synchronized (this) { + if (mRS != null) { + mRS.setSurface(holder, w, h); + } + } + } + + /** + * @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 + **/ + public RenderScriptGL createRenderScriptGL(RenderScriptGL.SurfaceConfig sc) { + RenderScriptGL rs = new RenderScriptGL(this.getContext(), sc); + setRenderScriptGL(rs); + return rs; + } + + /** + * @deprecated in API 16 + **/ + public void destroyRenderScriptGL() { + synchronized (this) { + mRS.destroy(); + mRS = null; + } + } + + /** + * @deprecated in API 16 + **/ + public void setRenderScriptGL(RenderScriptGL rs) { + mRS = rs; + } + + /** + * @deprecated in API 16 + **/ + public RenderScriptGL getRenderScriptGL() { + return mRS; + } +} |