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

分享到wordpress十堰seo优化哪家公司好

分享到wordpress,十堰seo优化哪家公司好,法律行业网站建设,科讯cms 3g 网站设置着色器对象 要创建着色器对象#xff0c;你可以使用以下命令#xff1a; uint glCreateShader( enum type );当创建着色器对象时#xff0c;它最初是空的。type 参数指定要创建的着色器对象的类型#xff0c;必须是指示相应着色器阶段的值之一。以下是该命令的简要概述你可以使用以下命令 uint glCreateShader( enum type );当创建着色器对象时它最初是空的。type 参数指定要创建的着色器对象的类型必须是指示相应着色器阶段的值之一。以下是该命令的简要概述 参数 type指定要创建的着色器对象的类型。它必须是指示相应着色器阶段的值之一。 顶点着色器GL_VERTEX_SHADER片段着色器GL_FRAGMENT_SHADER几何着色器GL_GEOMETRY_SHADER细分控制着色器GL_TESS_CONTROL_SHADER细分评估着色器GL_TESS_EVALUATION_SHADER计算着色器GL_COMPUTE_SHADER 返回值 返回一个非零的无符号整数名称可用于引用着色器对象。 该命令用于将源代码加载到指定的着色器对象中 void glShaderSource( uint shader, sizei count, const char * const *string, const int *length );shader是要加载源代码的着色器对象的名称。count表示字符串数组中的字符串数量。string是一个指向可选空终止字符字符串数组的指针数组这些字符串共同构成了着色器的源代码。length是一个整数数组包含每个字符串的字符数量。如果length数组中的某个元素为负数则对应的字符串以空字符终止。若length参数为NULL则认为string参数中的所有字符串都是以空字符终止。 此命令将着色器对象的源代码设置为string数组中的文本字符串。如果着色器先前已加载了源代码则现有的源代码会被完全替换。任何传递给length的值都不包括其计数内的空终止符。 加载到着色器对象中的字符串期望构成符合OpenGL着色语言规范的有效着色器源代码。如果之前通过ShaderBinary命令将SPIR-V模块与shader关联起来执行此命令后会解除这种关联。在成功完成此命令后shader对象的SPIR-V_BINARY状态将被设置为FALSE。 加载着色器对象的源代码后可以使用以下命令编译着色器对象 void glCompileShader(uint shader);glCompileShader命令用于编译着色器对象shader中的源代码。每个着色器对象都有一个布尔状态COMPILE_STATUS它在编译过程中被修改。可以使用GetShaderiv命令查询此状态。如果着色器编译成功且准备就绪则此状态将设置为TRUE否则设置为FALSE。编译可能因多种原因而失败详细列在OpenGL着色语言规范中。如果glCompileShader失败则任何关于先前编译的信息都会丢失。因此编译失败不会恢复着色器的旧状态。使用ShaderSource更改着色器对象的源代码不会更改其编译状态或已编译的着色器代码。每个着色器对象都有一个信息日志它是一个文本字符串作为编译过程的结果而被覆盖。可以使用GetShaderInfoLog查询此信息日志以获取有关编译尝试的更多信息。 通过着色器编译器分配的资源可以通过以下命令释放然而实际应用中该函数并不常用因为现代OpenGL实现通常会自动管理这些内部资源。 void glReleaseShaderCompiler(void);这是应用程序提供的提示不会阻止后续使用着色器编译器。如果在调用glReleaseShaderCompiler之后加载和编译着色器源代码只要着色器源代码没有错误CompileShader必须成功。可以使用命令GetShaderPrecisionFormat确定着色器编译器支持的不同数字格式的范围和精度。 着色器对象可以使用以下命令删除 void glDeleteShader(uint shader);如果着色器对象未附加到任何程序对象则立即删除。否则着色器对象被标记为删除并将在不再附加到任何程序对象时删除。如果对象被标记为删除其布尔状态位DELETE_STATUS将设置为true。可以使用GetShaderiv查询DELETE_STATUS的值。glDeleteShader将静默忽略值为零的情况。 boolean glIsShader(uint shader);如果 shader 是着色器对象的名称则返回 TRUE。如果 shader 是零或者是一个不是着色器对象名称的非零值则返回 FALSE。 着色器的二进制文件 glShaderBinary命令用于加载预编译的着色器二进制文件具体如下 void glShaderBinary(GLsizei count, const GLuint *shaders,GLenum binaryformat, const void *binary, GLsizei length);count表示要加载二进制数据的着色器对象数量。shaders指向包含着色器对象句柄ID数组的指针。每个句柄代表一种唯一的着色器类型可以对应表7.1中列出的任何着色器阶段。binaryformat指定预编译着色器代码的格式。若要加载SPIR-V模块则应设置为SHADER_BINARY_FORMAT_SPIR_V。binary指向客户端内存中预编译着色器二进制代码的起始位置。对于SPIR-V这里应该是指向有效SPIR-V模块二进制的指针。length表示二进制代码的长度以字节为单位。 成功加载SPIR-V模块后 shaders列表中的每个着色器对象都将与提供的SPIR-V模块关联起来。每个着色器的SPIR_V_BINARY状态将被设置为TRUE。这些着色器的COMPILE_STATUS将被设为FALSE因为它们不是通过OpenGL实现编译的而是从预编译形式加载的。从着色器对象中移除所有已存在的源代码字符串通过glShaderSource指定的。关于先前编译的信息将丢失。 与SPIR-V模块关联的着色器必须通过调用glSpecializeShader进行最终确定。 此外OpenGL还提供了获取由扩展提供的此类格式令牌值的机制 通过查询NUM_SHADER_BINARY_FORMATS的值可以获得支持的二进制格式总数。通过查询SHADER_BINARY_FORMATS的值可以获得GL实现所支持的具体二进制格式列表。 根据着色器对象的类型glShaderBinary会分别加载单个二进制着色器或者加载包含一组优化过的、存储在同一个二进制文件中的着色器的可执行二进制文件。 如果glShaderBinary加载二进制文件失败那么该二进制文件正被加载到的着色器对象的状态不会恢复。需要注意的是如果着色器二进制接口得到支持OpenGL实现可能要求在调用LinkProgram时指定一组一起编译并优化过的着色器二进制。如果不提供这样的优化集合可能会导致LinkProgram操作失败。 着色器专业化Shader Specialization 与SPIR-V模块关联的着色器在被链接到程序对象之前必须先进行专业化处理。不过无需在将着色器附加到程序对象前就对其进行专业化。 专业化过程主要完成两件事 从SPIR-V模块中选择该着色器阶段的入口点名称。设置SPIR-V模块中所有或部分特殊化常量的值。 要对由SPIR-V模块创建的着色器进行专业化请调用以下函数 void glSpecializeShader( uint shader, const char *pEntryPoint, uint umSpecializationConstants, const uint *pConstantIndex, const uint *pConstantValue );shader指向包含未特殊化的SPIR-V的着色器对象名称该对象是通过成功调用ShaderBinary并将SPIR-V模块传递给它而创建的。pEntryPoint指向一个以空字符终止的UTF-8字符串指针用于指定SPIR-V模块中用于此着色器的入口点名称。numSpecializationConstants指示在此调用中设置值的特殊化常量数量。pConstantIndex指向一个包含numSpecializationConstants个无符号整数的数组每个整数表示SPIR-V模块中要设置其值的一个特殊化常量的索引。pConstantValue中的相应条目用于设置由pConstantIndex中条目索引的特殊化常量的值。pConstantValue指向一个无符号整数数组虽然该数组为整型但每个元素都会转换为其在SPIR-V模块中对应的适当类型。因此可以通过在pConstantValue数组中包含IEEE-754位表示来设置浮点常量的值。未被pConstantIndex引用的特殊化常量将保留其在SPIR-V模块中指定的默认值。 若着色器成功实现专业化则着色器的编译状态会被设置为TRUE。如果失败着色器的编译状态会设为FALSE并且关于失败原因的更多信息可能可在着色器编译日志中获取。如果SPIR-V模块未能满足附录C中列出的要求则可能会导致专业化失败。
http://www.pierceye.com/news/38975/

