-
[WebGL] 웹지엘 오류 처리 방법 및 오류 코드 종류3D웹 프로그래밍/WebGl 2020. 11. 14. 08:52728x90반응형
웹지엘이 오류 발생을 감지하면 ,내장된 오류 코드를 생성한다.
오류가 생성되면 다음과 같은 메소드를 호출할때까지 다른 오류는 더이상 생성되지 않는다.
gl.getErros()
위의 메소드는 내장된 오류를 조회하는 쿼리이다. 이것은 현재 오류코드를 반환하여 오류 상태를 gl.NO_ERROR로 재설정한다.
이후에는 새로운 오류가 생성될수 있다.
웹지엘 오류 코드 설명 gl.NO_ERROR 마지막 gl.getError() 호출 후에 어떤 새로운 오류도 생성되지 않음 gl.INVALID_ENUM GLenum 인자값의 범위를 초과함. gl.drawArrays()는 원래 gl.TRIANGLES와 같은 적합한 enum 값을 인자로 해야하는데 gl.COLOR_BUFFER_BIT와 같이 다른 타입의 값을 인자로 해 호출하는 경우 발생한다. gl.INVALID_OPERATION 현재 웹지엘 상태에서 허용하지 않는 메소드를 호출했을 때 발생, 특정 메소드 실행 전에 선행 메소드를 먼저 호출할 필요가 있는 경우에 발생할수있다. 예를 들어 gl.bufferData()를 실행하지 않고
gl.bindbuffer()를 호출하면 이오류가 발생한다.gl.OUT_OUF_MEMORY 특정 메소드를 실행에 필요한 메모리가 부족할 때 발생 gl.getError()를 활용할때는 방어적인 코드로 매 코드 작성시마다 gl.getError()를 포함하는것, 그리고 디버깅 목적으로 gl.getError()를 사용하는것이다.
하지만 이런 방법은 매우 번거롭고 코드의 가독성을 떨어뜨린다. 다른 방법으로는 WebGlRenderingContext와 gl.getError()를 감싸는 라이버러리를 만들고 매 호출 시마다 내부적으로 작동하게 만드는것이다.
이를 위해 크로미움의 제작자는 오직 한개의 파일을 구성된 유용햔 자바스크립트 라이브러리를 만들었다.
아래 git코드에서 받으면된다.
오류처리 쉽게하는 코드
https://github.com/KhronosGroup/WebGLDeveloperTools
www.khronos.org/webgl/wiki/Debugging
이렇게 사용하면 크롬 개발자 도구의 콘솔패너에 웹지엘 오류를 볼수있다.
728x90반응형'3D웹 프로그래밍 > WebGl' 카테고리의 다른 글
webgl debugutill webgl inspector webgl디버거!!!! isntall 및 사용법 (0) 2020.11.14 [Webgl] webgl을 이용한 삼각형 만들기 (0) 2020.11.10 웹지엘 ? WebGL ?? 기본원리-2 (0) 2020.11.06 웹지엘 ? WebGL ?? 기본원리 -1 (0) 2020.04.27