buffer_set_used_size 함수 설명
buffer_set_used_size
함수는 주어진 버퍼의 "사용된" 크기를 설정하는 기능을 제공합니다. 이 크기는 버퍼에 기록된 바이트 수를 나타냅니다. 주로 확장 프로그램 내에서 사용됩니다.
버퍼에 데이터를 쓸 때, GameMaker는 확장 코드에 의해 버퍼가 얼마나 채워졌는지 알 수 없으며, 그 데이터를 읽을 수 없습니다. 이 함수는 확장에서 호출되어 엔진에 버퍼에 기록된 바이트 수를 알려줍니다. 이를 통해 엔진은 해당 데이터를 읽을 수 있습니다.
문법
buffer_set_used_size(buffer, size);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
buffer | Buffer | 사용할 버퍼 |
size | Real | "사용된" 크기로 설정할 바이트 수 |
반환값
- N/A
예제
다음은 확장에서 데이터를 GameMaker 버퍼에 쓰고, 그 후에 엔진이 읽을 수 있도록 사용된 바이트 수를 설정하는 예제입니다.
buffer_write(_bufferAddress, buffer_u8, 1);
buffer_write(_bufferAddress, buffer_u8, 2);
buffer_write(_bufferAddress, buffer_u16, 400);
buffer_set_used_size(_bufferAddress, 4);
위의 함수들은 확장에서 버퍼에 데이터를 쓰고, 그 후에 엔진이 해당 데이터를 읽을 수 있도록 사용된 바이트 수를 설정하는 과정을 보여줍니다.
활용 예제
예제 1: 이미지 데이터 저장
var img_buffer = buffer_create(1024, buffer_grow, 1);
buffer_write(img_buffer, buffer_u8, 255); // R
buffer_write(img_buffer, buffer_u8, 0); // G
buffer_write(img_buffer, buffer_u8, 0); // B
buffer_set_used_size(img_buffer, 3);
예제 2: 사용자 정의 데이터 구조 저장
var data_buffer = buffer_create(256, buffer_grow, 1);
buffer_write(data_buffer, buffer_u32, 12345); // ID
buffer_write(data_buffer, buffer_u8, 10); // 점수
buffer_set_used_size(data_buffer, 5);
예제 3: 네트워크 데이터 전송
var net_buffer = buffer_create(512, buffer_grow, 1);
buffer_write(net_buffer, buffer_u8, 1); // 패킷 타입
buffer_write(net_buffer, buffer_u16, 500); // 데이터 길이
buffer_set_used_size(net_buffer, 3);
이와 같이 buffer_set_used_size
함수는 다양한 상황에서 버퍼의 사용된 크기를 설정하여 데이터 처리를 원활하게 할 수 있도록 도와줍니다.