package com.exercise.AndroidRenderScript;
import android.content.Context;
import android.renderscript.Mesh;
import android.renderscript.RSSurfaceView;
import android.renderscript.RenderScriptGL;
import android.renderscript.RenderScriptGL.SurfaceConfig;
public class MyRSSurfaceView extends RSSurfaceView {
private RenderScriptGL renderScriptGL;
private ScriptC_RenderScript myScriptC;
public MyRSSurfaceView(Context context) {
super(context);
// TODO Auto-generated constructor stub
final RenderScriptGL.SurfaceConfig surfaceConfig
= new SurfaceConfig();
renderScriptGL = createRenderScriptGL(surfaceConfig);
myScriptC = new ScriptC_RenderScript(
renderScriptGL, getResources(), R.raw.renderscript);
myScriptC.set_my_rs_mesh(createMesh());
renderScriptGL.bindRootScript(myScriptC);
}
private Mesh createMesh(){
double radius = 100.0;
double angleInDegree, angleInRadian;
final int number_of_section = 18;
double ptX, ptY;
Mesh.TriangleMeshBuilder myMesh
= new Mesh.TriangleMeshBuilder(
renderScriptGL,
2,
Mesh.TriangleMeshBuilder.COLOR);
//index 0
myMesh.addVertex(0, 0);
//index 1
angleInDegree = 0;
angleInRadian = Math.toRadians(angleInDegree);
ptX = radius * Math.cos(angleInRadian);
ptY = radius * Math.sin(angleInRadian);
myMesh.addVertex((float)ptX, (float)ptY);
for(int i=0; i<number_of_section; i++){
angleInDegree += 360/number_of_section;
angleInRadian = Math.toRadians(angleInDegree);
ptX = radius * Math.cos(angleInRadian);
ptY = radius * Math.sin(angleInRadian);
myMesh.addVertex((float)ptX, (float)ptY);
myMesh.addTriangle(0, i+2, i+1);
}
return(myMesh.create(true));
};
}
Download the files.
No comments:
Post a Comment