glu - Erlang wrapper functions for OpenGL
Please see following description for synopsis
glu(3) Erlang Module Definition glu(3)
NAME
glu - Erlang wrapper functions for OpenGL
DESCRIPTION
Standard OpenGL API
This documents the functions as a brief version of the complete OpenGL
reference pages.
DATA TYPES
vertex() = {float(), float(), float()}
i() = integer()
f() = float()
enum() = integer() >= 0
matrix() = m12() | m16()
m12() =
{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}
m16() =
{f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f(),
f()}
mem() = binary() | tuple()
EXPORTS
build1DMipmapLevels(Target, InternalFormat, Width, Format, Type,
Level, Base, Max, Data) ->
i()
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.
build1DMipmaps(Target, InternalFormat, Width, Format, Type, Data) ->
i()
Types:
Target = enum()
InternalFormat = Width = i()
Format = Type = enum()
Data = binary()
glu:build1DMipmaps/6 builds a series of prefiltered one-dimen-
sional texture maps of decreasing resolutions called a mipmap.
This is used for the antialiasing of texture mapped primitives.
External documentation.
build2DMipmapLevels(Target, InternalFormat, Width, Height, Format,
Type, Level, Base, Max, Data) ->
i()
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.
build2DMipmaps(Target, InternalFormat, Width, Height, Format,
Type, Data) ->
i()
Types:
Target = enum()
InternalFormat = Width = Height = i()
Format = Type = enum()
Data = binary()
glu:build2DMipmaps/7 builds a series of prefiltered two-dimen-
sional texture maps of decreasing resolutions called a mipmap.
This is used for the antialiasing of texture-mapped primitives.
External documentation.
build3DMipmapLevels(Target, InternalFormat, Width, Height, Depth,
Format, Type, Level, Base, Max, Data) ->
i()
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.
build3DMipmaps(Target, InternalFormat, Width, Height, Depth,
Format, Type, Data) ->
i()
Types:
Target = enum()
InternalFormat = Width = Height = Depth = i()
Format = Type = enum()
Data = binary()
glu:build3DMipmaps/8 builds a series of prefiltered three-dimen-
sional texture maps of decreasing resolutions called a mipmap.
This is used for the antialiasing of texture-mapped primitives.
External documentation.
checkExtension(ExtName :: string(), ExtString :: string()) ->
0 | 1
glu:checkExtension/2 returns ?GLU_TRUE if ExtName is supported
otherwise ?GLU_FALSE is returned.
External documentation.
cylinder(Quad :: i(),
Base :: f(),
Top :: f(),
Height :: f(),
Slices :: i(),
Stacks :: i()) ->
ok
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.
deleteQuadric(Quad :: i()) -> ok
glu:deleteQuadric/1 destroys the quadrics object (created with
glu:newQuadric/0) and frees any memory it uses. Once glu:delete-
Quadric/1 has been called, Quad cannot be used again.
External documentation.
disk(Quad :: i(),
Inner :: f(),
Outer :: f(),
Slices :: i(),
Loops :: i()) ->
ok
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.
errorString(Error :: enum()) -> string()
glu:errorString/1 produces an error string from a GL or GLU
error code. The string is in ISO Latin 1 format. For example,
glu:errorString/1(?GLU_OUT_OF_MEMORY) returns the string out of
memory.
External documentation.
getString(Name :: enum()) -> string()
glu:getString/1 returns a pointer to a static string describing
the GLU version or the GLU extensions that are supported.
External documentation.
lookAt(EyeX, EyeY, EyeZ, CenterX, CenterY, CenterZ, UpX, UpY, UpZ) ->
ok
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.
newQuadric() -> i()
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.
ortho2D(Left :: f(), Right :: f(), Bottom :: f(), Top :: f()) ->
ok
glu:ortho2D/4 sets up a two-dimensional orthographic viewing
region. This is equivalent to calling gl:ortho/6 with near=-1
and far=1.
External documentation.
partialDisk(Quad, Inner, Outer, Slices, Loops, Start, Sweep) -> ok
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.
perspective(Fovy :: f(), Aspect :: f(), ZNear :: f(), ZFar :: f()) ->
ok
glu:perspective/4 specifies a viewing frustum into the world
coordinate system. In general, the aspect ratio in glu:perspec-
tive/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.
pickMatrix(X :: f(),
Y :: f(),
DelX :: f(),
DelY :: f(),
Viewport :: {i(), i(), i(), i()}) ->
ok
glu:pickMatrix/5 creates a projection matrix that can be used to
restrict drawing to a small region of the viewport. This is typ-
ically 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.
project(ObjX, ObjY, ObjZ, Model, Proj, View) ->
{i(), WinX :: f(), WinY :: f(), WinZ :: f()}
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 fail-
ure.
External documentation.
quadricDrawStyle(Quad :: i(), Draw :: enum()) -> ok
glu:quadricDrawStyle/2 specifies the draw style for quadrics
rendered with Quad. The legal values are as follows:
External documentation.
quadricNormals(Quad :: i(), Normal :: enum()) -> ok
glu:quadricNormals/2 specifies what kind of normals are desired
for quadrics rendered with Quad. The legal values are as fol-
lows:
External documentation.
quadricOrientation(Quad :: i(), Orientation :: enum()) -> ok
glu:quadricOrientation/2 specifies what kind of orientation is
desired for quadrics rendered with Quad. The Orientation values
are as follows:
External documentation.
quadricTexture(Quad :: i(), Texture :: 0 | 1) -> ok
glu:quadricTexture/2 specifies if texture coordinates should be
generated for quadrics rendered with Quad. If the value of Tex-
ture 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.
scaleImage(Format, WIn, HIn, TypeIn, DataIn, WOut, HOut, TypeOut,
DataOut) ->
i()
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.
sphere(Quad :: i(), Radius :: f(), Slices :: i(), Stacks :: i()) ->
ok
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.
tesselate(Normal, Vs :: [Vs]) -> {Triangles, VertexPos}
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 posi-
tions, it starts with the vertices in Vs and may contain newly
created vertices in the end.
unProject(WinX, WinY, WinZ, Model, Proj, View) ->
{i(), ObjX :: f(), ObjY :: f(), ObjZ :: f()}
unProject4(WinX, WinY, WinZ, ClipW, Model, Proj, View, NearVal,
FarVal) ->
{i(),
ObjX :: f(),
ObjY :: f(),
ObjZ :: f(),
ObjW :: f()}
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 fail-
ure.
External documentation.
Ericsson AB wx 2.1.1 glu(3)