我正在使用GPUImage框架處理iOS項目。我無法讓我的着色器編譯。使用GPUImage在OpenGL ES着色器中使用bool返回類型的函數
有一個在我的片段着色器的功能:
const vec2 boundMin = vec2(0.0, 0.0);
const vec2 boundMax = vec2(1.0, 1.0);
bool inBounds (vec2 p) {
return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
}
着色器編譯日誌:
ERROR: 0:1: '_Bool' : syntax error syntax error
當我更換所有的調用函數
inBounds(vec2 p)
與
all(lessThan(boundMin, p)) && all(lessThan(p, boundMax))
它的工作原理太棒了!
問題:
是在OpenGL ES 2.0的片段着色器支持布爾函數?如果是這樣,我哪裏出錯了?如果不是,爲什麼這兒有功能,如all()
,lessThan()
等
環境:iPad的迷你,的iOS 7,OpenGL ES 2.0的時,Xcode 5.0.2
你可以顯示整個着色器嗎?如果我正確地閱讀了該編譯日誌,那是抱怨第一行。 –
@ AndonM.Coleman我不認爲這是第一行,因爲當我刪除'inBounds'函數時,它工作正常。我相信這是導致問題的功能本身。你使用GPUImage嗎?我不認爲GPUImage的着色器編譯日誌可以給出錯誤的確切位置。 – YuAo
0:1通常意味着第1行中第一個字符的作用。每個供應商都不相同,但這往往是約定。 –