查看: 631|回复: 0

osg3.01 shader中数组变量找不到?

[复制链接]

该用户从未签到

发表于 2014-11-8 00:09:48 | 显示全部楼层 |阅读模式
有些显卡shader里数组变量名称好像不加"[0]",代码这样修改是否妥当?

program.cpp:

735
736     GLint loc = _extensions->glGetUniformLocation( _glProgramHandle, name );
            
            if( loc != -1 )
            {
                _uniformInfoMap[Uniform::getNameID(reinterpret_cast<const char*>(name))] = ActiveVarInfo(loc,type,size);

                                //add by mikeywj
                                std::string strName(name);
                                if(strName.length()>3 && strName.substr(strName.length()-3,3).compare("[0]")==0)
                                {
                                        _uniformInfoMap[Uniform::getNameID(strName.substr(0,strName.length()-3))] = ActiveVarInfo(loc,type,size);

                                        OSG_INFO << "\tUniform \"" << name << "\"/\""<<strName.substr(0,strName.length()-3).c_str()<<"\""
                                                << " loc="<< loc
                                                << " size="<< size
                                                << " type=" << Uniform::getTypename((Uniform::Type)type)
                                                << std::endl;
                                }
                                else
                                {
                                        OSG_INFO << "\tUniform \"" << name << "\""
                                                << " loc="<< loc
                                                << " size="<< size
                                                << " type=" << Uniform::getTypename((Uniform::Type)type)
                                                << std::endl;
                                }
            }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表