Skip to main content

Crate lykoi_gl

Crate lykoi_gl 

Source
Expand description

§lykoi_gl

this crate provides a stupid simple, mostly type safe, not-at-all-idiomatic, incomplete wrapper over some vague version of OpenGL.

importantly, this has an api that is as close to the C api as reasonable, though multiple concessions were made in the name of “safety”. namely:

  • the glGet functions (and those similar in nature) are split into multiple functions per output-requested. ie: glGetIntegerv(GL_ACTIVE_TEXTURE, ...) vs get_active_texture().
  • otherwise, inputs of glEnum are represented with Rust enums.
  • others?

all functions are themselves thin wrappers over bindings provided by the gl crate, re-exported via raw.

10% sure there is a vulnerability somewhere. I have no idea what I’m doing…

good luck.

Re-exports§

pub use gl as raw;

Structs§

BufferObject
wrapper over an OpenGL “Buffer Object” name.
FramebufferObject
wrapper over an OpenGL “Framebuffer Object” name.
ProgramObject
wrapper over an OpenGL “Program Object” name.
RenderbufferObject
wrapper over an OpenGL “Renderbuffer Object” name.
SamplerObject
wrapper over an OpenGL “Sampler Object” name.
ShaderObject
wrapper over an OpenGL “Shader Object” name.
TextureObject
wrapper over an OpenGL “Texture Object” name.
UniformLocation
location of a uniform, for type safety.
VertexArrayObject
wrapper over an OpenGL “Vertex Array Object” name.

Enums§

BindBufferTarget
BindTextureTarget
Blend
BufferBit
BufferDataUsage
DrawPrimitives
FramebufferAttachment
FramebufferStatusType
FramebufferTarget
GlError
PixelStoreNames
SamplerParameterName
ShaderType
TexImage1DTarget
TexImage2DTarget
TexImage3DTarget
TexImageDataFormat
TexImageDataType
TexImageInnerFormat
TexParameterBorderColor
TexParameterCompareFunc
TexParameterCompareMode
TexParameterMagFilter
TexParameterMinFilter
TexParameterName
TexParameterSwizzle
TexParameterTarget
TexParameterWrap
UniformTypes
VertexAttribPointerType

Functions§

