버퍼 크기 가져오기 (Get Buffer Size)
이 문서에서는 버퍼의 크기를 바이트 단위로 가져오는 방법에 대해 설명합니다. 이 기능은 Create Buffer 작업을 통해 반환된 고유한 버퍼 ID 값을 사용하여 버퍼의 크기를 확인합니다. 크기를 저장할 타겟 변수를 제공해야 합니다. 타겟 변수는 일시적인 로컬 변수로 설정할 수 있으며, 이 경우 현재의 액션 스크립트 또는 이벤트가 끝나면 메모리에서 제거됩니다.
작업 구문
Get Buffer Size(buffer, target)
인수 설명
| 인수 | 설명 |
|---|---|
| Buffer | 버퍼 인덱스 (변수에 저장됨) |
| Target | 반환된 값을 저장할 타겟 변수 |
예제
아래의 액션 블록 코드는 버퍼의 크기를 가져온 다음, 해당 값을 사용하여 현재 저장된 데이터의 끝으로 읽기/쓰기 위치를 설정합니다.
var buffer_id = 0; // 버퍼 ID
var size; // 크기를 저장할 변수
// 버퍼의 크기를 가져옵니다.
size = GetBufferSize(buffer_id);
// 읽기 및 쓰기 위치를 버퍼의 끝으로 설정합니다.
buffer_seek(buffer_id, size, buf_seek_start);
다양한 활용 및 응용 예제
- 버퍼 크기 검증
버퍼의 크기를 확인하여 적절한 데이터를 쓰기 전에 충분한 공간이 있는지 확인할 수 있습니다.
```gml var buffer_id = 1; // 기존 버퍼 ID var size;
size = GetBufferSize(buffer_id); if (size < 1024) { // 공간이 부족할 경우, 에러 처리 show_error("버퍼 공간이 부족합니다!", true); } ```
- 데이터 동기화
네트워크 통신에서 버퍼의 크기를 확인하여 데이터 전송의 일관성을 유지할 수 있습니다.
gml var buffer_id = 2; var size = GetBufferSize(buffer_id); if (size != expected_size) { // 데이터 크기가 예상과 다를 경우 재전송 resend_data(buffer_id); }
- 자동 확장 버퍼
필요한 경우 버퍼의 크기를 자동으로 조정하는 로직을 구현할 수 있습니다.
```gml var buffer_id = 3; var size = GetBufferSize(buffer_id); var max_size = 2048; // 최대 크기
if (size >= max_size) { // 버퍼 확장 로직 buffer_resize(buffer_id, max_size * 2); } ```
관련 작업
- 버퍼 위치 가져오기 (Get Buffer Position): 현재 버퍼에서의 읽기/쓰기 위치를 가져오는 작업.
- 버퍼 생성 (Create Buffer): 새로운 버퍼를 생성하는 작업.
© Copyright YoYo Games Ltd. 2021 All Rights Reserved.