diff --git a/libs/rs/java/Film/src/com/android/film/FilmView.java b/libs/rs/java/Film/src/com/android/film/FilmView.java index 1c5b2bc1f8c37..e40784c066a78 100644 --- a/libs/rs/java/Film/src/com/android/film/FilmView.java +++ b/libs/rs/java/Film/src/com/android/film/FilmView.java @@ -42,19 +42,29 @@ public class FilmView extends RSSurfaceView { public FilmView(Context context) { super(context); - //setFocusable(true); } private RenderScript mRS; private FilmRS mRender; + public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { super.surfaceChanged(holder, format, w, h); + if (mRS == null) { + mRS = createRenderScript(false); + mRS.contextSetSurface(w, h, holder.getSurface()); + mRender = new FilmRS(); + mRender.init(mRS, getResources(), w, h); + } + } - mRS = createRenderScript(true); - mRender = new FilmRS(); - mRender.init(mRS, getResources(), w, h); + @Override + protected void onDetachedFromWindow() { + if(mRS != null) { + mRS = null; + destroyRenderScript(); + } } @Override