2012-12-05 3 views
1

저는 완전히 여기 저기 곤두박질 쳤습니다. 나는 모든 (예 : vec4 light position = vec4(-2.0, 2.0, 1.0, 1.0))에서 아무것도을 추가하려고하면GLSL 프래그먼트 쉐이더가 컴파일되지 않습니다

varying lowp vec4 fposition; 
varying lowp vec4 fcolor; 
varying lowp vec2 ftexturecoordinates; 


void main() { 
    gl_FragColor = fcolor; 
} 

: 그것은 컴파일되지 않습니다 나는 다음과 같은 단편 셰이더 작업이 있습니다. 오류 코드/설명을 얻는 방법을 알 수는 없지만 정상적인 OpenGL ES 쉐이더를 사용할 수는 없습니다. 나는 다른 모든 애플 리케이션에서 가지고있는 것처럼이 애플 리케이션에서 같은 쉐이더 컴파일 코드를 가지고있다. 그래서 나는 그 섹션이 잘 작동한다는 것을 안다. 문제에 관한 정보를 찾기 위해 무엇을 할 수 있습니까?

답변

3

셰이더를 컴파일 한 후에 GL_FALSE 인 경우 GL_COMPILE_STATUS을 확인할 수 있습니다. glGetShaderInfoLog을 사용하면 컴파일 오류에 대한 추가 정보를 얻을 수 있습니다. (. I는 참조 용으로 체크인 프로젝트 특정 오류를 왼쪽,하지만 늘 주변의 프레임 워크없이 작업 할 때, 그것을 주석) : 여기

는 glGetShaderInfoLog 사용하는 방법을 보여주는 코드 조각입니다

glCompileShader(shader); 
//mada_check_gl_error(); 

GLint compiled; 
glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); 
//mada_check_gl_error(); 
if (!compiled) 
{ 
    GLint length; 
    glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); 
    //mada_check_gl_error(); 
    if (length > 0) 
    { 
     GLint infoLength; 
     char* infoBuf = (char*) malloc(sizeof(char) * length); 
     glGetShaderInfoLog(shader, length, &infoLength, infoBuf); 
     //mada_check_gl_error(); 
     //mada_log(logERROR, infoBuf); 
     free(infoBuf); 
     //SysUtils::error("Error compiling shader. See log for info."); 
    } 
    //SysUtils::error("Failed to compile shader. No further info available."); 
} 
+0

고맙습니다. 이것은 내가 필요한 것입니다. – Justin

관련 문제