glu(3)
π glu β bestie edition π
okay so this is the <pink>glu</pink> page from the Erlang Module Definition manual, and honestly? it's giving OpenGL but make it Erlang. sit down, grab a boba, we're doing this together π§β¨
β¨ NAME β¨
glu β Erlang wrapper functions for OpenGL π
πΈ DESCRIPTION πΈ
Standard OpenGL API, fr fr.
This documents the functions as a brief version of the complete OpenGL reference pages. no cap, it's the quick-and-cute version, not the whole encyclopedia π
π¦ DATA TYPES π¦
here's the whole type situation, keep up bestie:
enum()::non_neg_integer().f()::float().i()::integer().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()}.
matrix()::m12() | m16().mem()::binary() | tuple().vertex()::{float(), float(), float()}.
that's the whole vibe check on types, periodt π
π₯ FUNCTIONS π₯
build1DMipmapLevels/9
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. iconic behavior honestly π
External documentation.
build1DMipmaps/6
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. same energy, one fewer arg, she's efficient β¨
External documentation.
build2DMipmapLevels/10
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. two D, ten args, main character energy π
External documentation.
build2DMipmaps/7
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.
External documentation.
build3DMipmapLevels/11
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. bestie she's got DEPTH ππ
External documentation.
build3DMipmaps/8
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.
External documentation.
checkExtension/2
checkExtension(ExtName :: string(), ExtString :: string()) ->
0 | 1.
glu:checkExtension/2 returns ?GLU_TRUE if ExtName is supported otherwise ?GLU_FALSE is returned. it's literally a yes/no girlie, we love a binary decision π
External documentation.
cylinder/6
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. shape slay π
External documentation.
deleteQuadric/1
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. she's gone, she's not coming back, do NOT try to hit her up again π«Ά
External documentation.
disk/5
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/1
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. it reads you for filth, but politely π
External documentation.
getString/1
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. she's just here to tell you about herself, valid π
External documentation.
lookAt/9
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. literally the "where am i looking and which way is up" function, we stan a self-aware queen π
External documentation.
newQuadric/0
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. so if you get a 0, that's your sign to close 400 browser tabs π
External documentation.
ortho2D/4
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. shortcut queen β¨
External documentation.
partialDisk/7
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). it's giving "pizza with one slice already taken" ππ¦
External documentation.
perspective/4
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. match your ratios bestie, nobody wants a stretched face π
External documentation.
okay that's not even the whole thing yet, there's MORE coming β don't go anywhere π
pickMatrix/5 β cursor glow-up π
pickMatrix(X :: f(),
Y :: f(),
DelX :: f(),
DelY :: f(),
Viewport :: {i(), i(), i(), i()}) ->
ok.
okay so 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/6 β object coords to window coords, slay β¨
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.
External documentation. π¦
quadricDrawStyle/2 β draw style check π
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/2 β normals, no cap π
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 follows:
External documentation. π
quadricOrientation/2 β orientation vibe check π
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/2 β texture coords, yes or no? π¦
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.
External documentation. π
scaleImage/9 β pixel glow-up β¨
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.
External documentation. π
sphere/4 β literally a sphere, periodt π
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 β triangulate that polygon πΊ
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 β window coords back to object coords, reverse slay π
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.
External documentation. πΈ
okay bestie, that's the whole glu(3) page. the footer says Ericsson AB, version wx 2.6, page glu(3) β no date, but the vibe is eternal. periodt. π
β¨
π¦ where this page comes from
- ubuntu stonking: erlang-doc 1:29.0.6+dfsg-1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms