Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

glu (3erl)

Name

glu - Erlang wrapper functions for OpenGL

Synopsis

Please see following description for synopsis

Description

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)