gpt4 book ai didi

opengl-es - eclipse中未定义的引用glBindVertexArrayOES、glGenVertexArraysOES、glDeleteVertexArraysOES

转载 作者:行者123 更新时间:2023-12-05 00:06:53 24 4
gpt4 key购买 nike

尝试使用 Android NDK 编译 C++ 代码,但这些错误不会消失

undefined reference to glBindVertexArrayOES
undefined reference to glGenVertexArraysOES
undefined reference to glDeleteVertexArraysOES

在 .mk 文件中写道
LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog -lz  -landroid -lEGL

所有其他功能都完美找到,我是否需要声明任何东西才能使这些工作?

最佳答案

此函数不在基本 opengl es 规范中,因此默认情况下未定义它们,而是作为扩展提供。

如果您使用的设备支持此扩展,您可以获取函数的物理地址并通过函数指针使用它。

它应该是这样的:

PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOES;
PFNGLBINDVERTEXARRAYOESPROC glBindVertexArrayOES;
PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArraysOES;
PFNGLISVERTEXARRAYOESPROC glIsVertexArrayOES;

glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)eglGetProcAddress ( "glGenVertexArraysOES" );
glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)eglGetProcAddress ( "glBindVertexArrayOES" );
glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)eglGetProcAddress ( "glDeleteVertexArraysOES" );
glIsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC)eglGetProcAddress ( "glIsVertexArrayOES" );

比你可以使用的功能。只是不要忘记此绑定(bind)发生在运行时,因此检查是否支持此功能是一个好主意。如果设备不支持,指针将为 0。

关于opengl-es - eclipse中未定义的引用glBindVertexArrayOES、glGenVertexArraysOES、glDeleteVertexArraysOES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com