相关文章:

  • 天津哪里有做网站的公司网站开发需求预算
  • 建设项目竣工环保验收公示网站王野天 演员
  • 龙华做网站的wordpress标签生成
  • 辽宁省建设工程信息网官网新网站入口官方微信商家小程序收费吗
  • 怎样自己开网站赚钱wordpress微信登录的插件
  • ppt 如何做网站交互式php 网站缓存文件
  • 网站建设论文百度云盘我想承包小工程
  • 网站推广的正确方式在线培训系统
  • 网站建设试题及答案学电商需要多少钱
  • 免费建站的平台asp网站建设 文献综述
  • 学建设网站去哪里学怎么快速推广自己的产品
  • 安徽建站费用phpstudy 安装wordpress
  • 深圳做网站有哪些做网站就上凡科建设
  • 外贸推广网站建设个人网站做导航网站
  • 网站建设结构四川建设行业网站有哪些
  • 合肥建设网站哪家好东莞公司网站做优化
  • 家用电脑如何做网站服务器建立网站流程图
  • php网站作业模版网站建设v杏信zhousi69
  • 网站备案需要年检吗网站备案名称更换
  • 网站主页设计布局图企业局域网的规划与设计
  • 培训机构网站如何建设网站开发的数据库设计实体是什么
  • wordpress建站属于前端百度品牌广告
  • 免费搭建自助网站如何做电商网站
  • 哈密市建设局网站设计公司口号
  • 手机网站欢迎页面设计做mla网站
  • django做的电子商务网站阿里云有主体新增网站
  • 山西响应式网站平台非标自动化外包平台
  • phpcms 网站模板房地产行业网站
  • wordpress 获取父页面seo相关ppt
  • 收录文案网站网站难做吗