블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

최근에 올라온 글

NDK에서 화면을 더블 버퍼링하려면?

How to Render Image Buffer in Android NDK Native Code

ANativeWindow* window = ANativeWindow_fromSurface(env, javaSurface);

ANativeWindow_Buffer buffer;
if (ANativeWindow_lock(window, &buffer, NULL) == 0) {
  memcpy(buffer.bits, pixels,  w * h * 2);
  ANativeWindow_unlockAndPost(window);
}

ANativeWindow_release(window);

일반적으로 위의 방법을 사용한다.
그런데, 문제가 좀 있다.
본인이 확인한 화면은 2장이 아니라, 4장이었다.
4장을 내 마음대로 골라서, swap하질 못한다.
무조건 순차적으로 강제 버퍼링(swap)되어 진다.
2장만 있으면, swap할 수 있는데, 4장이니, 메모리 낭비가 발생한다.

또한 swap기능을 사용 하기위해서는
1) 화면 전체를 새로 그리던가,
2) 별도의 화면 메모리를 할당하여, 그리고, 필요한 부분만 업데이트 해주면 되나,
   문제가 많다.

1), 2)번 모두 처리비용이 비싸다. 비효율적이라는 말이다.
왜 일반적인 sawp기능이 왜 없는지 의문스럽다.


Graphics architecture


Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함