application_surface_draw_enable 함수 설명
application_surface_draw_enable
함수는 애플리케이션 서피스의 자동 그리기를 활성화하거나 비활성화하는 기능을 제공합니다. 기본적으로 이 기능은 활성화되어 있지만, 많은 경우 서피스가 그려지는 시점과 방법을 직접 제어하고 싶을 수 있습니다. 예를 들어, 셰이더를 사용할 때 이 함수를 사용하여 자동 그리기를 false
로 설정하면, 원하는 방식으로 직접 그릴 수 있습니다.
자동 그리기를 끄고 애플리케이션 서피스를 직접 그릴 경우, 스프라이트와 서피스의 알파 컴포넌트에 문제가 발생할 수 있습니다. 이는 GameMaker가 자동 그리기가 활성화된 상태에서 알파 블렌딩 없이 애플리케이션 서피스를 그리기 때문입니다. 자동 그리기를 끄면, 아래와 같은 코드를 사용하여 직접 처리해야 합니다:
gpu_set_blendenable(false);
draw_surface_ext(application_surface, 0, 0, 1, 1, 0, c_white, 1);
gpu_set_blendenable(true);
문법
application_surface_draw_enable(flag);
인수
인수 | 타입 | 설명 |
---|---|---|
flag | Boolean | true (활성화, 기본값) 또는 false (비활성화) |
반환값
N/A
예제
application_surface_draw_enable(false);
위 코드는 애플리케이션 서피스의 자동 그리기를 끕니다.
활용 예제
- 셰이더와 함께 사용하기
gml application_surface_draw_enable(false); // 셰이더 설정 shader_set(my_shader); draw_surface(application_surface, 0, 0); shader_reset(); application_surface_draw_enable(true);
- 특정 조건에서 서피스 그리기
gml if (some_condition) { application_surface_draw_enable(false); // 사용자 정의 그리기 로직 draw_surface(application_surface, 0, 0); application_surface_draw_enable(true); }
- 알파 블렌딩 처리
gml application_surface_draw_enable(false); gpu_set_blendenable(false); draw_surface(application_surface, 0, 0); gpu_set_blendenable(true); application_surface_draw_enable(true);
- 게임 상태에 따른 서피스 제어
gml if (game_state == "paused") { application_surface_draw_enable(false); // 일시 정지 화면 그리기 draw_pause_screen(); application_surface_draw_enable(true); }
- 애니메이션 효과 적용
gml application_surface_draw_enable(false); // 애니메이션 프레임 그리기 draw_animation_frame(current_frame); application_surface_draw_enable(true);