GPU 혼합 모드 가져오기
gpu_get_blendmode_ext
함수는 현재 그리기 위해 사용되고 있는 확장 혼합 모드를 가져오는 데 사용됩니다. 이 함수는 다음과 같은 두 요소를 가진 1차원 배열을 반환합니다:
인덱스 | 설명 | 기본값 |
---|---|---|
[0] | 소스 혼합 모드 팩터 상수 | bm_src_alpha |
[1] | 대상 혼합 모드 팩터 상수 | bm_inv_src_alpha |
배열의 값은 다음 상수 중 하나일 수 있습니다. (여기서 "s"는 소스에서 가져온 값을, "d"는 대상에서 가져온 값을 나타냅니다):
이 값들을 변경하고 전체 배열을 gpu_set_blendmode_ext()
함수에 단일 인수로 전달할 수 있습니다.
문법
gpu_get_blendmode_ext();
반환값
- 배열 (2 요소; 위의 상수 참조)
예제
var bm = gpu_get_blendmode_ext();
bm[0] = bm_src_alpha;
gpu_set_blendmode_ext(bm);
위의 코드는 현재 확장 혼합 모드를 가져오고, 소스를 수정한 후, 다시 확장 혼합 모드를 설정합니다.
활용 예제
- 혼합 모드 변경 후 그리기
gml var bm = gpu_get_blendmode_ext(); bm[0] = bm_add; // 소스 혼합 모드를 추가로 변경 gpu_set_blendmode_ext(bm); draw_sprite(sprite_index, 0, x, y);
- 혼합 모드 복원
gml var bm = gpu_get_blendmode_ext(); // 그리기 작업 수행 gpu_set_blendmode_ext(bm); // 원래 혼합 모드로 복원
- 다양한 혼합 모드 테스트
gml var modes = [bm_src_alpha, bm_add, bm_inv_src_alpha]; for (var i = 0; i < array_length(modes); i++) { var bm = gpu_get_blendmode_ext(); bm[0] = modes[i]; gpu_set_blendmode_ext(bm); draw_sprite(sprite_index, 0, x + i * 10, y); // 각 혼합 모드로 그리기 }
- 혼합 모드에 따른 효과 적용
gml var bm = gpu_get_blendmode_ext(); bm[0] = bm_src_alpha; // 소스 혼합 모드 설정 gpu_set_blendmode_ext(bm); draw_rectangle(100, 100, 200, 200, c_red, false); // 빨간 사각형 그리기
- 혼합 모드 상태 저장 및 복원
gml var bm_original = gpu_get_blendmode_ext(); // 혼합 모드 변경 var bm_new = [bm_add, bm_inv_src_alpha]; gpu_set_blendmode_ext(bm_new); // 그리기 작업 수행 gpu_set_blendmode_ext(bm_original); // 원래 상태로 복원
이러한 예제들은 gpu_get_blendmode_ext
함수를 활용하여 다양한 그래픽 효과를 적용하는 방법을 보여줍니다.