1. 기존 이미지 제거:
```c
if (fdf->img.img)
mlx_destroy_image(fdf->mlx_ptr, fdf->img.img);
```
- 이미 존재하는 이미지가 있다면 먼저 제거합니다.
- 이는 메모리 누수를 방지하고 새 이미지를 위한 공간을 확보합니다.
2. 새 이미지 생성:
```c
fdf->img.img = mlx_new_image(fdf->mlx_ptr, WIDTH, HEIGHT);
```
- `mlx_new_image` 함수를 사용하여 새 이미지를 생성합니다.
- `WIDTH`와 `HEIGHT`는 이미지의 크기를 지정합니다.
3. 이미지 데이터 주소 얻기:
```c
fdf->img.addr = mlx_get_data_addr(fdf->img.img, &fdf->img.bits_per_pixel,
&fdf->img.line_length, &fdf->img.endian);
```
- `mlx_get_data_addr` 함수를 사용하여 이미지 데이터의 메모리 주소를 얻습니다.
- 이 함수는 픽셀 데이터에 직접 접근할 수 있게 해줍니다.
- 함수는 다음 정보도 제공합니다:
- `bits_per_pixel`: 픽셀당 비트 수
- `line_length`: 이미지의 한 줄 길이 (바이트 단위)
- `endian`: 엔디안 정보 (빅 엔디안 또는 리틀 엔디안)
4. 이미지 그리기:
```c
draw(fdf);
```
- 초기화된 이미지 버퍼에 실제 내용을 그립니다.
- `draw` 함수는 FDF 맵 데이터를 사용하여 와이어프레임을 그릴 것입니다.
이 함수는 그래픽 렌더링을 위한 준비 단계로, 이미지 버퍼를 설정하고 초기화합니다. 이후 `draw` 함수에서 실제 그리기 작업이 이루어지며, 이 이미지는 나중에 화면에 표시될 것입니다.
'C Language' 카테고리의 다른 글
Bresenham 과 DD알고리즘의 기본 원리 (0) | 2025.01.24 |
---|---|
3D draw 함수 설명 (0) | 2025.01.24 |
MiniLibx 기본 구현 알고리즘 (0) | 2025.01.24 |
c언어에서 exit(0)과 exit(1)의 간단한 차이점 (0) | 2025.01.24 |
파이프 입력부 및 출력부의 자식 프로세스 (0) | 2025.01.23 |