当前位置: 首页 > news >正文

哈尔滨有网站的公司seo外包公司兴田德润官方地址

哈尔滨有网站的公司,seo外包公司兴田德润官方地址,WordPress一键开启全站SSL,新乡做网站费用glmark2代码阅读总结 一、总体 用输入参数生成testbench项用scene和benchmark管理进行复用通过类的重载,创建出不同的分支和具体的实现点,如scene和mainloop类用例执行又规划,每个scene都统一有setup,等使用scene的继承关系&…

glmark2代码阅读总结

一、总体

  1. 用输入参数生成testbench项
  2. 用scene和benchmark管理进行复用
  3. 通过类的重载,创建出不同的分支和具体的实现点,如scene和mainloop类
  4. 用例执行又规划,每个scene都统一有setup,等
  5. 使用scene的继承关系,整体的调用流程就比较简单,好组织

二、小技巧

一组字符串添加间隔方法

用一个static的变量控制第一个

std::string Values;
for (iterator It = Map.begin();It != Map.end();It++)
{static bool doSeparator(false);if (doSeparator){Values += ",";}const std::string& curName = It->first;Values += curName;doSeparator = true;
}

列出目录下的文件

只限于Linux下,用dirent.h头文件的目录操作函数:opendir、readdir 和 closedir。

#include <fstream>
#include <dirent.h>void
Util::list_files(const std::string& dirName, std::vector<std::string>& fileVec)
{DIR* dir = opendir(dirName.c_str());if (!dir){Log::error("Failed to open models directory '%s'\n", dirName.c_str());return;}struct dirent* entry = readdir(dir);while (entry){std::string pathname(dirName + "/");pathname += std::string(entry->d_name);// Skip '.' and '..'if (entry->d_name[0] != '.'){fileVec.push_back(pathname);}entry = readdir(dir);}closedir(dir);
}

字符串定义时截取

使用了std::string模板的特性,在定义字符串时,从原赋值字符串中取部分字串初始化。

string des(src, startPos, len);

表示des是src从startPos开始len长的字符串
类似的用法还有:

std::string s(n, 'x'); // 把s初始化为由连续n个字符x组成的串
string s(s2, pos); // s是string s2从下标pos开始的字符的拷贝

计算模型perspective参数的方法

/* Calculate a projection matrix that is a good fit for the model */
vec3 maxVec = model.maxVec();
vec3 minVec = model.minVec();
vec3 diffVec = maxVec - minVec;
centerVec_ = maxVec + minVec;
centerVec_ /= 2.0;
float diameter = diffVec.length();
radius_ = diameter / 2;
float fovy = 2.0 * atanf(radius_ / (2.0 + radius_));
fovy /= M_PI;
fovy *= 180.0;
float aspect(static_cast<float>(canvas_.width())/static_cast<float>(canvas_.height()));
perspective_.setIdentity();
perspective_ *= LibMatrix::Mat4::perspective(fovy, aspect, 2.0, 2.0 + diameter);

shader管理

shader是用了拼接的方式:
提供的shader中添加变量的方法:ShaderSource::add_const 函数,字符串操作,先生成变量的定义字符串,然后调用 ShaderSource::add 函数,这个函数中可以区分是否加到函数内还是函数外,函数内使用 ShaderSource::add_local, 函数外使用 ShaderSource::add_global。add_local:先找到对应函数名,换到 “{” 和 “\n” 之后插入要添加的定义字符串;add_global:先找到 “precious”所在行和 “\n”,在下面一行插入要添加的定义字符串,同时会检测 “#if” 和 “#endif” 对。

program管理

,过程比较明晰,阅读和书写方便:
Program::init createprogram对象
Program::addShader 加载并编译shader,在这里面都对 shader 的处理也都进行了友好的封装:valid发给发判断shader是否有效,erroMessage输出error log,compile进行编译,ready判断编译结果,attach将shader和program绑定。
所有shader对象存放在一个Shader的vector中,用push_back可以方便的管理。
program也包装了类似的接口:addShader、valid、ready、release
start:use program

mesh类型

convert_to_mesh
set_attrib_locations: 设置attrib_location
vbo_update_method
interleave
build_vbo
build_array

顶点数据的存放:next_vertex set_attrib set_vertex_format set_attrib_locations

http://www.yayakq.cn/news/840309/

相关文章:

  • 青海汽车网站建设服装企业 北京 网站建设
  • 电子商务网站建设规划的内容成都公司注册多少钱
  • 做网站 excel教做网站视频
  • 网站推广律师关键词有哪些笔记本电脑做网站比较畅快
  • vs2017做的网站如何发布喜迎二十大
  • 对网站二次开发的认识黄村网站建设一条龙
  • html5 爱情网站模板商城网站html
  • 有专门做最佳推荐的网站深圳网站建设网页推广网站设计
  • 建设网站公开教学视频网站网址怎么写
  • 建立网站的基本流程有哪些步骤网页设计的网网页设计的网站
  • 在线生成网站地图网站上面如何加入视频
  • 河东做网站的公司慧聪网官网首页
  • 推荐专业的外贸建站公司怎么营销推广
  • wordpress文章站主题做木箱的网站
  • 500m主机空间能做视频网站吗兰州一刀切防疫曝光
  • 创建一家公司的步骤seo短视频新地址在哪里?
  • 网站建设语言网站建设运营合同范本
  • 个人做游戏网站wordpress仿seowhy基础指南模板
  • 镜像别人网站做排名的好处企业平台网站建设
  • 大兴区网站建设在智联招聘网站做销售
  • 建设电动车官方网站cms网站网络地址图片
  • 天津网站优化怎么样为什么公司网站打开很慢
  • 58同城成都网站建设深圳设计院跳槽事件
  • 网站建设所需服务器建站平台哪家好
  • 做网站用Linux还是win建站公司一般怎么获客
  • 网站建设开票名称现在最火的发帖平台
  • 百度推广优化技巧搜索引擎优化结果
  • 网站开发设计的难点北京室内设计公司排行
  • 宝塔Linux面板清理建设的网站wordpress分页模板
  • 做dj音叉网站平台创建一个网站 站点根文件夹为