active_texture
glActiveTexture()
attach_shader
glAttachShader()
bind_buffer
bind_framebuffer
glBindFramebuffer()
bind_renderbuffer
glBindRenderbuffer()
bind_sampler
bind_texture
glBindTexture()
bind_vertex_array
glBindVertexArray()
blend_color
glBlendColor()
blend_func
glBlendFunc()
blend_func_separate
glBlendFuncSeparate()
buffer_data
check_framebuffer_status
clear
glClear()
clear_color
glClearColor()
compile_shader
glCompileShader()
create_program
glCreateProgram()
create_shader
glCreateShader()
delete_buffers
delete_framebuffers
https://docs.gl/gl3/glDeleteFramebuffers
delete_program
glDeleteProgram()
delete_renderbuffers
glDeleteRenderbuffers()
delete_samplers
delete_shader
glDeleteShader()
delete_textures
glDeleteTextures()
delete_vertex_arrays
glDeleteVertexArrays()
disable_blend
glDisable(GL_BLEND)
disable_color_logic_op
glDisable(GL_COLOR_LOGIC_OP)
disable_cull_face
glDisable(GL_CULL_FACE)
disable_depth_clamp
glDisable(GL_DEPTH_CLAMP)
disable_depth_test
glDisable(GL_DEPTH_TEST)
disable_dither
glDisable(GL_DITHER)
disable_framebuffer_srgb
glDisable(GL_FRAMEBUFFER_SRGB)
disable_line_smooth
glDisable(GL_LINE_SMOOTH)
disable_multisample
glDisable(GL_BLEND)
disable_polygon_offset_fill
glDisable(GL_POLYGON_OFFSET_FILL)
disable_polygon_offset_line
glDisable(GL_POLYGON_OFFSET_LINE)
disable_polygon_offset_point
glDisable(GL_POLYGON_OFFSET_POINT)
disable_polygon_smooth
glDisable(GL_POLYGON_SMOOTH)
disable_primitive_restart
glDisable(GL_PRIMITIVE_RESTART)
disable_program_point_size
glDisable(GL_PROGRAM_POINT_SIZE)
disable_sample_alpha_to_coverage
glDisable(GL_SAMPLE_ALPHA_TO_COVERAGE)
disable_sample_alpha_to_one
glDisable(GL_SAMPLE_ALPHA_TO_ONE)
disable_sample_coverage
glDisable(GL_SAMPLE_COVERAGE)
disable_scissor_test
glDisable(GL_SCISSOR_TEST)
disable_stencil_test
glDisable(GL_STENCIL_TEST)
disable_texture_cube_map_seamless
glDisable(GL_TEXTURE_CUBE_MAP_SEAMLESS)
draw_arrays
glDrawArrays()
enable_blend
glEnable(GL_BLEND)
enable_color_logic_op
glEnable(GL_COLOR_LOGIC_OP)
enable_cull_face
glEnable(GL_CULL_FACE)
enable_depth_clamp
glEnable(GL_DEPTH_CLAMP)
enable_depth_test
glEnable(GL_DEPTH_TEST)
enable_dither
glEnable(GL_DITHER)
enable_framebuffer_srgb
glEnable(GL_FRAMEBUFFER_SRGB)
enable_line_smooth
glEnable(GL_LINE_SMOOTH)
enable_multisample
glEnable(GL_BLEND)
enable_polygon_offset_fill
glEnable(GL_POLYGON_OFFSET_FILL)
enable_polygon_offset_line
glEnable(GL_POLYGON_OFFSET_LINE)
enable_polygon_offset_point
glEnable(GL_POLYGON_OFFSET_POINT)
enable_polygon_smooth
glEnable(GL_POLYGON_SMOOTH)
enable_primitive_restart
glEnable(GL_PRIMITIVE_RESTART)
enable_program_point_size
glEnable(GL_PROGRAM_POINT_SIZE)
enable_sample_alpha_to_coverage
glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE)
enable_sample_alpha_to_one
glEnable(GL_SAMPLE_ALPHA_TO_ONE)
enable_sample_coverage
glEnable(GL_SAMPLE_COVERAGE)
enable_scissor_test
glEnable(GL_SCISSOR_TEST)
enable_stencil_test
glEnable(GL_STENCIL_TEST)
enable_texture_cube_map_seamless
glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS)
enable_vertex_attrib_array
framebuffer_renderbuffer
glFramebufferRenderbuffer()
framebuffer_texture_1d
glFramebufferTexture1D()
framebuffer_texture_2d
glFramebufferTexture2D()
gen_buffers
gen_framebuffers
https://docs.gl/gl3/glGenFramebuffers
gen_renderbuffers
glGenRenderbuffers()
gen_samplers
gen_textures
glGenTextures()
gen_vertex_arrays
glGenVertexArrays()
get_active_texture
current active texture unit.
get_active_uniform
glGetActiveUniform()
get_aliased_line_width_range
range of widths supported for aliased lines.
get_array_buffer_binding
currently bound buffer handle. if no buffer is bound, None is returned. see crate::BufferObject::handle().
get_blend
whether blending is enabled.
get_blend_color
the blend color’s red, green, blue, and alpha component values.
get_error
glGetError()
get_max_array_texture_layers
maximum number of layers allowed in an array texture. will be at least 256.
get_max_color_attachments
maximum number of color attachments in a framebuffer object. will be at least 4.
get_max_combined_texture_image_units
maximum supported texture units. will be at least 48.
get_max_cube_map_texture_size
rough estimate of the largest cubemap texture GL can handle. will be at least 1024.
get_max_renderbuffer_size
largest size of renderbuffer GL can handle.
get_max_texture_size
rough estimate of the largest texture GL can handle. will be at least 1024.
get_program_active_uniforms
glGetProgramiv(_, GL_ACTIVE_UNIFORMS, ...)
get_program_delete_status
glGetProgramiv(_, GL_DELETE_STATUS, ...)
get_program_info_log
glGetProgramInfoLog()
get_program_link_status
glGetProgramiv(_, GL_LINK_STATUS, ...)
get_shader_compile_status
glGetShaderiv(_, GL_COMPILE_STATUS, ...)
get_shader_delete_status
glGetShaderiv(_, GL_DELETE_STATUS, ...)
get_shader_info_log
glGetShaderInfoLog()
get_shader_info_log_length
glGetShaderiv(_, GL_INFO_LOG_LENGTH, ...)
get_shader_shader_source_length
glGetShaderiv(_, GL_SHADER_SOURCE_LENGTH, ...)
get_shader_shader_type
glGetShaderiv(_, GL_SHADER_TYPE, ...)
get_smooth_line_width_granularity
level of quantization applied to antialiased line widths.
get_smooth_line_width_range
range of widths supported for antialiased lines.
get_tex_parameter_base_level
glGetTexParameteriv(_, GL_TEXTURE_BASE_LEVEL, ...)
get_tex_parameter_compare_func
glGetTexParameteriv(_, GL_TEXTURE_COMPARE_FUNC, ...)
get_tex_parameter_compare_mode
glGetTexParameteriv(_, GL_TEXTURE_COMPARE_MODE, ...)
get_tex_parameter_lod_bias
glGetTexParameterfv(_, GL_TEXTURE_LOD_BIAS, ...)
get_tex_parameter_mag_filter
glGetTexParameteriv(_, GL_TEXTURE_MAG_FILTER, ...)
get_tex_parameter_max_lod
glGetTexParameterfv(_, GL_TEXTURE_MAX_LOD, ...)
get_tex_parameter_min_filter
glGetTexParameteriv(_, GL_TEXTURE_MIN_FILTER, ...)
get_tex_parameter_min_lod
glGetTexParameterfv(_, GL_TEXTURE_MIN_LOD, ...)
get_tex_parameter_swizzle_a
glGetTexParameteriv(_, GL_TEXTURE_SWIZZLE_A, ...)
get_tex_parameter_swizzle_b
glGetTexParameteriv(_, GL_TEXTURE_SWIZZLE_B, ...)
get_tex_parameter_swizzle_g
glGetTexParameteriv(_, GL_TEXTURE_SWIZZLE_G, ...)
get_tex_parameter_swizzle_r
glGetTexParameteriv(_, GL_TEXTURE_SWIZZLE_R, ...)
get_tex_parameter_swizzle_rgba
glGetTexParameteriv(_, GL_TEXTURE_SWIZZLE_RGBA, ...)
get_tex_parameter_wrap_r
glGetTexParameteriv(_, GL_TEXTURE_WRAP_R, ...)
get_tex_parameter_wrap_s
glGetTexParameteriv(_, GL_TEXTURE_WRAP_S, ...)
get_tex_parameter_wrap_t
glGetTexParameteriv(_, GL_TEXTURE_WRAP_T, ...)
get_uniform_location
is_buffer
is_enabled_blend
glIsEnabled(GL_BLEND)
is_enabled_color_logic_op
glIsEnabled(GL_COLOR_LOGIC_OP)
is_enabled_cull_face
glIsEnabled(GL_CULL_FACE)
is_enabled_depth_clamp
glIsEnabled(GL_DEPTH_CLAMP)
is_enabled_depth_test
glIsEnabled(GL_DEPTH_TEST)
is_enabled_dither
glIsEnabled(GL_DITHER)
is_enabled_framebuffer_srgb
glIsEnabled(GL_FRAMEBUFFER_SRGB)
is_enabled_line_smooth
glIsEnabled(GL_LINE_SMOOTH)
is_enabled_multisample
glIsEnabled(GL_MULTISAMPLE)
is_enabled_polygon_offset_fill
glIsEnabled(GL_POLYGON_OFFSET_FILL)
is_enabled_polygon_offset_line
glIsEnabled(GL_POLYGON_OFFSET_LINE)
is_enabled_polygon_offset_point
glIsEnabled(GL_POLYGON_OFFSET_POINT)
is_enabled_polygon_smooth
glIsEnabled(GL_POLYGON_SMOOTH)
is_enabled_primitive_restart
glIsEnabled(GL_PRIMITIVE_RESTART)
is_enabled_program_point_size
glIsEnabled(GL_PROGRAM_POINT_SIZE)
is_enabled_sample_alpha_to_coverage
glIsEnabled(GL_SAMPLE_ALPHA_TO_COVERAGE)
is_enabled_sample_alpha_to_one
glIsEnabled(GL_SAMPLE_ALPHA_TO_ONE)
is_enabled_sample_coverage
glIsEnabled(GL_SAMPLE_COVERAGE)
is_enabled_scissor_test
glIsEnabled(GL_SCISSOR_TEST)
is_enabled_stencil_test
glIsEnabled(GL_STENCIL_TEST)
is_enabled_texture_cube_map_seamless
glIsEnabled(GL_TEXTURE_CUBE_MAP_SEAMLESS)
is_framebuffer
glIsFramebuffer()
is_program
glIsProgram()
is_renderbuffer
glIsRenderbuffer()
is_sampler
is_shader
glIsShader()
is_texture
glIsTexture()
is_vertex_array
glIsVertexArray()
link_program
glLinkProgram()
pixel_store_f⚠
pixel_store_i⚠
renderbuffer_storage
glRenderbufferStorage()
sampler_parameter_f⚠
sampler_parameter_fv⚠
sampler_parameter_i⚠
sampler_parameter_i_iv⚠
sampler_parameter_i_uiv⚠
sampler_parameter_iv⚠
shader_source
glShaderSource()
tex_image_1d
glTexImage1D()
tex_image_2d
glTexImage2D()
tex_image_3d
glTexImage3D()
tex_parameter_base_level
glTexParameteri(_, GL_TEXTURE_BASE_LEVEL, ...)
tex_parameter_border_color
glTexParameterIiv(_, GL_TEXTURE_BORDER_COLOR, ...)
tex_parameter_compare_func
glTexParameteri(_, GL_TEXTURE_COMPARE_FUNC, ...)
tex_parameter_compare_mode
glTexParameteri(_, GL_TEXTURE_COMPARE_MODE, ...)
tex_parameter_f⚠
tex_parameter_fv⚠
tex_parameter_i⚠
tex_parameter_i_iv⚠
tex_parameter_i_uiv⚠
tex_parameter_iv⚠
tex_parameter_lod_bias
glTexParameterf(_, GL_TEXTURE_LOD_BIAS, ...)
tex_parameter_mag_filter
glTexParameteri(_, GL_TEXTURE_MAG_FILTER, ...)
tex_parameter_max_lod
glTexParameterf(_, GL_TEXTURE_MAX_LOD, ...)
tex_parameter_min_filter
glTexParameteri(_, GL_TEXTURE_MIN_FILTER, ...)
tex_parameter_min_lod
glTexParameterf(_, GL_TEXTURE_MIN_LOD, ...)
tex_parameter_swizzle_a
glTexParameteri(_, GL_TEXTURE_SWIZZLE_A, ...)
tex_parameter_swizzle_b
glTexParameteri(_, GL_TEXTURE_SWIZZLE_B, ...)
tex_parameter_swizzle_g
glTexParameteri(_, GL_TEXTURE_SWIZZLE_G, ...)
tex_parameter_swizzle_r
glTexParameteri(_, GL_TEXTURE_SWIZZLE_R, ...)
tex_parameter_swizzle_rgba
glTexParameteri(_, GL_TEXTURE_SWIZZLE_RGBA, ...)
tex_parameter_wrap_r
glTexParameteri(_, GL_TEXTURE_WRAP_R, ...)
tex_parameter_wrap_s
glTexParameteri(_, GL_TEXTURE_WRAP_S, ...)
tex_parameter_wrap_t
glTexParameteri(_, GL_TEXTURE_WRAP_T, ...)
unbind_buffer
unbind_framebuffer
glBindFramebuffer()
unbind_renderbuffer
glBindRenderbuffer()
unbind_sampler
unbind_texture
glBindTexture(_, 0)
unbind_vertex_array
glBindVertexArray(_, 0)
uniform_1d
uniform_1f
uniform_1i
uniform_2f
uniform_3f
uniform_4f
uniform_matrix_4fv
use_program
glUseProgram()
vertex_attrib_pointer
viewport
glViewport()