동적 인 float 세트 (즉, 길이를 미리 알지 못함)에서 FloatBuffer를 만들어야합니다. 내가 이것을 한 유일한 방법은 오히려 미숙하다 (아래). 내가 뭔가를 놓치고 있다고 가정하고 청소기/간단한 방법이 있어야합니다.FloatBuffer를 동적으로 만드는 방법
내 솔루션 : OpenGL을 따라서 내가 그들 주위를 계속해야 명령에 대한 내 버퍼를 사용하고
Vector<Float> temp = new Vector<Float>();
//add stuff to temp
ByteBuffer bb = ByteBuffer.allocateDirect(work.size() * 4/*sizeof(float)*/);
bb.order(ByteOrder.nativeOrder());
FloatBuffer floatBuf = bb.asFloatBuffer();
for(Float f : work)
floatBuf.put(f);
floatBuf.position(0);
(즉, 결과 FloatBuffer 그냥 임시 공간 없음).
나는이 질문을 개정했다. FloatBuffer를 유지해야하므로 이상적으로 (너무 많아서) 너무 커서는 안되며 너무 많이 재사용하지 않을 것입니다. –
최종 목적은 무엇입니까? 'Vector' 대신'TFloatArrayList'를 사용할 수 있습니다. http://trove4j.sourceforge.net/javadocs/gnu/trove/list/array/TFloatArrayList.html –
OpenGL API에는 FloatBuffer (또는 다른 버퍼 유형)가 필요합니다. 함수 매개 변수에 대해. 즉, API에 제공합니다. –