一个从openglapi注册表中提取信息的简单工具
opengl-registr的Python项目详细描述
opengl注册表
注意:存储库当前正在进行中。这个警告 在PyPI上发布第一个稳定版本后将删除
一个从openglapi注册表中提取信息的简单工具。在
注册中心目前位于KhronosGroup组织的github上: https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/gl.xml
从源设置
克隆repo并输入项目目录。 我们假设用户将设置一个virtualenv。在
pip install -e .
这将在可编辑模式下安装包 意思是你可以继续改变来源 每次更换都要安装。在
如果你真的想安装软件包 不想修改其内容:
^{pr2}$运行测试
我们使用tox
来运行覆盖py3.4、py3.6和py3.7的flake9和coverage测试。在
pip install -r tests/requirements.txt # All enviroments tox # Specific enviroments tox -e py35 tox -e py36 tox -e py37 tox -e pep8
正在生成文档
pip install -r docs/requirements.txt python setup.py build_sphinx
注册信息
注册表只是一个巨大的xml文件,通常名为gl.xml
,其中包含
有关枚举和函数的信息。然后在
特性(opengl/es版本)和扩展。这还包括
随着版本的进展,必需的和已删除的枚举和函数。在
<registry><!-- GL type definitions. --><types><type>typedef unsigned int <name>GLenum</name>;</type><type>typedef unsigned char <name>GLboolean</name>;</type> ... </types><!-- An attempt to group enums together (not critical information) --><groups><groupname="CullFaceMode"><enumname="GL_BACK"/><enumname="GL_FRONT"/><enumname="GL_FRONT_AND_BACK"/></group> ... </groups><!-- Multiple enums blocks with the enum names and values. Can point to a group --><enumsnamespace="GL"group="ContextProfileMask"type="bitmask"><enumvalue="0x00000001"name="GL_CONTEXT_CORE_PROFILE_BIT"/><enumvalue="0x00000002"name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/></enums> ... <!-- Details information about every GL function --><commandsnamespace="GL"><command><proto>void <name>glDrawArrays</name></proto><paramgroup="PrimitiveType"><ptype>GLenum</ptype><name>mode</name></param><param><ptype>GLint</ptype><name>first</name></param><param><ptype>GLsizei</ptype><name>count</name></param><glxtype="render"opcode="193"/></command> ... </command><!-- Multiple feature blocks for each opengl version. These include the required and remove section referencing command names and enum names. Only including parts of GL 3.2 as it shows removal. --><featureapi="gl"name="GL_VERSION_1_1"number="1.1">...</feature><featureapi="gl"name="GL_VERSION_1_2"number="1.2">...</feature><featureapi="gl"name="GL_VERSION_1_3"number="1.3">...</feature><featureapi="gl"name="GL_VERSION_1_4"number="1.4">...</feature><featureapi="gl"name="GL_VERSION_1_5"number="1.5">...</feature><featureapi="gl"name="GL_VERSION_2_0"number="2.0">...</feature><featureapi="gl"name="GL_VERSION_2_1"number="2.1">...</feature><featureapi="gl"name="GL_VERSION_3_0"number="3.0">...</feature><featureapi="gl"name="GL_VERSION_3_1"number="3.1">...</feature><featureapi="gl"name="GL_VERSION_3_2"number="3.2"><require><enumname="GL_CONTEXT_CORE_PROFILE_BIT"/><enumname="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/><enumname="GL_LINES_ADJACENCY"/><enumname="GL_LINE_STRIP_ADJACENCY"/> ... </require><requirecomment="Reuse ARB_draw_elements_base_vertex"><commandname="glDrawElementsBaseVertex"/><commandname="glDrawRangeElementsBaseVertex"/><commandname="glDrawElementsInstancedBaseVertex"/><commandname="glMultiDrawElementsBaseVertex"/></require><removeprofile="core"comment="Compatibility-only GL 1.0 features removed from GL 3.2"><commandname="glNewList"/><commandname="glEndList"/><commandname="glCallList"/><commandname="glCallLists"/><commandname="glDeleteLists"/> ... </remove><removeprofile="core"comment="Compatibility-only GL 1.1 features removed from GL 3.2"><enumname="GL_QUADS"/><enumname="GL_POLYGON"/> ... </remove> ... </feature><featureapi="gl"name="GL_VERSION_3_3"number="3.3">...</feature><featureapi="gl"name="GL_VERSION_4_0"number="4.0">...</feature><featureapi="gl"name="GL_VERSION_4_1"number="4.1">...</feature><featureapi="gl"name="GL_VERSION_4_2"number="4.2">...</feature><featureapi="gl"name="GL_VERSION_4_3"number="4.3">...</feature><featureapi="gl"name="GL_VERSION_4_4"number="4.4">...</feature><featureapi="gl"name="GL_VERSION_4_5"number="4.5">...</feature><featureapi="gl"name="GL_VERSION_4_6"number="4.6">...</feature><!-- There will also be feature blocks for gles --><!-- Extension definitions are similar to features. The numer of extensions gathered here is staggering, but they can be filtered on the ``supported`` field to make it easier to handle. --><extensions><extensionname="GL_EXT_debug_label"supported="gl|glcore|gles2"><require><enumname="GL_PROGRAM_PIPELINE_OBJECT_EXT"/><enumname="GL_PROGRAM_OBJECT_EXT"/><enumname="GL_SHADER_OBJECT_EXT"/><enumname="GL_BUFFER_OBJECT_EXT"/><enumname="GL_QUERY_OBJECT_EXT"/><enumname="GL_VERTEX_ARRAY_OBJECT_EXT"/><commandname="glLabelObjectEXT"/><commandname="glGetObjectLabelEXT"/></require><requirecomment="Depends on OpenGL ES 3.0"><enumname="GL_SAMPLER"/><enumname="GL_TRANSFORM_FEEDBACK"/></require></extension><extensionname="GL_EXT_debug_marker"supported="gl|glcore|gles1|gles2"><require><commandname="glInsertEventMarkerEXT"/><commandname="glPushGroupMarkerEXT"/><commandname="glPopGroupMarkerEXT"/></require></extension> ... </extension></registry>
- 项目
标签: