PowerVR SGX 하드웨어를 사용하여 ARM 장치의 텍스처에 오프 스크린 렌더링을 구현해야합니다.사용자 공간 메모리에 대한 OpenGL ES 렌더링
모든 것이 완료되었습니다 (픽셀 버퍼 및 OpenGL ES 2.0 API가 사용되었습니다). 해결되지 않은 유일한 문제는 매우 느립니다 glReadPixels
기능입니다.
저는 OpenGL ES의 전문가가 아니므로 커뮤니티에 묻습니다. 텍스처를 사용자 공간 메모리에 직접 렌더링 할 수 있습니까? 또는 텍스처의 메모리 영역에 대한 하드웨어 주소를 얻는 방법이있을 수 있습니까? 일부 다른 기술 (EGL 확장)?
PowerVR 하드웨어 용으로 만 작동하는 보편적 인 솔루션이 필요하지 않습니다.
업데이트 : '저속 기능 glReadPixels
'에 대한 추가 정보
glReadPixels(0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, &arr)
GL_BGRA
은 glReadPixels 표준되지는 PoverVR 확장이다),
memcpy(&arr, &arr2, WIDTH * HEIGHT * 4)
glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, &arr)
210 밀리한다 : CPU의 메모리에 512 × 512 RGB 텍스처 데이터를 복사텍스처가 커질 경우 차이가 커집니다.
클라이언트 공간 메모리에서 텍스처가 필요한 것이 무엇인지 물어볼 수 있습니까? 어쩌면 GPU 메모리를 떠나기 위해 텍스처가 필요하지 않을 수도 있습니다. 글쎄, 텍스쳐링을 위해 텍스처를 사용하고자 할 때 [FBOs] (http://www.songho.ca/opengl/gl_fbo.html)를 사용하여 GPU 텍스처로 직접 렌더링 할 수 있습니다. 너의 모든 문제는 쓸모 없어. –
아니, 정말 필요해. 렌더링 된 이미지는 장치 작업의 결과로 네트워크를 통해 전송되어야합니다. – qehgt