layer_get_shader 함수 설명
layer_get_shader 함수는 주어진 레이어에 셰이더가 할당되어 있는지 확인하는 데 사용됩니다. 이 함수는 레이어 핸들(레이어를 생성할 때 layer_create()를 사용하여 얻은 것) 또는 레이어 이름(문자열 형식)을 인수로 받아들입니다. 함수는 할당된 셰이더의 인덱스를 반환하거나, 셰이더가 할당되지 않은 경우 -1을 반환합니다.
문법
layer_get_shader(layer_id)
인수
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| layer_id | 문자열 또는 레이어 ID | 타겟 레이어의 핸들(또는 문자열 형식의 레이어 이름) |
반환값
- 셰이더 자산의 인덱스
- -1 (셰이더가 할당되지 않은 경우)
예제
if (layer_get_shader(layer) == -1) {
layer_shader(layer, shd_Sepia);
}
위 코드는 현재 인스턴스가 실행 중인 레이어에 셰이더가 할당되어 있는지 확인하고, 할당되지 않은 경우 shd_Sepia 셰이더를 할당합니다.
활용 예제
예제 1: 레이어에 셰이더 할당하기
if (layer_get_shader(myLayer) == -1) {
layer_shader(myLayer, shd_Blur);
}
이 코드는 myLayer에 셰이더가 할당되어 있지 않으면 shd_Blur 셰이더를 할당합니다.
예제 2: 셰이더 상태에 따라 다른 동작 수행하기
if (layer_get_shader(myLayer) != -1) {
// 셰이더가 할당되어 있을 때의 동작
layer_shader(myLayer, shd_Normal);
} else {
// 셰이더가 할당되지 않았을 때의 동작
layer_shader(myLayer, shd_Grayscale);
}
이 코드는 myLayer에 셰이더가 할당되어 있는지 확인하고, 할당되어 있으면 shd_Normal을, 그렇지 않으면 shd_Grayscale을 할당합니다.
예제 3: 여러 레이어에 셰이더 적용하기
for (var i = 0; i < layer_count; i++) {
var currentLayer = layer_get(i);
if (layer_get_shader(currentLayer) == -1) {
layer_shader(currentLayer, shd_Sepia);
}
}
이 코드는 모든 레이어를 반복하면서 각 레이어에 셰이더가 할당되어 있지 않으면 shd_Sepia를 할당합니다.