View Source glu (wx v2.4.2)
Erlang 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
build1DMipmapLevels(Target, InternalFormat, Width, Format, Type, Level, Base, Max, Data)
View Source-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.
build2DMipmapLevels(Target, InternalFormat, Width, Height, Format, Type, Level, Base, Max, Data)
View Source-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.
build2DMipmaps(Target, InternalFormat, Width, Height, Format, Type, Data)
View Source-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.
build3DMipmapLevels(Target, InternalFormat, Width, Height, Depth, Format, Type, Level, Base, Max, Data)
View Source-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.
build3DMipmaps(Target, InternalFormat, Width, Height, Depth, Format, Type, Data)
View Source-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.
lookAt(EyeX, EyeY, EyeZ, CenterX, CenterY, CenterZ, UpX, UpY, UpZ)
View Source-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
.
scaleImage(Format, WIn, HIn, TypeIn, DataIn, WOut, HOut, TypeOut, DataOut)
View Source-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.
unProject4(WinX, WinY, WinZ, ClipW, Model, Proj, View, NearVal, FarVal)
View Source-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