private void loadWaveformResources(Context context, GL10 gl) throws IOException { m_waveformTexture = GLHelpers.loadTexture(gl, context, R.drawable.waveform); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT); if (m_waveformVertices == null) { ByteBuffer vertices = GLHelpers.allocateFloatBuffer(WAVEFORM_POINTS * 3); vertices .putFloat(+WAVEFORM_HEAD_WIDTH / 2) .putFloat(0) .putFloat(0) .putFloat(-WAVEFORM_HEAD_WIDTH / 2) .putFloat(0) .putFloat(0) .putFloat(+0.5f) .putFloat(0) .putFloat(WAVEFORM_HEAD_HEIGHT) .putFloat(-0.5f) .putFloat(0) .putFloat(WAVEFORM_HEAD_HEIGHT) .putFloat(+0.5f) .putFloat(0) .putFloat(1 - WAVEFORM_TAIL_HEIGHT) .putFloat(-0.5f) .putFloat(0) .putFloat(1 - WAVEFORM_TAIL_HEIGHT) .putFloat(+WAVEFORM_TAIL_WIDTH / 2) .putFloat(0) .putFloat(1) .putFloat(-WAVEFORM_TAIL_WIDTH / 2) .putFloat(0) .putFloat(1); ByteBuffer texcoords = GLHelpers.allocateFloatBuffer(WAVEFORM_POINTS * 2); { vertices.position(0); for (int i = 0; i != WAVEFORM_POINTS; ++i) { float x = vertices.getFloat(); /*float y=*/ vertices.getFloat(); float z = vertices.getFloat(); texcoords.putFloat(-x + 0.5f); texcoords.putFloat(z); } } m_waveformVertices = GLBufferObject.createVertices(3, GL10.GL_FLOAT, vertices); m_waveformTexcoords = GLBufferObject.createTexcoords(2, GL10.GL_FLOAT, texcoords); } m_waveformVertices.bind(gl); m_waveformTexcoords.bind(gl); }
public void loadResources(Context context, GL10 gl) throws IOException { m_noteMesh = new Mesh(gl, context.getAssets().open("note.mesh")); m_stringTexture = GLHelpers.loadTexture(gl, context, R.drawable.string); m_barTexture = GLHelpers.loadTexture(gl, context, R.drawable.bar); loadWaveformResources(context, gl); }