Beispiel #1
0
  public void init(int dpi, RenderScriptGL rs, Resources res, int width, int height) {
    if (!mInited) {
      mDensityDPI = dpi;

      mRS = rs;
      mRes = res;

      mWidth = width;
      mHeight = height;

      mDotParticles = new ScriptField_Particle(mRS, DOT_COUNT);
      Mesh.AllocationBuilder smb2 = new Mesh.AllocationBuilder(mRS);
      smb2.addVertexAllocation(mDotParticles.getAllocation());
      smb2.addIndexSetType(Mesh.Primitive.POINT);
      mDotMesh = smb2.create();

      mBeamParticles = new ScriptField_Particle(mRS, DOT_COUNT);
      Mesh.AllocationBuilder smb3 = new Mesh.AllocationBuilder(mRS);
      smb3.addVertexAllocation(mBeamParticles.getAllocation());
      smb3.addIndexSetType(Mesh.Primitive.POINT);
      mBeamMesh = smb3.create();

      mScript = new ScriptC_phasebeam(mRS, mRes, R.raw.phasebeam);
      mScript.set_dotMesh(mDotMesh);
      mScript.set_beamMesh(mBeamMesh);
      mScript.bind_dotParticles(mDotParticles);
      mScript.bind_beamParticles(mBeamParticles);

      mPvConsts = new ScriptField_VpConsts(mRS, 1);

      createProgramVertex();
      createProgramRaster();
      createProgramFragmentStore();
      createProgramFragment();
      createBackgroundMesh();
      loadTextures();

      mScript.set_densityDPI(mDensityDPI);

      mRS.bindRootScript(mScript);

      mScript.invoke_positionParticles();
      mInited = true;
    }
  }