vertex_create_buffer 함수 설명
vertex_create_buffer
함수는 새로운 정점 버퍼를 생성하는 기능을 제공합니다. 이 정점 버퍼는 GameMaker에서 특별히 생성된 것으로, 기본 도형을 만들 때 사용하기 위해 미리 형식화되어 있습니다. 이 함수는 버퍼에 대한 핸들을 반환하며, 이후 모든 호출에서 이 핸들을 사용해야 합니다.
정점 버퍼를 사용하여 데이터를 추가하려면 vertex_begin
함수를 호출하여 사용자 정의 기본 도형을 정의하기 시작할 수 있습니다. 이 도형은 버퍼에 저장되어 셰이더에 제출될 준비가 됩니다. 필요할 때마다 버퍼를 재사용할 수 있으며(단, vertex_freeze
함수를 사용한 경우는 제외), vertex_begin
을 호출할 때마다 이전 버퍼 데이터가 지워지고 새로운 데이터를 수용할 수 있습니다.
문법
vertex_create_buffer();
반환값
- 정점 버퍼 핸들
예제
v_buff = vertex_create_buffer();
위 코드는 새로운 정점 버퍼를 생성하고 그 핸들을 변수 v_buff
에 저장합니다.
활용 예제
1. 정점 버퍼 생성 및 데이터 추가
v_buff = vertex_create_buffer();
vertex_begin(v_buff);
// 정점 데이터 추가
vertex_position(0, 0);
vertex_color(c_red);
vertex_position(100, 0);
vertex_color(c_green);
vertex_position(100, 100);
vertex_color(c_blue);
vertex_end();
2. 정점 버퍼 재사용
vertex_begin(v_buff);
// 새로운 정점 데이터 추가
vertex_position(50, 50);
vertex_color(c_yellow);
vertex_position(150, 50);
vertex_color(c_purple);
vertex_end();
3. 셰이더에 정점 버퍼 제출
shader_set(my_shader);
vertex_submit(v_buff, pr_trianglelist);
4. 정점 버퍼 해제
vertex_free(v_buff);
기능 | 설명 |
---|---|
버퍼 생성 | vertex_create_buffer() 를 사용하여 새로운 버퍼 생성 |
데이터 추가 | vertex_begin() 과 vertex_end() 로 데이터 추가 |
셰이더 제출 | vertex_submit() 으로 셰이더에 데이터 제출 |
버퍼 해제 | vertex_free() 로 버퍼 메모리 해제 |