在 Android,判断是否支持 glBlendFuncSeparateOES
On Android, determining whether glBlendFuncSeparateOES is supported
我有一些代码使用 glBlendFuncSeparateOES 和 glBendEquationSeparateOES 来渲染到具有 alpha 的帧缓冲区。
但是,我发现我的一些目标设备似乎不支持这些功能。它们默默地失败,所发生的只是您的渲染模式未设置。我的 Kinda Fire 廉价平板电脑和较旧的三星都表现出这种行为。
在 android 上,是否有好的方法来查询它们是否已实际实施?我已经尝试过 eglGetProcAddress,但它 returns 是你向它抛出的任何字符串的地址!!!!!!!
目前,我只有游戏,在启动时,在小型 FBO 上进行快速渲染以查看透明度是否正确或是否有伪像。它有效,但这是一种非常笨拙的方法。
如果有像 glIsBlendFuncSeparateSupported() 这样的东西,我会更喜欢。
您可以使用 glGetString(GL_EXTENSIONS)
获取所有可用扩展的列表。这个 returns 一个 space 分隔的支持扩展列表。有关详细信息,请参阅 Khronos specification。
我有一些代码使用 glBlendFuncSeparateOES 和 glBendEquationSeparateOES 来渲染到具有 alpha 的帧缓冲区。
但是,我发现我的一些目标设备似乎不支持这些功能。它们默默地失败,所发生的只是您的渲染模式未设置。我的 Kinda Fire 廉价平板电脑和较旧的三星都表现出这种行为。
在 android 上,是否有好的方法来查询它们是否已实际实施?我已经尝试过 eglGetProcAddress,但它 returns 是你向它抛出的任何字符串的地址!!!!!!!
目前,我只有游戏,在启动时,在小型 FBO 上进行快速渲染以查看透明度是否正确或是否有伪像。它有效,但这是一种非常笨拙的方法。
如果有像 glIsBlendFuncSeparateSupported() 这样的东西,我会更喜欢。
您可以使用 glGetString(GL_EXTENSIONS)
获取所有可用扩展的列表。这个 returns 一个 space 分隔的支持扩展列表。有关详细信息,请参阅 Khronos specification。