[완료] mmap()으로 할당받은 영역(fb)에 memcpy
      글쓴이: vyoz / 작성시간: 금, 2008/05/30 - 11:05오전    
  
  안녕하세요, 지금 mmap()으로 할당한 fb영역을 검정색으로 칠하는 코드를 연습중입니다.
       unsigned char* back_buf = (unsigned char*)m_pFrameBufferMappedAddr;
	memset(back_buf, 0xFF, m_nXResolution * m_nYResolution * m_nBitsPerPixel/8); //<<-- 이렇게 하면 화면이 하얗게 칠해진다. (의도한바)
	/**************************************************************
        unsigned char ulBlack = 0xFF;
 
        int i,j;
 
        for( i=0; i<m_nXResolution; i++)
        {
 
                for( j=0; j<m_nYResolution; j++);
                {
                        memcpy((unsigned char*)(back_buf+i+(j*m_nBitsPerPixel/8)), &ulBlack, sizeof(unsigned char));
                }
        }
 
	//**************************************************************/
//<<- 위 주석처리된 부분은 memset()과 같은 역할을 해야 된다고 생각하는데 그렇지 않다. 화면에 변화가 없다.위 코드처럼 memset()으로는 화면이 의도한대로 흰색으로 채워집니다. 밑에 for loop으로 구현한 memcpy()도 같은 역할을 해야 맞다고 보는데 그렇지 않네요. 그냥 아무것도 없습니다.
도무지 감이 안오네요.  조언 부탁드립니다.
Forums: 


0xff로 칠한 곳을
0xff로 칠한 곳을 또다시 0xff로 칠하니 화면이 변화가 없을수밖에요...
그리고 (틀린 건 아니지만) char pointer로 그냥 *(back_buf+......) = ulBlack; 하면 될 걸 memcpy를 하면 훨씬 비효율적이죠.
하하...
계산을 잘못하고 있었습니다. -_-;;
jick 님 답변 감사합니다.
댓글 달기