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)