Java 类android.renderscript.Mesh 实例源码
项目:Curve3d
文件:SnowRS.java
@Override
public ScriptC createScript() {
ProgramFragmentFixedFunction.Builder pfb = new ProgramFragmentFixedFunction.Builder(
getRS());
pfb.setVaryingColor(true);
getRS().bindProgramFragment(pfb.create());
ScriptField_Snow snow = new ScriptField_Snow(mRS, SNOW_FLAKES);
Mesh.AllocationBuilder smb = new Mesh.AllocationBuilder(mRS);
smb.addVertexAllocation(snow.getAllocation());
smb.addIndexSetType(Mesh.Primitive.POINT);
Mesh sm = smb.create();
mScript = new ScriptC_snow(mRS, getResources(), R.raw.snow);
mScript.set_snowMesh(sm);
mScript.bind_snow(snow);
mScript.invoke_initSnow();
return mScript;
}
项目:sophia
文件:CarouselController.java
/**
* Loads geometry from a resource id.
*
* @param resId
* @return the loaded mesh or null if it cannot be loaded
*/
public Mesh loadGeometry(int resId) {
if (mRenderScript != null) {
return mRenderScript.loadGeometry(resId);
}
return null;
}
项目:sophia
文件:CarouselController.java
/**
* Load A3D file from resource. If resId == 0, will clear geometry for this item.
* @param n The card to set the geometry for
* @param resId The resource ID for the geometry for that item
* @see {@link #setDefaultGeometry}
*/
public void setGeometryForItem(int n, int resId) {
if (mRenderScript != null) {
Mesh mesh = mRenderScript.loadGeometry(resId);
mRenderScript.setGeometry(n, mesh);
}
}
项目:sophia
文件:CarouselViewHelper.java
@Override
public void handleMessage(Message msg) {
int id = msg.arg1;
if (id >= mCarouselView.getCardCount()) {
Log.e(TAG, "Index out of range for set, card:" + id);
return;
}
switch (msg.what) {
case SET_TEXTURE_N:
mCarouselView.setTextureForItem(id, (Bitmap) msg.obj);
break;
case SET_DETAIL_TEXTURE_N:
DetailTextureParameters params = getDetailTextureParameters(id);
float x = params != null ? params.textureOffsetX : 0.0f;
float y = params != null ? params.textureOffsetY : 0.0f;
float lx = params != null ? params.lineOffsetX : 0.0f;
float ly = params != null ? params.lineOffsetY : 0.0f;
mCarouselView.setDetailTextureForItem(id, x, y, lx, ly, (Bitmap) msg.obj);
break;
case SET_GEOMETRY_N:
mCarouselView.setGeometryForItem(id, (Mesh) msg.obj);
break;
case SET_MATRIX_N:
mCarouselView.setMatrixForItem(id, (float[]) msg.obj);
break;
}
}
项目:intellij-ce-playground
文件:BallsRS.java
public void init(RenderScriptGL rs, Resources res, int width, int height) {
mRS = rs;
mRes = res;
ProgramFragmentFixedFunction.Builder pfb = new ProgramFragmentFixedFunction.Builder(rs);
pfb.setPointSpriteTexCoordinateReplacement(true);
pfb.setTexture(ProgramFragmentFixedFunction.Builder.EnvMode.MODULATE,
ProgramFragmentFixedFunction.Builder.Format.RGBA, 0);
pfb.setVaryingColor(true);
mPFPoints = pfb.create();
pfb = new ProgramFragmentFixedFunction.Builder(rs);
pfb.setVaryingColor(true);
mPFLines = pfb.create();
android.util.Log.e("rs", "Load texture");
mPFPoints.bindTexture(loadTexture(R.drawable.flares), 0);
mPoints = new ScriptField_Point(mRS, PART_COUNT, Allocation.USAGE_SCRIPT);
Mesh.AllocationBuilder smb = new Mesh.AllocationBuilder(mRS);
smb.addVertexAllocation(mPoints.getAllocation());
smb.addIndexSetType(Mesh.Primitive.POINT);
Mesh smP = smb.create();
mPhysicsScript = new ScriptC_ball_physics(mRS, mRes, R.raw.ball_physics);
mScript = new ScriptC_balls(mRS, mRes, R.raw.balls);
mScript.set_partMesh(smP);
mScript.set_physics_script(mPhysicsScript);
mScript.bind_point(mPoints);
mScript.bind_balls1(new ScriptField_Ball(mRS, PART_COUNT, Allocation.USAGE_SCRIPT));
mScript.bind_balls2(new ScriptField_Ball(mRS, PART_COUNT, Allocation.USAGE_SCRIPT));
mScript.set_gPFLines(mPFLines);
mScript.set_gPFPoints(mPFPoints);
createProgramVertex();
mRS.bindProgramStore(BLEND_ADD_DEPTH_NONE(mRS));
mPhysicsScript.set_gMinPos(new Float2(5, 5));
mPhysicsScript.set_gMaxPos(new Float2(width - 5, height - 5));
mScript.invoke_initParts(width, height);
mRS.bindRootScript(mScript);
}
项目:sophia
文件:CarouselController.java
/**
* This geometry will be shown when no geometry has been loaded for a given slot. If not set,
* a quad will be drawn in its place. It is shared for all cards. If something other than
* simple planar geometry is used, consider enabling depth test with
* {@link CarouselController#setForceBlendCardsWithZ(boolean)}
*
* @param mesh
*/
public void setDefaultGeometry(int resId) {
mDefaultGeometry = resId;
if (mRenderScript != null) {
Mesh mesh = mRenderScript.loadGeometry(resId);
mRenderScript.setDefaultGeometry(mesh);
}
}
项目:sophia
文件:CarouselController.java
/**
* This is an intermediate version of the object to show while geometry is loading. If not set,
* a quad will be drawn in its place. It is shared for all cards. If something other than
* simple planar geometry is used, consider enabling depth test with
* {@link CarouselView#setForceBlendCardsWithZ(boolean)}
*
* @param resId
*/
public void setLoadingGeometry(int resId) {
mLoadingGeometry = resId;
if (mRenderScript != null) {
Mesh mesh = mRenderScript.loadGeometry(resId);
mRenderScript.setLoadingGeometry(mesh);
}
}
项目:sophia
文件:CarouselView.java
/**
* Loads geometry from a resource id.
*
* @param resId
* @return the loaded mesh or null if it cannot be loaded
*/
public Mesh loadGeometry(int resId) {
return mController.loadGeometry(resId);
}
项目:sophia
文件:CarouselView.java
/**
* Set the geometry for a given item.
* @param n
* @param mesh
*/
public void setGeometryForItem(int n, Mesh mesh) {
mController.setGeometryForItem(n, mesh);
}
项目:sophia
文件:CarouselController.java
/**
* Set the geometry to show for a given slot.
* @param n The card to set the geometry for
* @param mesh The geometry for that item
* @see {@link #setDefaultGeometry}
*/
public void setGeometryForItem(int n, Mesh mesh) {
if (mRenderScript != null) {
mRenderScript.setGeometry(n, mesh);
}
}
项目:sophia
文件:CarouselViewHelper.java
/**
* Implement this method if you want to load geometry for the given card. Most subclasses
* will implement this. Note: this will generally <b>not</b> be called in the UI thread,
* so proper locking should be ensured.
*
* @param id
* @return
*/
public Mesh getGeometry(int id) {
return null;
}