텍스처 관련 함수 설명
이 문서에서는 게임에서 스프라이트나 기타 그래픽 요소로 사용하기 위해 VRAM에 저장된 이미지인 "텍스처"와 관련된 함수들을 설명합니다. 텍스처는 다음을 포함합니다:
- 텍스처 페이지: GameMaker에 의해 생성된 텍스처 페이지로, 텍스처 그룹에 추가한 스프라이트나 별도의 텍스처 페이지에 배치한 스프라이트를 포함합니다.
- 폰트 글리프: 텍스처 페이지에 포함된 글자 모양입니다.
- 타일 세트: 게임에서 사용할 수 있는 타일 모음입니다.
- 서피스: 사용자 정의 텍스처로, 그릴 수 있는 캔버스를 제공합니다.
함수 참조
텍스처 페이지 정보
다음 함수들은 특정 이미지의 위치나 크기, 그리고 특정 텍스처 기능을 설정하는 데 사용됩니다:
함수 이름 | 설명 |
---|---|
texture_get_width | 텍스처의 너비를 반환합니다. |
texture_get_height | 텍스처의 높이를 반환합니다. |
texture_get_texel_width | 텍스처의 텍셀 너비를 반환합니다. |
texture_get_texel_height | 텍스처의 텍셀 높이를 반환합니다. |
texture_get_uvs | 텍스처의 UV 좌표를 반환합니다. |
texture_set_stage | 텍스처의 스테이지를 설정합니다. |
texture_global_scale | 텍스처의 글로벌 스케일을 설정합니다. |
VRAM 관리
다음 함수들은 개별 텍스처 및 전체 텍스처 그룹과 관련된 VRAM을 관리하는 데 사용됩니다:
함수 이름 | 설명 |
---|---|
draw_texture_flush | 텍스처를 플러시합니다. |
texture_prefetch | 텍스처를 미리 로드합니다. |
texture_flush | 텍스처를 플러시합니다. |
sprite_flush | 스프라이트를 플러시합니다. |
sprite_flush_multisprite_prefetch | 다중 스프라이트를 미리 로드합니다. |
sprite_prefetch | 스프라이트를 미리 로드합니다. |
multidraw_flush | 다중 드로우를 플러시합니다. |
디버깅
다음 함수들은 프로젝트를 디버깅하고 텍스처 메모리의 효율적인 사용을 보장하는 데 주로 사용됩니다:
함수 이름 | 설명 |
---|---|
texture_debug_message | 텍스처 디버그 메시지를 출력합니다. |
texture_is_ready | 텍스처가 준비되었는지 확인합니다. |
texturegroup_get_textures | 텍스처 그룹의 텍스처를 가져옵니다. |
texturegroup_get_sprites | 텍스처 그룹의 스프라이트를 가져옵니다. |
texturegroup_get_fonts | 텍스처 그룹의 폰트를 가져옵니다. |
texturegroup_get_tilesets | 텍스처 그룹의 타일 세트를 가져옵니다. |
texturegroup_get_names | 텍스처 그룹의 이름을 가져옵니다. |
동적 텍스처
다음 함수들은 동적 텍스처를 관리하는 데 사용됩니다:
함수 이름 | 설명 |
---|---|
texturegroup_load | 텍스처 그룹을 로드합니다. |
texturegroup_unload | 텍스처 그룹을 언로드합니다. |
texturegroup_set_mode | 텍스처 그룹의 모드를 설정합니다. |
texturegroup_get_status | 텍스처 그룹의 상태를 가져옵니다. |
활용 예제
다음은 텍스처 관련 함수들을 활용하는 몇 가지 예제입니다:
// 텍스처의 너비와 높이를 가져오기
var tex_width = texture_get_width(my_texture);
var tex_height = texture_get_height(my_texture);
// 텍스처를 플러시하여 메모리 관리
texture_flush();
// 텍스처 그룹을 로드하고 상태 확인
texturegroup_load(my_texture_group);
var status = texturegroup_get_status(my_texture_group);
// 스프라이트를 미리 로드
sprite_prefetch(my_sprite);
// 텍스처의 UV 좌표를 설정
texture_set_stage(my_texture, 0);
// 텍스처 디버그 메시지 출력
texture_debug_message("텍스처 로드 완료");
// 다중 드로우 플러시
multidraw_flush();
// 텍스처 그룹의 스프라이트 가져오기
var sprites = texturegroup_get_sprites(my_texture_group);
// 텍스처 그룹 언로드
texturegroup_unload(my_texture_group);
이 예제들은 텍스처를 효과적으로 관리하고 활용하는 방법을 보여줍니다.