Crate glium [] [src]

Easy-to-use, high-level, OpenGL3+ wrapper.

Initialization

This library defines the DisplayBuild trait which is implemented on glium::glutin::WindowBuilder.

Initialization is done by creating a WindowBuilder and calling build_glium.

extern crate glium;

fn main() {
    use glium::DisplayBuild;

    let display = glium::glutin::WindowBuilder::new()
        .with_dimensions(1024, 768)
        .with_title(format!("Hello world"))
        .build_glium()
        .unwrap();
}

The display object is the most important object of this library and is used when you build buffers, textures, etc. and when you draw. You can clone it and pass it around. However it doesn't implement the Send and Sync traits, meaning that you can't pass it to another thread.

The display has ownership of the window, and also provides some methods related to domains such as events handling.

Overview

OpenGL is similar to a drawing software: you draw something, then draw over it, then over it again, etc. until you are satisfied of the result.

Once you have a display, you can call let mut frame = display.draw(); to start drawing. This frame object implements the Surface trait and provides some functions such as clear_color, but also allows you to draw with the rendering pipeline.

In order to draw something, you will need to pass:

Once you have finished drawing, you can call frame.finish() to swap buffers and present the result to the user.

OpenGL equivalents in glium

Reexports

pub use draw_parameters::{BlendingFunction, LinearBlendingFactor, BackfaceCullingMode};
pub use draw_parameters::{DepthTest, PolygonMode, DrawParameters, StencilTest, StencilOperation};
pub use draw_parameters::{Smooth};
pub use vertex::{Vertex};
pub use program::{ProgramCreationError};
pub use program::ProgramCreationError::{CompilationError, LinkingError, ShaderTypeNotSupported};
pub use texture::{Texture, Texture2d};

Modules

backend

The backend module allows one to link between glium and the OpenGL context..

buffer

A buffer is a memory location accessible to the video card.

debug
draw_parameters

Describes miscellaneous parameters to be used when drawing.

framebuffer

Framebuffers allow you to customize the color, depth and stencil buffers you will draw on.

glutin
index

In order to draw, you need to provide a source of indices which is used to link the vertices together into primitives.

pixel_buffer

Pixel buffers are buffers that contain two-dimensional texture data.

program
texture

A texture is an image loaded in video memory, which can be sampled in your shaders.

uniforms

A uniform is a global variable in your program. In order to draw something, you will need to give glium the values of all your uniforms. Objects that implement the Uniform trait are here to do that.

vertex

Contains everything related to vertex sources.

Macros

assert_no_gl_error!

Calls the assert_no_error method on a glium::Display instance with file and line number information.

implement_buffer_content!

Implements the glium::buffer::Content trait for the given type.

implement_uniform_block!

Implements the glium::uniforms::UniformBlock trait for the given type.

implement_vertex!

Implements the glium::vertex::Vertex trait for the given type.

program!

Builds a program depending on the GLSL version supported by the backend.

uniform!

Returns an implementation-defined type which implements the Uniform trait.

Structs

BlitTarget

Area of a surface in pixels. Similar to a Rect except that dimensions can be negative.

Frame

Implementation of Surface, targeting the default framebuffer.

IndexBuffer

A list of indices loaded in the graphics card's memory.

LinearSyncFence

Prototype for a SyncFence.

Program

A combination of shaders linked together.

Rect

Area of a surface in pixels.

SyncFence

Provides a way to wait for a server-side operation to be finished.

Version

Describes a version.

VertexBuffer

A list of vertices loaded in the graphics card's memory.

Enums

Api

Describes an OpenGL-related API.

DrawError

Error that can happen while drawing.

GliumCreationError

Error that can happen while creating a glium display.

Handle

Handle to a shader or a program.

SwapBuffersError

Error that can happen when swapping buffers.

Traits

CapabilitiesSource

Trait for objects that describe the capabilities of an OpenGL backend.

DisplayBuild

Objects that can build a facade object.

GlObject

Trait for objects that are OpenGL objects.

Surface

Object that can be drawn upon.

Functions

get_supported_glsl_version

Given an API version, this function returns the GLSL version that the implementation is required to support.

Type Definitions

Display

The main object of this library. Controls the whole display.

VertexFormat

Describes the layout of each vertex in a vertex buffer.