glu (wx v2.5)
View SourceErlang wrapper functions for OpenGL
Standard OpenGL API
This documents the functions as a brief version of the complete OpenGL reference pages.
Summary
Functions
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.
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.
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.
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.
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.
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.
glu:checkExtension/2
returns ?GLU_TRUE
if ExtName
is
supported otherwise ?GLU_FALSE
is returned.
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.
glu:deleteQuadric/1
destroys the quadrics object (created
with glu:newQuadric/0
) and frees any memory it uses. Once
glu:deleteQuadric/1
has been called, Quad
cannot be
used again.
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).
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
.
glu:getString/1
returns a pointer to a static string
describing the GLU version or the GLU extensions that are supported.
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.
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.
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.
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).
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.
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.
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.
glu:quadricDrawStyle/2
specifies the draw style for
quadrics rendered with Quad
. The legal values are as follows
glu:quadricNormals/2
specifies what kind of normals are
desired for quadrics rendered with Quad
. The legal values are as follows
glu:quadricOrientation/2
specifies what kind of
orientation is desired for quadrics rendered with Quad
. The Orientation
values are as follows
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
.
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.
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).
Triangulates a polygon, the polygon is specified by a Normal
and Vs
a list
of vertex positions.
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.
Equivalent to unProject4/9
.
Types
Functions
-spec build1DMipmapLevels(Target, InternalFormat, Width, Format, Type, Level, Base, Max, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Format :: enum(), Type :: enum(), Level :: i(), Base :: i(), 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.
-spec build1DMipmaps(Target, InternalFormat, Width, Format, Type, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Format :: enum(), 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.
-spec build2DMipmapLevels(Target, InternalFormat, Width, Height, Format, Type, Level, Base, Max, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Format :: enum(), Type :: enum(), Level :: i(), Base :: i(), 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.
-spec build2DMipmaps(Target, InternalFormat, Width, Height, Format, Type, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Format :: enum(), 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.
-spec build3DMipmapLevels(Target, InternalFormat, Width, Height, Depth, Format, Type, Level, Base, Max, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Depth :: i(), Format :: enum(), Type :: enum(), Level :: i(), Base :: i(), 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.
-spec build3DMipmaps(Target, InternalFormat, Width, Height, Depth, Format, Type, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Depth :: i(), Format :: enum(), 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.
glu:checkExtension/2
returns ?GLU_TRUE
if ExtName
is
supported otherwise ?GLU_FALSE
is returned.
-spec 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.
-spec deleteQuadric(Quad :: i()) -> ok.
glu:deleteQuadric/1
destroys the quadrics object (created
with glu:newQuadric/0
) and frees any memory it uses. Once
glu:deleteQuadric/1
has been called, Quad
cannot be
used again.
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).
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
.
glu:getString/1
returns a pointer to a static string
describing the GLU version or the GLU extensions that are supported.
-spec lookAt(EyeX, EyeY, EyeZ, CenterX, CenterY, CenterZ, UpX, UpY, UpZ) -> ok when EyeX :: f(), EyeY :: f(), EyeZ :: f(), CenterX :: f(), CenterY :: f(), CenterZ :: f(), UpX :: f(), UpY :: f(), 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.
-spec 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.
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.
-spec partialDisk(Quad, Inner, Outer, Slices, Loops, Start, Sweep) -> ok when Quad :: i(), Inner :: f(), Outer :: f(), Slices :: i(), Loops :: i(), Start :: f(), 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).
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.
-spec 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 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.
-spec project(ObjX, ObjY, ObjZ, Model, Proj, View) -> {i(), WinX :: f(), WinY :: f(), WinZ :: f()} when ObjX :: f(), ObjY :: f(), ObjZ :: f(), Model :: matrix(), 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.
glu:quadricDrawStyle/2
specifies the draw style for
quadrics rendered with Quad
. The legal values are as follows:
glu:quadricNormals/2
specifies what kind of normals are
desired for quadrics rendered with Quad
. The legal values are as follows:
glu:quadricOrientation/2
specifies what kind of
orientation is desired for quadrics rendered with Quad
. The Orientation
values are as follows:
-spec 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 Texture
is ?GLU_TRUE
, then texture coordinates are generated, and if Texture
is
?GLU_FALSE
, they are not. The initial value is ?GLU_FALSE
.
-spec scaleImage(Format, WIn, HIn, TypeIn, DataIn, WOut, HOut, TypeOut, DataOut) -> i() when Format :: enum(), WIn :: i(), HIn :: i(), TypeIn :: enum(), DataIn :: binary(), WOut :: i(), 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.
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).
-spec tesselate(Normal, [Vs]) -> {Triangles, VertexPos} when Normal :: vertex(), 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.
-spec unProject4(WinX, WinY, WinZ, ClipW, Model, Proj, View, NearVal, FarVal) -> {i(), ObjX :: f(), ObjY :: f(), ObjZ :: f(), ObjW :: f()} when WinX :: f(), WinY :: f(), WinZ :: f(), ClipW :: f(), Model :: matrix(), Proj :: matrix(), View :: {i(), i(), i(), i()}, NearVal :: f(), 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.
-spec unProject(WinX, WinY, WinZ, Model, Proj, View) -> {i(), ObjX :: f(), ObjY :: f(), ObjZ :: f()} when WinX :: f(), WinY :: f(), WinZ :: f(), Model :: matrix(), Proj :: matrix(), View :: {i(), i(), i(), i()}.
Equivalent to unProject4/9
.