__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.200: ~ $
'''OpenGL extension ARB.gl_spirv

This module customises the behaviour of the 
OpenGL.raw.GL.ARB.gl_spirv to provide a more 
Python-friendly API

Overview (from the spec)
	
	This is version 100 of the GL_ARB_gl_spirv extension.
	
	This extension does two things:
	
	1. Allows a SPIR-V module to be specified as containing a programmable
	   shader stage, rather than using GLSL, whatever the source language
	   was used to create the SPIR-V module.
	
	2. Modifies GLSL to be a source language for creating SPIR-V modules
	   for OpenGL consumption. Such GLSL can be used to create such SPIR-V
	   modules, outside of the OpenGL runtime.
	
	Enabling GLSL SPIR-V Features
	-----------------------------
	
	This extension is not enabled with a #extension as other extensions are.
	It is also not enabled through use of a profile or #version.  The intended
	level of GLSL features comes from the traditional use of #version, profile,
	and #extension.
	
	Instead, use of this extension is an effect of using a GLSL front-end in a
	mode that has it generate SPIR-V for OpenGL.  Such tool use is outside the
	scope of using the OpenGL API and outside the definition of GLSL and this
	extension. See the documentation of the compiler to see how to request
	generation of SPIR-V for OpenGL.
	
	When a front-end is used to accept the GLSL features in this extension, it
	must error check and reject shaders not adhering to this specification, and
	accept those that do.  Implementation-dependent maximums and capabilities
	are supplied to, or part of, the front-end, so it can do error checking
	against them.
	
	A shader can query the level of GLSL SPIR-V support available, using the
	predefined
	
	    #define GL_SPIRV 100
	
	This allows shader code to say, for example,
	
	    #ifdef GL_SPIRV
	        layout(constant_id = 11) const int count = 4;
	        #if GL_SPIRV > 100
	            ...
	        #endif
	    #else
	        const int count = 6;
	    #endif
	
	SPIR-V Modules
	--------------
	
	An entire stage is held in a single SPIR-V module.  The SPIR-V model is
	that multiple (e.g., GLSL) compilation units forming a single stage
	in a high-level language are all compiled and linked together to form a
	single entry point (and its call tree) in a SPIR-V module.  This would be
	done prior to using the OpenGL API to create a program object containing the
	stage.
	
	The OpenGL API expects the SPIR-V module to have already been validated,
	and can return an error if it discovers anything invalid in
	the module.  An invalid SPIR-V module is allowed to result in undefined
	behavior.
	
	Specialization Constants
	------------------------
	
	SPIR-V specialization constants, which can be set later by the client API,
	can be declared using "layout(constant_id=...)". For example, to make a
	specialization constant with a default value of 12:
	
	    layout(constant_id = 17) const int arraySize = 12;
	
	Above, "17" is the ID by which the API or other tools can later refer to
	this specific specialization constant.  The API or an intermediate tool can
	then change its value to another constant integer before it is fully
	lowered to executable code.  If it is never changed before final lowering,
	it will retain the value of 12.
	
	Specialization constants have const semantics, except they don't fold.
	Hence, an array can be declared with 'arraySize' from above:
	
	    vec4 data[arraySize];  // legal, even though arraySize might change
	
	Specialization constants can be in expressions:
	
	    vec4 data2[arraySize + 2];
	
	This will make data2 be sized by 2 more than whatever constant value
	'arraySize' has when it is time to lower the shader to executable code.
	
	An expression formed with specialization constants also behaves in the
	shader like a specialization constant, not a like a constant.
	
	    arraySize + 2       // a specialization constant (with no constant_id)
	
	Such expressions can be used in the same places as a constant.
	
	The constant_id can only be applied to a scalar *int*, a scalar *float*
	or a scalar *bool*.
	
	Only basic operators and constructors can be applied to a specialization
	constant and still result in a specialization constant:
	
	    layout(constant_id = 17) const int arraySize = 12;
	    sin(float(arraySize));    // result is not a specialization constant
	
	While SPIR-V specialization constants are only for scalars, a vector
	can be made by operations on scalars:
	
	    layout(constant_id = 18) const int scX = 1;
	    layout(constant_id = 19) const int scZ = 1;
	    const vec3 scVec = vec3(scX, 1, scZ);  // partially specialized vector
	
	A built-in variable can have a 'constant_id' attached to it:
	
	    layout(constant_id = 18) gl_MaxImageUnits;
	
	This makes it behave as a specialization constant.  It is not a full
	redeclaration; all other characteristics are left intact from the
	original built-in declaration.
	
	The built-in vector gl_WorkGroupSize can be specialized using special
	layout local_size_{xyz}_id's applied to the "in" qualifier.  For example:
	
	    layout(local_size_x_id = 18, local_size_z_id = 19) in;
	
	This leaves gl_WorkGroupSize.y as a non-specialization constant, with
	gl_WorkGroupSize being a partially specialized vector.  Its x and z
	components can be later specialized using the ID's 18 and 19.
	
	gl_FragColor
	------------
	
	The fragment-stage built-in gl_FragColor, which implies a broadcast to all
	outputs, is not present in SPIR-V. Shaders where writing to gl_FragColor
	is allowed can still write to it, but it only means to write to an output:
	 - of the same type as gl_FragColor
	 - decorated with location 0
	 - not decorated as a built-in variable.
	There is no implicit broadcast.
	
	Mapping to SPIR-V
	-----------------
	
	For informational purposes (non-specification), the following is an
	expected way for an implementation to map GLSL constructs to SPIR-V
	constructs:
	
	Mapping of Storage Classes:
	
	  uniform sampler2D...;        -> UniformConstant
	  uniform variable (non-block) -> UniformConstant
	  uniform blockN { ... } ...;  -> Uniform, with Block decoration
	  in / out variable            -> Input/Output, possibly with block (below)
	  in / out block...            -> Input/Output, with Block decoration
	  buffer  blockN { ... } ...;  -> Uniform, with BufferBlock decoration
	  ... uniform atomic_uint ...  -> AtomicCounter
	  shared                       -> Workgroup
	  <normal global>              -> Private
	
	Mapping of input/output blocks or variables is the same for all versions
	of GLSL. To the extent variables or members are available in a
	version and a stage, its location is as follows:
	
	  These are mapped to SPIR-V individual variables, with similarly spelled
	  built-in decorations (except as noted):
	
	    General:
	
	        in gl_VertexID
	        in gl_InstanceID
	        in gl_InvocationID
	        in gl_PatchVerticesIn      (PatchVertices)
	        in gl_PrimitiveIDIn        (PrimitiveID)
	        in/out gl_PrimitiveID      (in/out based only on storage qualifier)
	        in gl_TessCoord
	
	        in/out gl_Layer
	        in/out gl_ViewportIndex
	
	        patch in/out gl_TessLevelOuter  (uses Patch decoration)
	        patch in/out gl_TessLevelInner  (uses Patch decoration)
	
	    Compute stage only:
	
	        in gl_NumWorkGroups
	        in gl_WorkGroupSize
	        in gl_WorkGroupID
	        in gl_LocalInvocationID
	        in gl_GlobalInvocationID
	        in gl_LocalInvocationIndex
	
	    Fragment stage only:
	
	        in gl_FragCoord
	        in gl_FrontFacing
	        in gl_ClipDistance
	        in gl_CullDistance
	        in gl_PointCoord
	        in gl_SampleID
	        in gl_SamplePosition
	        in gl_HelperInvocation
	        out gl_FragDepth
	        in gl_SampleMaskIn        (SampleMask)
	        out gl_SampleMask         (in/out based only on storage qualifier)
	
	  These are mapped to SPIR-V blocks, as implied by the pseudo code, with
	  the members decorated with similarly spelled built-in decorations:
	
	    Non-fragment stage:
	
	        in/out gl_PerVertex {  // some subset of these members will be used
	            gl_Position
	            gl_PointSize
	            gl_ClipDistance
	            gl_CullDistance
	        }                      // name of block is for debug only
	
	  There is at most one input and one output block per stage in SPIR-V.
	  The subset and order of members will match between stages sharing an
	  interface.
	
	Mapping of precise:
	
	  precise -> NoContraction
	
	Mapping of atomic_uint /offset/ layout qualifier
	
	  offset         ->  Offset (decoration)
	
	Mapping of images
	
	  imageLoad()   -> OpImageRead
	  imageStore()  -> OpImageWrite
	  texelFetch()  -> OpImageFetch
	
	  imageAtomicXXX(params, data)  -> %ptr = OpImageTexelPointer params
	                                          OpAtomicXXX %ptr, data
	
	  XXXQueryXXX(combined) -> %image = OpImage combined
	                                    OpXXXQueryXXX %image
	
	Mapping of layouts
	
	  std140/std430  ->  explicit *Offset*, *ArrayStride*, and *MatrixStride*
	                     Decoration on struct members
	  shared/packed  ->  not allowed
	  <default>      ->  not shared, but std140 or std430
	  xfb_offset     ->  *Offset* Decoration on the object or struct member
	  xfb_buffer     ->  *XfbBuffer* Decoration on the object
	  xfb_stride     ->  *XfbStride* Decoration on the object
	  any xfb_*      ->  the *Xfb* Execution Mode is set
	  captured XFB   ->  has both *XfbBuffer* and *Offset*
	  non-captured   ->  lacking *XfbBuffer* or *Offset*
	
	  max_vertices   ->  OutputVertices
	
	Mapping of barriers
	
	  barrier() (compute) -> OpControlBarrier(/*Execution*/Workgroup,
	                                          /*Memory*/Workgroup,
	                                          /*Semantics*/AcquireRelease |
	                                                       WorkgroupMemory)
	
	  barrier() (tess control) -> OpControlBarrier(/*Execution*/Workgroup,
	                                               /*Memory*/Invocation,
	                                               /*Semantics*/None)
	
	  memoryBarrier() -> OpMemoryBarrier(/*Memory*/Device,
	                                     /*Semantics*/AcquireRelease |
	                                                  UniformMemory |
	                                                  WorkgroupMemory |
	                                                  ImageMemory)
	
	  memoryBarrierBuffer() -> OpMemoryBarrier(/*Memory*/Device,
	                                           /*Semantics*/AcquireRelease |
	                                                        UniformMemory)
	
	  memoryBarrierShared() -> OpMemoryBarrier(/*Memory*/Device,
	                                           /*Semantics*/AcquireRelease |
	                                                        WorkgroupMemory)
	
	  memoryBarrierImage() -> OpMemoryBarrier(/*Memory*/Device,
	                                          /*Semantics*/AcquireRelease |
	                                                       ImageMemory)
	
	  groupMemoryBarrier() -> OpMemoryBarrier(/*Memory*/Workgroup,
	                                          /*Semantics*/AcquireRelease |
	                                                       UniformMemory |
	                                                       WorkgroupMemory |
	                                                       ImageMemory)
	
	Mapping of atomics
	
	  all atomic builtin functions -> Semantics = None(Relaxed)
	
	  atomicExchange()      -> OpAtomicExchange
	  imageAtomicExchange() -> OpAtomicExchange
	  atomicCompSwap()      -> OpAtomicCompareExchange
	  imageAtomicCompSwap() -> OpAtomicCompareExchange
	  NA                    -> OpAtomicCompareExchangeWeak
	
	  atomicCounterIncrement -> OpAtomicIIncrement
	  atomicCounterDecrement -> OpAtomicIDecrement (with post decrement)
	  atomicCounter          -> OpAtomicLoad
	
	Mapping of uniform initializers
	
	  Using the OpVariable initializer logic, but only from a constant
	  instruction (not a global one).
	
	Mapping of other instructions
	
	  %     -> OpUMod/OpSMod
	  mod() -> OpFMod
	  NA    -> OpSRem/OpFRem
	
	  pack/unpack (conversion)    -> pack/unpack in GLSL extended instructions
	  pack/unpack (no conversion) -> OpBitcast
	
	Differences Relative to Other Specifications
	--------------------------------------------
	
	The following summarizes the set of differences to existing specifications.
	
	Additional use of existing SPIR-V features, relative to Vulkan:
	  + The *UniformConstant* Storage Class can be used on individual
	    variables at global scope. (That is, uniforms don't have to be in a
	    block, unless they are built-in members that are in block in GLSL
	    version 4.5.)
	  + *AtomicCounter* Storage Class can use the *Offset* decoration
	  + OriginLowerLeft
	  + Uniforms support constant initializers.
	
	Corresponding features that GLSL keeps, despite GL_KHR_vulkan_glsl removal:
	  . default uniforms (those not inside a uniform block)
	  . atomic-counter bindings have the /offset/ layout qualifier
	  . special rules for locations for input doubles in the vertex shader
	  . origin_lower_left
	
	Addition of features to GLSL:
	  + specialization constants, as per GL_KHR_vulkan_glsl
	  + #define GL_SPIRV 100, when compiled for OpenGL and SPIR-V generation
	  + offset can organize members in a different order than declaration order
	
	Non-acceptance of SPIR-V features, relative to Vulkan:
	  - VertexIndex and InstanceIndex built-in decorations cannot be used
	  - Push-constant buffers cannot be used
	  - *DescriptorSet* must always be 0, if present
	  - input targets and input attachments
	  - OpTypeSampler
	
	Corresponding features not added to GLSL that GL_KHR_vulkan_glsl added:
	  . gl_VertexIndex and gl_InstanceIndex
	      (gl_VertexID and gl_InstanceID have same semantics as in GLSL)
	  . push_constant buffers
	  . descriptor sets
	  . input_attachment_index and accessing input targets
	  . shader-combining of textures and samplers
	
	Removal of features from GLSL, as removed by GL_KHR_vulkan_glsl:
	  - subroutines
	  - the already deprecated texturing functions (e.g., texture2D())
	  - the already deprecated noise functions (e.g., noise1())
	  - compatibility profile features
	  - gl_DepthRangeParameters and gl_NumSamples
	  - *shared* and *packed* block layouts
	
	Addition of features to The OpenGL Graphics System:
	  + a command to associate a SPIR-V module with a program (ShaderBinary)
	  + a command to select a SPIR-V entry point and set specialization
	    constants in a SPIR-V module (SpecializeShaderARB)
	  + a new appendix for SPIR-V validation rules, precision, etc.
	
	Changes of system features, relative to Vulkan:
	  . Vulkan uses only one binding point for a resource array, while OpenGL
	    still uses multiple binding points, so binding numbers are counted
	    differently for SPIR-V used in Vulkan and OpenGL
	  . gl_FragColor can be written to, but it won't broadcast, for versions of
	    OpenGL that support gl_FragColor
	  . Vulkan does not allow multi-dimensional arrays of resources like
	    UBOs and SSBOs in its SPIR-V environment spec. SPIR-V supports
	    it and OpenGL already allows this for GLSL shaders. SPIR-V
	    for OpenGL also allows it.
	
	Additions to the SPIR-V specification:
	  + *Offset* can also apply to an object, for transform feedback.
	  + *Offset* can also apply to a default uniform, for atomic_uint offset.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/gl_spirv.txt
'''
from OpenGL import platform, constant, arrays
from OpenGL import extensions, wrapper
import ctypes
from OpenGL.raw.GL import _types, _glgets
from OpenGL.raw.GL.ARB.gl_spirv import *
from OpenGL.raw.GL.ARB.gl_spirv import _EXTENSION_NAME

