logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

glu - Erlang wrapper functions for OpenGL

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()

Description

       Standard OpenGL API

       This documents the functions as a brief version of the complete OpenGL reference pages.

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-dimensional 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-dimensional  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-dimensional 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())->okglu: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.

              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 outofmemory.

              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: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.

              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 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.

              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 failure.

              External documentation.

       quadricDrawStyle(Quad::i(),Draw::enum())->okglu:quadricDrawStyle/2  specifies the draw style for quadrics rendered with Quad. The legal values
              are as follows:

              External documentation.

       quadricNormals(Quad::i(),Normal::enum())->okglu:quadricNormals/2 specifies what kind of normals are desired for quadrics rendered  with  Quad.
              The legal values are as follows:

              External documentation.

       quadricOrientation(Quad::i(),Orientation::enum())->okglu: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)->okglu: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.

              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 positions, 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 failure.

              External documentation.

Ericsson AB                                         wx 2.1.1                                           glu(3erl)

Name

       glu - Erlang wrapper functions for OpenGL

See Also