Merge "Cleanup of the code in view to do creation/destruction in the right places." into honeycomb
This commit is contained in:
committed by
Android (Google) Code Review
commit
f1ff8b2fd6
@ -16,26 +16,8 @@
|
|||||||
|
|
||||||
package com.android.samples;
|
package com.android.samples;
|
||||||
|
|
||||||
import android.renderscript.RSSurfaceView;
|
|
||||||
import android.renderscript.RenderScript;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.res.Configuration;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Looper;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.provider.Settings.System;
|
|
||||||
import android.util.Config;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.ListView;
|
|
||||||
|
|
||||||
import java.lang.Runtime;
|
|
||||||
|
|
||||||
public class RsList extends Activity {
|
public class RsList extends Activity {
|
||||||
|
|
||||||
|
@ -73,17 +73,12 @@ public class RsListRS {
|
|||||||
"Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
|
"Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
|
||||||
};
|
};
|
||||||
|
|
||||||
int mWidth;
|
|
||||||
int mHeight;
|
|
||||||
|
|
||||||
public RsListRS() {
|
public RsListRS() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(RenderScriptGL rs, Resources res, int width, int height) {
|
public void init(RenderScriptGL rs, Resources res) {
|
||||||
mRS = rs;
|
mRS = rs;
|
||||||
mRes = res;
|
mRes = res;
|
||||||
mWidth = width;
|
|
||||||
mHeight = height;
|
|
||||||
initRS();
|
initRS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,79 +15,55 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.samples;
|
package com.android.samples;
|
||||||
|
|
||||||
import java.io.Writer;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.concurrent.Semaphore;
|
|
||||||
|
|
||||||
import android.renderscript.RSSurfaceView;
|
import android.renderscript.RSSurfaceView;
|
||||||
import android.renderscript.RenderScript;
|
|
||||||
import android.renderscript.RenderScriptGL;
|
import android.renderscript.RenderScriptGL;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Surface;
|
|
||||||
import android.view.SurfaceHolder;
|
|
||||||
import android.view.SurfaceView;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
public class RsListView extends RSSurfaceView {
|
public class RsListView extends RSSurfaceView {
|
||||||
|
|
||||||
public RsListView(Context context) {
|
public RsListView(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
//setFocusable(true);
|
ensureRenderScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
private RenderScriptGL mRS;
|
private RenderScriptGL mRS;
|
||||||
private RsListRS mRender;
|
private RsListRS mRender;
|
||||||
|
|
||||||
|
private void ensureRenderScript() {
|
||||||
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
|
|
||||||
super.surfaceChanged(holder, format, w, h);
|
|
||||||
if (mRS == null) {
|
if (mRS == null) {
|
||||||
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
|
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
|
||||||
sc.setDepth(16, 24);
|
|
||||||
mRS = createRenderScriptGL(sc);
|
mRS = createRenderScriptGL(sc);
|
||||||
mRS.setSurface(holder, w, h);
|
|
||||||
mRender = new RsListRS();
|
mRender = new RsListRS();
|
||||||
mRender.init(mRS, getResources(), w, h);
|
mRender.init(mRS, getResources());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onAttachedToWindow() {
|
||||||
|
super.onAttachedToWindow();
|
||||||
|
ensureRenderScript();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDetachedFromWindow() {
|
protected void onDetachedFromWindow() {
|
||||||
|
mRender = null;
|
||||||
if (mRS != null) {
|
if (mRS != null) {
|
||||||
mRS = null;
|
mRS = null;
|
||||||
destroyRenderScriptGL();
|
destroyRenderScriptGL();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event)
|
|
||||||
{
|
|
||||||
// break point at here
|
|
||||||
// this method doesn't work when 'extends View' include 'extends ScrollView'.
|
|
||||||
return super.onKeyDown(keyCode, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onTouchEvent(MotionEvent ev)
|
public boolean onTouchEvent(MotionEvent ev)
|
||||||
{
|
{
|
||||||
boolean ret = false;
|
boolean ret = false;
|
||||||
int act = ev.getAction();
|
int act = ev.getAction();
|
||||||
if (act == ev.ACTION_DOWN) {
|
if (act == MotionEvent.ACTION_DOWN) {
|
||||||
mRender.onActionDown((int)ev.getX(), (int)ev.getY());
|
mRender.onActionDown((int)ev.getX(), (int)ev.getY());
|
||||||
ret = true;
|
ret = true;
|
||||||
} else if (act == ev.ACTION_MOVE) {
|
} else if (act == MotionEvent.ACTION_MOVE) {
|
||||||
mRender.onActionMove((int)ev.getX(), (int)ev.getY());
|
mRender.onActionMove((int)ev.getX(), (int)ev.getY());
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
@ -16,26 +16,8 @@
|
|||||||
|
|
||||||
package com.android.samples;
|
package com.android.samples;
|
||||||
|
|
||||||
import android.renderscript.RSSurfaceView;
|
|
||||||
import android.renderscript.RenderScript;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.res.Configuration;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Looper;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.provider.Settings.System;
|
|
||||||
import android.util.Config;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.ListView;
|
|
||||||
|
|
||||||
import java.lang.Runtime;
|
|
||||||
|
|
||||||
public class RsRenderStates extends Activity {
|
public class RsRenderStates extends Activity {
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
package com.android.samples;
|
package com.android.samples;
|
||||||
|
|
||||||
import java.io.Writer;
|
|
||||||
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
@ -39,11 +37,11 @@ public class RsRenderStatesRS {
|
|||||||
public RsRenderStatesRS() {
|
public RsRenderStatesRS() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(RenderScriptGL rs, Resources res, int width, int height) {
|
public void init(RenderScriptGL rs, Resources res) {
|
||||||
mRS = rs;
|
mRS = rs;
|
||||||
|
mWidth = mRS.getWidth();
|
||||||
|
mHeight = mRS.getHeight();
|
||||||
mRes = res;
|
mRes = res;
|
||||||
mWidth = width;
|
|
||||||
mHeight = height;
|
|
||||||
mOptionsARGB.inScaled = false;
|
mOptionsARGB.inScaled = false;
|
||||||
mOptionsARGB.inPreferredConfig = Bitmap.Config.ARGB_8888;
|
mOptionsARGB.inPreferredConfig = Bitmap.Config.ARGB_8888;
|
||||||
mMode = 0;
|
mMode = 0;
|
||||||
@ -51,6 +49,15 @@ public class RsRenderStatesRS {
|
|||||||
initRS();
|
initRS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void surfaceChanged() {
|
||||||
|
mWidth = mRS.getWidth();
|
||||||
|
mHeight = mRS.getHeight();
|
||||||
|
|
||||||
|
Matrix4f proj = new Matrix4f();
|
||||||
|
proj.loadOrthoWindow(mWidth, mHeight);
|
||||||
|
mPVA.setProjection(proj);
|
||||||
|
}
|
||||||
|
|
||||||
private Resources mRes;
|
private Resources mRes;
|
||||||
private RenderScriptGL mRS;
|
private RenderScriptGL mRS;
|
||||||
|
|
||||||
|
@ -16,54 +16,48 @@
|
|||||||
|
|
||||||
package com.android.samples;
|
package com.android.samples;
|
||||||
|
|
||||||
import java.io.Writer;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.concurrent.Semaphore;
|
|
||||||
|
|
||||||
import android.renderscript.RSSurfaceView;
|
import android.renderscript.RSSurfaceView;
|
||||||
import android.renderscript.RenderScript;
|
|
||||||
import android.renderscript.RenderScriptGL;
|
import android.renderscript.RenderScriptGL;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Surface;
|
|
||||||
import android.view.SurfaceHolder;
|
|
||||||
import android.view.SurfaceView;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
import android.view.SurfaceHolder;
|
||||||
|
|
||||||
public class RsRenderStatesView extends RSSurfaceView {
|
public class RsRenderStatesView extends RSSurfaceView {
|
||||||
|
|
||||||
public RsRenderStatesView(Context context) {
|
public RsRenderStatesView(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
//setFocusable(true);
|
ensureRenderScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
private RenderScriptGL mRS;
|
private RenderScriptGL mRS;
|
||||||
private RsRenderStatesRS mRender;
|
private RsRenderStatesRS mRender;
|
||||||
|
|
||||||
|
private void ensureRenderScript() {
|
||||||
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
|
|
||||||
super.surfaceChanged(holder, format, w, h);
|
|
||||||
if (mRS == null) {
|
if (mRS == null) {
|
||||||
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
|
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
|
||||||
sc.setDepth(16, 24);
|
sc.setDepth(16, 24);
|
||||||
mRS = createRenderScriptGL(sc);
|
mRS = createRenderScriptGL(sc);
|
||||||
mRS.setSurface(holder, w, h);
|
|
||||||
mRender = new RsRenderStatesRS();
|
mRender = new RsRenderStatesRS();
|
||||||
mRender.init(mRS, getResources(), w, h);
|
mRender.init(mRS, getResources());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onAttachedToWindow() {
|
||||||
|
super.onAttachedToWindow();
|
||||||
|
ensureRenderScript();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
|
||||||
|
super.surfaceChanged(holder, format, w, h);
|
||||||
|
mRender.surfaceChanged();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDetachedFromWindow() {
|
protected void onDetachedFromWindow() {
|
||||||
|
mRender = null;
|
||||||
if (mRS != null) {
|
if (mRS != null) {
|
||||||
mRS = null;
|
mRS = null;
|
||||||
destroyRenderScriptGL();
|
destroyRenderScriptGL();
|
||||||
@ -71,25 +65,13 @@ public class RsRenderStatesView extends RSSurfaceView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event)
|
public boolean onTouchEvent(MotionEvent ev) {
|
||||||
{
|
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
|
||||||
// break point at here
|
|
||||||
// this method doesn't work when 'extends View' include 'extends ScrollView'.
|
|
||||||
return super.onKeyDown(keyCode, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onTouchEvent(MotionEvent ev)
|
|
||||||
{
|
|
||||||
boolean ret = false;
|
|
||||||
int act = ev.getAction();
|
|
||||||
if (act == ev.ACTION_DOWN) {
|
|
||||||
mRender.onActionDown((int)ev.getX(), (int)ev.getY());
|
mRender.onActionDown((int)ev.getX(), (int)ev.getY());
|
||||||
ret = true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,6 @@ int textPos = 0;
|
|||||||
int root(int launchID) {
|
int root(int launchID) {
|
||||||
|
|
||||||
rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
rsgClearDepth(1.0f);
|
|
||||||
|
|
||||||
textPos -= (int)gDY*2;
|
textPos -= (int)gDY*2;
|
||||||
gDY *= 0.95;
|
gDY *= 0.95;
|
||||||
|
Reference in New Issue
Block a user