Opengl es 在Cocos2d-x上获得支持的GPU
我正在尝试获取运行游戏的设备支持哪个GPU,以便为该GPU使用正确的纹理压缩。我不知道这是否是最好的方法,我愿意接受任何建议:Opengl es 在Cocos2d-x上获得支持的GPU,opengl-es,cocos2d-x,Opengl Es,Cocos2d X,我正在尝试获取运行游戏的设备支持哪个GPU,以便为该GPU使用正确的纹理压缩。我不知道这是否是最好的方法,我愿意接受任何建议: std::string GPUInfo::getTC() { std::string TC; cocos2d::Configuration::getInstance()->gatherGPUInfo(); if(cocos2d::Configuration::getInstance()->supportsPVRTC())
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?您就快到了
cocos2d::Configuration::getInstance()->gatherGPUInfo();
您不需要调用gatherGPUInfo,因为它是从Director::setOpenGLView自动调用的
您可以在主线程中的任何位置调用supportsPVRTC和supportsATITC,而不会出现GL错误,但应该在Cocos2d-x初始化setOpenGLView之后调用它