1
我注意到openGLShaderSource的簽名已經改變:簽名差異
如果你看一下gl2.h從http://www.khronos.org/registry/gles/(對我來說,在轉16803),簽名上寫着:
現在GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
,在該文件的舊版本(修訂版10602),或在看該功能的桌面版本時,簽名寫着:
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
注意缺少的字符串參數「const」...
有沒有人有一個想法如何能檢測到這一點,並保持向後兼容?據我所見,沒有定義「修訂」宏,可以檢查使用一個版本或其他版本。
背景信息:我正在嘗試爲裝有新gl2.h頭的嵌入式平臺編譯WebKit。和WebKit有這樣的:
typedef void (*glShaderSourceType) (GLuint, GLsizei, const char**, const GLint*);
在
http://opensource.apple.com/source/WebCore/WebCore-1298/platform/graphics/cairo/OpenGLShims.h
從而不能當它試圖將glShaderSource函數指針與新gl2.h版本glShaderSourceType變量分配到編譯...
你不能簡單地執行演員? –