마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

NDK OpenGL ES 2.0 버퍼에 관한 질문 입니다.

0 추천

안녕하세요.

NDK에서 OpenGL ES 2.0을 이용하여 비디오 플레이어를 개발 하고 있습니다.

ffmpeg을 이용하여 영상을 만들고 OpenGL을 이용하여 Texture에 올린다음, 

NDK에서 해당하는 Texture 아이디를 받아 화면에 뿌려주려고 하고 있습니다.

기존에 JAVA단에서 GLSurfaceVIew를 이용하여 작업을 하였고, 이를 NDK로 내리는 작업 중 입니다.

자바 소스에 보면 정점 버퍼와 인덱스 버퍼를 생성하는 부분이 있습니다.

ByteBuffer bb = ByteBuffer.allocateDirect(mVertexData.length * 4);
bb.order(ByteOrder.nativeOrder());
vertexBuffer = bb.asFloatBuffer();
vertexBuffer.put(mVertexData);
vertexBuffer.position(0);

// initialize byte buffer for the draw list
ByteBuffer dlb = ByteBuffer.allocateDirect(drawOrder.length * 2);
dlb.order(ByteOrder.nativeOrder());
drawListBuffer = dlb.asShortBuffer();
drawListBuffer.put(drawOrder);
drawListBuffer.position(0);

위 부분을 NDK 쪽에도 적용을 시켜야 하는데 어떤 방법으로 적용을 시켜야 하는지 모르겠습니다.

제가 찾아본 봐로는 

glGenBuffers(1, &vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, 80, vertices, GL_STATIC_DRAW);

glGenBuffers(1, &indexBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 12, indices, GL_STATIC_DRAW);

이런 식으로 버퍼를 할당하여 vertices 값과 indeces 값을 넣어준다는데, 화면을 보면 잘 되지 않고 있습니다.

Java에서 버퍼를 생성하는 소스와 대응되는 NDK 쪽 소스는 어떻게 구성 되는지 궁금합니다.

감사합니다.

작전동 (5,890 포인트) 님이 2013년 3월 20일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...