fragment shader에서 함수포인터 비슷한 것은 구현할 수 없을까요?
글쓴이: klyx / 작성시간: 수, 2012/08/15 - 7:02오후
OpenGL을 이용하여 동영상 플레이어를 만들고 있는데,
디코딩된 여러 포맷의 YUV 프레임을 fragment shader를 이용하여 RGB로 변환해준후,
마찬가지로 fragment shader를 이용하여 후처리를 해주고 있습니다.
그런데 YUV->RGB부분만 다를뿐 그 이후의 후처리는 사실 모두 똑같은데
이 부분 때문에 매번 새로운 쉐이더를 쓰고 포맷에 따라서 다른 쉐이더를 바인드 시켜줘야 하는게 번거롭고 중복되는 코드도 늘어만 갑니다.
후처리 부분은 별도의 쉐이더로 뽑아서 같이 링크해서 쓸수 있지만, 그래도 쉐이더의 메인함수는 매번 새롭게 작성해줘야하고 함수 원형 선언도 모든 쉐이더에 중복되어 들어가게 되네요.
C라면 함수포인터를 이용해서 YUV->RGB부분만 적당한 함수포인터를 넣어주는 식으로 처리할 수 있는데, 쉐이더에서 비슷하게 이용할 수 있는게 없을까요?
현재 OpenGL 2.0까지 지원하는 걸 목표로 하고 있습니다. 이 버전안에서 해결책을 아시는 분 알려주시면 감사하겠습니다.
Forums:
댓글 달기