surface_get_texture 함수 설명
surface_get_texture
함수는 서피스의 텍스처 페이지에 대한 텍스처를 반환합니다. 이 값은 다른 드로우 함수에서 사용할 수 있으며, 특히 일반 3D 및 일부 2D 원시 함수에서 유용합니다. 이 함수는 서피스에서 사용되는 텍스처의 ID를 반환하며, 포인터를 반환하지 않습니다. 이는 sprite_get_texture
와의 차이점입니다.
문법
surface_get_texture(surface_id);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
surface_id | Texture | 텍스처를 가져올 서피스의 ID입니다. |
반환값
- 텍스처 ID 또는 서피스가 존재하지 않을 경우 -1을 반환합니다.
예제 코드
다음 코드는 _tex
변수에 서피스에서 가져온 텍스처를 저장하고, 이를 사용하여 텍스처가 적용된 4개의 정점으로 이루어진 삼각형 스트립을 그립니다.
var _tex;
_tex = surface_get_texture(surf);
draw_primitive_begin_texture(pr_trianglestrip, _tex);
draw_vertex_texture(0, 0, 0, 0);
draw_vertex_texture(640, 0, 1, 0);
draw_vertex_texture(0, 480, 0, 1);
draw_vertex_texture(640, 480, 1, 1);
draw_primitive_end();
위 코드는 _tex
변수에 저장된 텍스처를 사용하여 삼각형 스트립을 그립니다. 이 텍스처는 이전에 생성된 서피스 surf
에서 가져온 것입니다.
활용 예제
예제 1: 서피스에서 텍스처 가져오기
var my_texture;
my_texture = surface_get_texture(my_surface);
if (my_texture != -1) {
draw_sprite(my_texture, 0, 100, 100);
}
예제 2: 텍스처가 있는 서피스 그리기
var tex_id;
tex_id = surface_get_texture(my_surface);
if (tex_id != -1) {
draw_primitive_begin_texture(pr_trianglefan, tex_id);
draw_vertex_texture(0, 0, 0, 0);
draw_vertex_texture(100, 0, 1, 0);
draw_vertex_texture(100, 100, 1, 1);
draw_vertex_texture(0, 100, 0, 1);
draw_primitive_end();
}
예제 3: 서피스가 존재하지 않을 때 처리
var texture_id;
texture_id = surface_get_texture(non_existent_surface);
if (texture_id == -1) {
show_error("서피스가 존재하지 않습니다.", true);
}
이 예제들은 surface_get_texture
함수를 활용하여 서피스의 텍스처를 가져오고, 이를 다양한 방식으로 그리는 방법을 보여줍니다.