def glInitGlSpirvARB():
    '''Return boolean indicating whether this extension is available'''
    from OpenGL import extensions
    return extensions.hasGLExtension( _EXTENSION_NAME )


### END AUTOGENERATED SECTION

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
ES2_compatibility.py File 1.92 KB 0644
ES3_1_compatibility.py File 2.13 KB 0644
ES3_2_compatibility.py File 1.46 KB 0644
ES3_compatibility.py File 1.16 KB 0644
__init__.py File 23 B 0644
arrays_of_arrays.py File 3.48 KB 0644
base_instance.py File 2.3 KB 0644
bindless_texture.py File 3.75 KB 0644
blend_func_extended.py File 1.65 KB 0644
buffer_storage.py File 2.06 KB 0644
cl_event.py File 1.11 KB 0644
clear_buffer_object.py File 1.88 KB 0644
clear_texture.py File 2.57 KB 0644
clip_control.py File 3.83 KB 0644
color_buffer_float.py File 2.09 KB 0644
compatibility.py File 751 B 0644
compressed_texture_pixel_storage.py File 2.14 KB 0644
compute_shader.py File 3.01 KB 0644
compute_variable_group_size.py File 1.63 KB 0644
conditional_render_inverted.py File 988 B 0644
conservative_depth.py File 1.53 KB 0644
copy_buffer.py File 1007 B 0644
copy_image.py File 1.56 KB 0644
cull_distance.py File 993 B 0644
debug_output.py File 5 KB 0644
depth_buffer_float.py File 1.73 KB 0644
depth_clamp.py File 2.33 KB 0644
depth_texture.py File 1.35 KB 0644
derivative_control.py File 1.74 KB 0644
direct_state_access.py File 8.59 KB 0644
draw_buffers.py File 1.54 KB 0644
draw_buffers_blend.py File 1.23 KB 0644
draw_elements_base_vertex.py File 4.09 KB 0644
draw_indirect.py File 1.53 KB 0644
draw_instanced.py File 1.87 KB 0644
enhanced_layouts.py File 4.11 KB 0644
explicit_attrib_location.py File 1.2 KB 0644
explicit_uniform_location.py File 1.14 KB 0644
fragment_coord_conventions.py File 3.48 KB 0644
fragment_layer_viewport.py File 1.37 KB 0644
fragment_program.py File 4.88 KB 0644
fragment_program_shadow.py File 1.74 KB 0644
fragment_shader.py File 1.48 KB 0644
fragment_shader_interlock.py File 3.83 KB 0644
framebuffer_no_attachments.py File 3.73 KB 0644
framebuffer_object.py File 16.34 KB 0644
framebuffer_sRGB.py File 2.35 KB 0644
geometry_shader4.py File 2.4 KB 0644
get_program_binary.py File 2.46 KB 0644
get_texture_sub_image.py File 1.23 KB 0644
gl_spirv.py File 15.71 KB 0644
gpu_shader5.py File 4.04 KB 0644
gpu_shader_fp64.py File 5.05 KB 0644
gpu_shader_int64.py File 4.45 KB 0644
half_float_pixel.py File 1.51 KB 0644
half_float_vertex.py File 1.26 KB 0644
imaging.py File 8.31 KB 0644
indirect_parameters.py File 2.08 KB 0644
instanced_arrays.py File 2 KB 0644
internalformat_query.py File 1.49 KB 0644
internalformat_query2.py File 3.23 KB 0644
invalidate_subdata.py File 3.05 KB 0644
map_buffer_alignment.py File 1.03 KB 0644
map_buffer_range.py File 2.05 KB 0644
matrix_palette.py File 2.23 KB 0644
multi_bind.py File 3.62 KB 0644
multi_draw_indirect.py File 1.88 KB 0644
multisample.py File 2.21 KB 0644
multitexture.py File 2.18 KB 0644
occlusion_query.py File 5.09 KB 0644
occlusion_query2.py File 1.03 KB 0644
parallel_shader_compile.py File 1.2 KB 0644
pipeline_statistics_query.py File 1.44 KB 0644
pixel_buffer_object.py File 4.25 KB 0644
point_parameters.py File 3.09 KB 0644
point_sprite.py File 1.67 KB 0644
polygon_offset_clamp.py File 1.36 KB 0644
post_depth_coverage.py File 1.15 KB 0644
program_interface_query.py File 4.12 KB 0644
provoking_vertex.py File 2.02 KB 0644
query_buffer_object.py File 2.21 KB 0644
robust_buffer_access_behavior.py File 1.47 KB 0644
robustness.py File 8.27 KB 0644
robustness_isolation.py File 792 B 0644
sample_locations.py File 2.65 KB 0644
sample_shading.py File 2.06 KB 0644
sampler_objects.py File 3.87 KB 0644
seamless_cube_map.py File 1.84 KB 0644
seamless_cubemap_per_texture.py File 2.2 KB 0644
separate_shader_objects.py File 11.1 KB 0644
shader_atomic_counter_ops.py File 1.29 KB 0644
shader_atomic_counters.py File 2.45 KB 0644
shader_ballot.py File 1.04 KB 0644
shader_bit_encoding.py File 1.06 KB 0644
shader_clock.py File 1.27 KB 0644
shader_draw_parameters.py File 2.32 KB 0644
shader_group_vote.py File 3.27 KB 0644
shader_image_load_store.py File 3.52 KB 0644
shader_image_size.py File 897 B 0644
shader_objects.py File 10.41 KB 0644
shader_precision.py File 1.21 KB 0644
shader_stencil_export.py File 1.47 KB 0644
shader_storage_buffer_object.py File 3.12 KB 0644
shader_subroutine.py File 2.13 KB 0644
shader_texture_image_samples.py File 978 B 0644
shader_texture_lod.py File 4.39 KB 0644
shader_viewport_layer_array.py File 1.79 KB 0644
shading_language_100.py File 1.03 KB 0644
shading_language_420pack.py File 2.48 KB 0644
shading_language_include.py File 2.48 KB 0644
shading_language_packing.py File 1.74 KB 0644
shadow.py File 1.07 KB 0644
shadow_ambient.py File 1.2 KB 0644
sparse_buffer.py File 1.16 KB 0644
sparse_texture.py File 1.8 KB 0644
sparse_texture2.py File 2.14 KB 0644
sparse_texture_clamp.py File 1.38 KB 0644
spirv_extensions.py File 2.04 KB 0644
stencil_texturing.py File 1.09 KB 0644
sync.py File 3.11 KB 0644
tessellation_shader.py File 5.06 KB 0644
texture_barrier.py File 935 B 0644
texture_border_clamp.py File 1.48 KB 0644
texture_buffer_object.py File 2.62 KB 0644
texture_buffer_object_rgb32.py File 1.12 KB 0644
texture_buffer_range.py File 1.39 KB 0644
texture_compression.py File 5.79 KB 0644
texture_compression_bptc.py File 1.68 KB 0644
texture_compression_rgtc.py File 1.71 KB 0644
texture_cube_map.py File 3.45 KB 0644
texture_cube_map_array.py File 2.12 KB 0644
texture_env_add.py File 1.1 KB 0644
texture_env_combine.py File 1.61 KB 0644
texture_env_crossbar.py File 1.17 KB 0644
texture_env_dot3.py File 1.12 KB 0644
texture_filter_anisotropic.py File 2.83 KB 0644
texture_filter_minmax.py File 1.57 KB 0644
texture_float.py File 1.12 KB 0644
texture_gather.py File 1.05 KB 0644
texture_mirror_clamp_to_edge.py File 1.37 KB 0644
texture_mirrored_repeat.py File 1.25 KB 0644
texture_multisample.py File 1.47 KB 0644
texture_non_power_of_two.py File 1.67 KB 0644
texture_query_levels.py File 2.03 KB 0644
texture_query_lod.py File 1015 B 0644
texture_rectangle.py File 2.29 KB 0644
texture_rg.py File 2.2 KB 0644
texture_rgb10_a2ui.py File 1.14 KB 0644
texture_stencil8.py File 1009 B 0644
texture_storage.py File 1.77 KB 0644
texture_storage_multisample.py File 1.58 KB 0644
texture_swizzle.py File 1.79 KB 0644
texture_view.py File 1.93 KB 0644
timer_query.py File 2.31 KB 0644
transform_feedback2.py File 2.53 KB 0644
transform_feedback3.py File 3.71 KB 0644
transform_feedback_instanced.py File 1.4 KB 0644
transform_feedback_overflow_query.py File 1.05 KB 0644
transpose_matrix.py File 1.81 KB 0644
uniform_buffer_object.py File 6.65 KB 0644
vboimplementation.py File 1.35 KB 0644
vertex_array_bgra.py File 3.39 KB 0644
vertex_array_object.py File 1.79 KB 0644
vertex_attrib_64bit.py File 3.66 KB 0644
vertex_attrib_binding.py File 2.19 KB 0644
vertex_blend.py File 2.84 KB 0644
vertex_buffer_object.py File 7.23 KB 0644
vertex_program.py File 8.88 KB 0644
vertex_shader.py File 5.57 KB 0644
vertex_type_10f_11f_11f_rev.py File 1.25 KB 0644
vertex_type_2_10_10_10_rev.py File 2.96 KB 0644
viewport_array.py File 3.16 KB 0644
window_pos.py File 2.29 KB 0644
Filemanager