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
glGetfunctions (and those similar in nature) are split into multiple functions per output-requested. ie:glGetIntegerv(GL_ACTIVE_TEXTURE, ...)vsget_active_texture(). - otherwise, inputs of
glEnumare 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§
- Buffer
Object - wrapper over an OpenGL “Buffer Object” name.
- Framebuffer
Object - wrapper over an OpenGL “Framebuffer Object” name.
- Program
Object - wrapper over an OpenGL “Program Object” name.
- Renderbuffer
Object - wrapper over an OpenGL “Renderbuffer Object” name.
- Sampler
Object - wrapper over an OpenGL “Sampler Object” name.
- Shader
Object - wrapper over an OpenGL “Shader Object” name.
- Texture
Object - wrapper over an OpenGL “Texture Object” name.
- Uniform
Location - location of a uniform, for type safety.
- Vertex
Array Object - wrapper over an OpenGL “Vertex Array Object” name.
Enums§
- Bind
Buffer Target - Bind
Texture Target - Blend
- Buffer
Bit - Buffer
Data Usage - Draw
Primitives - Framebuffer
Attachment - Framebuffer
Status Type - Framebuffer
Target - GlError
- Pixel
Store Names - Sampler
Parameter Name - Shader
Type - TexImage1D
Target - TexImage2D
Target - TexImage3D
Target - TexImage
Data Format - TexImage
Data Type - TexImage
Inner Format - TexParameter
Border Color - TexParameter
Compare Func - TexParameter
Compare Mode - TexParameter
MagFilter - TexParameter
MinFilter - TexParameter
Name - TexParameter
Swizzle - TexParameter
Target - TexParameter
Wrap - Uniform
Types - Vertex
Attrib Pointer Type
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,
Noneis returned. seecrate::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()