WebGL에서 오류가 발생하면 일반적으로 브라우저의 콘솔에 경고 메시지가 표시됩니다.
예를 들어 너무 큰 텍스처를 만들려고합니다.
gl.texImage2D(
gl.TEXTURE_2D, // target
0, // level
gl.RGBA, // internalformat
1000000, // width
1000000, // height
0, // border
gl.RGBA, // format
gl.UNSIGNED_BYTE, // type
null // data
);
Chrome 및 Safari는 콘솔에 다음 경고 메시지를 표시합니다.
WebGL: INVALID_VALUE: texImage2D: width or height out of range
Firefox는 다음 경고 메시지를 표시합니다.
Error: WebGL: texImage2D: the maximum width for level 0 is 4096
WebGL에서이 메시지를 프로그래밍 방식으로 어떻게 얻을 수 있습니까?
gl.getErrorMessage()
문자열을 반환하는 것과 같은 것을 찾고 있습니다.
WebGL 오류는 JavaScript 오류를 발생시키지 않으므로 속성 catch
을 가져올 수 없습니다 message
.
gl.getError()
ErrorCode
와 같은 열거 형 값만 반환합니다 INVALID_VALUE
.
gl.getShaderInfoLog()
특정 셰이더 (예 : 컴파일 오류)와 관련된 오류 메시지 만 제공합니다.
gl.getProgramInfoLog()
특정 프로그램과 관련된 오류 메시지 만 제공합니다 (예 : 연결 오류).
Khronos는 라는 디버깅 래퍼WebGLDebugUtils
를 만들었지 만 오류 메시지와 관련된 유일한 방법 glEnumToString()
은 열거 형 값 (예 :) INVALID_VALUE
을 문자열 로 변환하는 것 입니다.
짧은 대답은 할 수 없다는 것입니다.
WebGL은 gl.getError()
. 나머지는 WebGL에 대한 많은 유효성 검사를 이미 수행해야하므로 개발자가 오류를 찾을 수 있도록 브라우저에 추가 한 것입니다.
WebGL 확장을 제안 해야 할 수도 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다