성능 문제로 인해 Java에서 내 안드로이드 OpenGL 코드를 C로 전송해야했습니다. OpenGL 코드를 모두 전송했다고 생각하지만 지금은 내 섹션의 많은 오류가 있습니다. 비트 맵을 텍스처로 화면에 그려주는 코드.Android NDK에서 OpenGL ES 드로잉 문제
에뮬레이터에서 프로젝트를 실행할 때 현재 코드가 아무 것도 표시하지 않고 천천히 모든 메모리를 차지하고 다른 응용 프로그램을 강제 종료하기 때문에 메모리 누수가있는 것으로 보입니다. 헤더 파일에서
:는 C 파일에서
extern unsigned char colors[1024*512*3]; // 3 bytes per pixel
: 어떤 도움을 크게 감상 할 수
void appRender(int width, int height, unsigned char colors)
{
unsigned int textureID;
float vertices[] =
{
0.0f, 0.0f,
512.0f, 0.0f,
0.0f, 1024.0f,
512.0f, 1024.0f
};
float texture[] =
{
0.0f, 0.0f,
1.0f, 0.0f,
0.0f, 1.0f,
1.0f, 1.0f
};
unsigned char indices[] =
{
0, 1, 3,
0, 3, 2
};
UpdateView();
//onDraw
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glOrthof(0.0f, 320.0f, 430.0f, 0.0f, 1.0f, -1.0f);
//texture stuff
glGenTextures(1,&textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//Different possible texture parameters, e.g
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 512, 1024, 0, GL_RGB ,GL_UNSIGNED_BYTE, colors);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FLOAT, 0, texture);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, indices);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
여기
는이 부분을 제어하는 코드입니다.
할 수 그릴 때 주셔서 감사합니다 예! – torger
@ 그 코드는 실제로 어떤 것도 표시하지 않습니다. 어떤 식 으로든 손상되었습니다. 나는 그것을 고정시키는 방법을 잊어 버린다. "thelements"에 대한 구글 코드 페이지를 살펴볼 수있다. 우리는 꽤 간단한 드로잉을 그곳에서한다. – RyanCheu
나는 그것을 작동하게했다 haha - 나도 그것을했다 어떻게하지 않는다 :) - 말해야한다 - 그 하얀 정방형을 처음 보는 것보다 기분이 없다 – torger