Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Archives
Today
Total
관리 메뉴

TIL

20210321(일) : cub 진행상황 본문

2021/일일 기록

20210321(일) : cub 진행상황

ililillllllliilli 2021. 3. 22. 14:16

우선 말하면, 진전은 없었습니다.

리눅스 환경에서 작업한 작업물을 MAC환경으로 이식해서 진행하려니까, 미리 컴파일 라이브러리의 구분이 이루어졌음에도, 너무많은 잔 에러들이 생기더라고요..

padding을 고려해주지 않았을 때는.. 화면이 padding때문에 k - n만큼 밀리게 되면서 화면이 깨져보이는 사태가 발생합니다.
mms라이브러리는 픽셀을 정확히 x * y만큼의 픽셀로 구성하지 않고, 특별히 n 픽셀만큼을 더 줍니다.

  1. 리눅스에서는 metal을 사용하는 mms라이브러리를 사용하지 않는데, 리눅스 mlx판에서는 돌아가던게 mms판에서는 화면이 깨지는 상황이 발생했습니다.이유는 다음과 같습니다. 
    mms의 mlx는 bits per pixel이 4byte로 같지 않을 수 있습니다. 따라서,  x * y + n만큼의 픽셀을 할당하게되는것이죠.

    이는 mms의 mlx만의 특성인듯 합니다. opengl mlx버전에서는 화면깨짐현상이 발생하지 않았거든요.
    따라서, 이미지 버퍼를 int *형으로 선언했다면, 이는... padding을 고려해주지 않은 상태로 픽셀에 값을 넣어주게 되어 화면 padding 때문에 k - n 만큼 픽셀이 밀리게 되면서 화면이 깨집니다. 
    즉, mms버전에서는 x * y + n 픽셀을 가지고 놀아야하는것이죠.. char *형으로 buffer를 만든 뒤, bits per pixel을 사용하여 buffer를 계산해주었다면, 고려해주지 않아도 되는 문제지만...이식성을 고려한다면, char *형으로 진행하는게 맞습니다.
    저는 int *형으로 간단히 만들었기 때문에 문제가 발생했습니다.
    이것 때문에, 거의 5시간을 잡아먹었습니다.
  2. MAC 버전에서는 mms라이브러리와 opengl형 라이브러리를 사용합니다.이 때, linux환경에서 개발을 한 뒤에 mac으로 이식해주게 되면, X icon을 눌렀을 때, 프로그램이 종료되게 하는 Xevent 매크로가 달라지게 되어, MAC에서는 알 수 없는 오류가 납니다.
  3. 이 때문에 6시간 가량을 날렸습니다...
  4. LINUX 버전에서는 mlx_linux판을 가지고 놀게 됩니다.

 

상기 이유때문에, 동료들과 머리를 맞대고 해결하려 했으나, 원인만 찾고 정작 진전은 없었네요..

Comments