surface_get_format 함수 설명
surface_get_format
함수는 주어진 서피스의 형식을 반환하는 함수입니다. 모든 형식은 아래에 나열되어 있습니다.
문법
surface_get_format(surface_id);
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
surface_id | Surface | 형식을 가져올 서피스의 ID입니다. |
반환 값
- 서피스 형식 상수
예제
var _format = surface_get_format(my_surf);
if (_format == surface_rgba8unorm) {
var _buffer = buffer_create(1, buffer_grow, 1);
buffer_get_surface(_buffer, my_surf, 0);
buffer_seek(_buffer, buffer_seek_start, 0);
show_debug_message(buffer_read(_buffer, buffer_u8));
show_debug_message(buffer_read(_buffer, buffer_u8));
show_debug_message(buffer_read(_buffer, buffer_u8));
show_debug_message(buffer_read(_buffer, buffer_u8));
}
이 코드는 서피스의 형식을 가져오고, 그것이 surface_rgba8unorm
인지 확인합니다. surface_rgba8unorm
은 각 픽셀이 4개의 채널(RGBA)을 가지며, 각 채널이 8비트(1바이트)임을 의미합니다. 형식이 일치하면, 버퍼를 생성하고 서피스를 그 버퍼에 씁니다. 그런 다음 버퍼의 시작으로 이동하여 첫 번째 네 바이트, 즉 첫 번째 픽셀의 RGBA 값을 읽습니다. 각 채널의 값을 출력 로그에 인쇄합니다.
활용 예제
예제 1: 서피스 형식 확인 및 처리
var my_surface = surface_create(100, 100);
var format = surface_get_format(my_surface);
if (format == surface_rgba8unorm) {
// RGBA 형식에 대한 처리
}
예제 2: 서피스에서 데이터 읽기
var my_surface = surface_create(200, 200);
var buffer = buffer_create(1, buffer_grow, 1);
buffer_get_surface(buffer, my_surface, 0);
// 데이터 처리
예제 3: 서피스 형식에 따른 다른 처리
var my_surface = surface_create(150, 150);
var format = surface_get_format(my_surface);
switch (format) {
case surface_rgba8unorm:
// RGBA 처리
break;
case surface_rgb8unorm:
// RGB 처리
break;
default:
// 기타 처리
break;
}
예제 4: 서피스의 모든 픽셀 값 출력
var my_surface = surface_create(50, 50);
var format = surface_get_format(my_surface);
if (format == surface_rgba8unorm) {
var buffer = buffer_create(1, buffer_grow, 1);
buffer_get_surface(buffer, my_surface, 0);
for (var i = 0; i < 50 * 50; i++) {
var r = buffer_read(buffer, buffer_u8);
var g = buffer_read(buffer, buffer_u8);
var b = buffer_read(buffer, buffer_u8);
var a = buffer_read(buffer, buffer_u8);
show_debug_message("Pixel " + string(i) + ": R=" + string(r) + " G=" + string(g) + " B=" + string(b) + " A=" + string(a));
}
}
이 예제들은 surface_get_format
함수를 활용하여 서피스의 형식을 확인하고, 그에 따라 다양한 처리를 수행하는 방법을 보여줍니다.