我试图获取运行游戏的设备支持哪些GPU,以便为该GPU使用正确的纹理压缩(我不知道这是否是执行此操作的最佳方法,我可以接受任何建议:))
std::string GPUInfo::getTC()
{
std::string TC;
cocos2d::Configuration::getInstance()->gatherGPUInfo();
if(cocos2d::Configuration::getInstance()->supportsPVRTC())
TC = ".pvr.ccz";
else if(cocos2d::Configuration::getInstance()->supportsATITC())
TC = ".dds";
else
TC = ".png";
CCLOG("Texture compression format -> %s", TC.c_str());
return TC;
}
但这会导致此错误:
调用OpenGL ES API,没有当前上下文(每个线程记录一次)
是否有其他方法可以获取当前设备支持的哪些GPU?
答案 0 :(得分:0)
你快到了。
cocos2d::Configuration::getInstance()->gatherGPUInfo();
您不需要调用gatherGPUInfo(),因为它是从Director :: setOpenGLView自动调用的。
您可以从主线程中的任何位置调用supportsPVRTC()和supportsATITC()而不出现GL错误,但是您应该在Cocos2d-x初始化(setOpenGLView)之后调用它。