glu

glu

glu
Erlang wrapper functions for OpenGL

Standard OpenGL API

This documents the functions as a brief version of the complete OpenGL reference pages.

Types

Target = enum()
InternalFormat = Width = i()
Format = Type = enum()
Level = Base = Max = i()
Data = binary()

glu:build1DMipmapLevels/9 builds a subset of prefiltered one-dimensional texture maps of decreasing resolutions called a mipmap. This is used for the antialiasing of texture mapped primitives.

External documentation.

Types

Target = enum()
InternalFormat = Width = i()
Format = Type = enum()
Data = binary()

glu:build1DMipmaps/6 builds a series of prefiltered one-dimensional texture maps of decreasing resolutions called a mipmap. This is used for the antialiasing of texture mapped primitives.

External documentation.

Types

Target = enum()
InternalFormat = Width = Height = i()
Format = Type = enum()
Level = Base = Max = i()
Data = binary()

glu:build2DMipmapLevels/10 builds a subset of prefiltered two-dimensional texture maps of decreasing resolutions called a mipmap. This is used for the antialiasing of texture mapped primitives.

External documentation.

Types

Target = enum()
InternalFormat = Width = Height = i()
Format = Type = enum()
Data = binary()

glu:build2DMipmaps/7 builds a series of prefiltered two-dimensional texture maps of decreasing resolutions called a mipmap. This is used for the antialiasing of texture-mapped primitives.

External documentation.

Types

Target = enum()
InternalFormat = Width = Height = Depth = i()
Format = Type = enum()
Level = Base = Max = i()
Data = binary()

glu:build3DMipmapLevels/11 builds a subset of prefiltered three-dimensional texture maps of decreasing resolutions called a mipmap. This is used for the antialiasing of texture mapped primitives.

External documentation.

Types

Target = enum()
InternalFormat = Width = Height = Depth = i()
Format = Type = enum()
Data = binary()

glu:build3DMipmaps/8 builds a series of prefiltered three-dimensional texture maps of decreasing resolutions called a mipmap. This is used for the antialiasing of texture-mapped primitives.

External documentation.

glu:cylinder/6 draws a cylinder oriented along the z axis. The base of the cylinder is placed at z = 0 and the top at z=height. Like a sphere, a cylinder is subdivided around the z axis into slices and along the z axis into stacks.

External documentation.

glu:disk/5 renders a disk on the z = 0 plane. The disk has a radius of Outer and contains a concentric circular hole with a radius of Inner. If Inner is 0, then no hole is generated. The disk is subdivided around the z axis into slices (like pizza slices) and also about the z axis into rings (as specified by Slices and Loops, respectively).

External documentation.

Types

EyeX = EyeY = EyeZ = CenterX = CenterY = CenterZ = UpX = UpY = UpZ = f()

glu:lookAt/9 creates a viewing matrix derived from an eye point, a reference point indicating the center of the scene, and an UP vector.

External documentation.

glu:newQuadric/0 creates and returns a pointer to a new quadrics object. This object must be referred to when calling quadrics rendering and control functions. A return value of 0 means that there is not enough memory to allocate the object.

External documentation.

Types

Quad = i()
Inner = Outer = f()
Slices = Loops = i()
Start = Sweep = f()

glu:partialDisk/7 renders a partial disk on the z=0 plane. A partial disk is similar to a full disk, except that only the subset of the disk from Start through Start + Sweep is included (where 0 degrees is along the +f2yf axis, 90 degrees along the +x axis, 180 degrees along the -y axis, and 270 degrees along the -x axis).

External documentation.

glu:perspective/4 specifies a viewing frustum into the world coordinate system. In general, the aspect ratio in glu:perspective/4 should match the aspect ratio of the associated viewport. For example, aspect=2.0 means the viewer's angle of view is twice as wide in x as it is in y. If the viewport is twice as wide as it is tall, it displays the image without distortion.

External documentation.

glu:pickMatrix/5 creates a projection matrix that can be used to restrict drawing to a small region of the viewport. This is typically useful to determine what objects are being drawn near the cursor. Use glu:pickMatrix/5 to restrict drawing to a small region around the cursor. Then, enter selection mode (with gl:renderMode/1) and rerender the scene. All primitives that would have been drawn near the cursor are identified and stored in the selection buffer.

External documentation.

Types

ObjX = ObjY = ObjZ = f()
Model = Proj = matrix()
View = {i(), i(), i(), i()}

glu:project/6 transforms the specified object coordinates into window coordinates using Model, Proj, and View. The result is stored in WinX, WinY, and WinZ. A return value of ?GLU_TRUE indicates success, a return value of ?GLU_FALSE indicates failure.

External documentation.

glu:quadricTexture/2 specifies if texture coordinates should be generated for quadrics rendered with Quad. If the value of Texture is ?GLU_TRUE, then texture coordinates are generated, and if Texture is ?GLU_FALSE, they are not. The initial value is ?GLU_FALSE.

External documentation.

Types

Format = enum()
WIn = HIn = i()
TypeIn = enum()
DataIn = binary()
WOut = HOut = i()
TypeOut = enum()
DataOut = mem()

glu:scaleImage/9 scales a pixel image using the appropriate pixel store modes to unpack data from the source image and pack data into the destination image.

External documentation.

glu:sphere/4 draws a sphere of the given radius centered around the origin. The sphere is subdivided around the z axis into slices and along the z axis into stacks (similar to lines of longitude and latitude).

External documentation.

Types

Normal = Vs = vertex()
Triangles = [integer()]
VertexPos = binary()

Triangulates a polygon, the polygon is specified by a Normal and Vs a list of vertex positions.

The function returns a list of indices of the vertices and a binary (64bit native float) containing an array of vertex positions, it starts with the vertices in Vs and may contain newly created vertices in the end.

Types

WinX = WinY = WinZ = ClipW = f()
Model = Proj = matrix()
View = {i(), i(), i(), i()}
NearVal = FarVal = f()

glu:unProject/6 maps the specified window coordinates into object coordinates using Model, Proj, and View. The result is stored in ObjX, ObjY, and ObjZ. A return value of ?GLU_TRUE indicates success; a return value of ?GLU_FALSE indicates failure.

External documentation.