# Where are GLU and GLUT libraries for OpenGL?

**URL:** <https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657>\
**Category:** General\
**Created:** [January 22, 2023, 11:05pm UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657 "2023-01-22T23:05:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![hendrikboom3](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hendrikboom3/32/2748_2.png) [@hendrikboom3](https://racket.discourse.group/u/hendrikboom3)\
**Post date:** [January 22, 2023, 11:05pm UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657/1 "2023-01-22T23:05:36Z")

</div>

Is there a Racket-style GLU to go with sgl, the _Racket-style_ OpenGL?  
Same for any other traditional helper libraries? (GLUT?)  
I have not been able to guess the proper spelling of gluPerspective in Racket-style.  
glu-perspective seems not to work.

-- hendrik

---

<div class="post-metadata">

**Author:** ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)\
**Post date:** [January 22, 2023, 11:45pm UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657/2 "2023-01-22T23:45:19Z")

</div>

> [@hendrikboom3](#):
>
> gluPerspective

I think it is `perspective`:

> <https://github.com/racket/old-plt/blob/master/collects/sgl/sgl.ss#L884>

---

<div class="post-metadata">

**Author:** ![hendrikboom3](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hendrikboom3/32/2748_2.png) [@hendrikboom3](https://racket.discourse.group/u/hendrikboom3)\
**Post date:** [January 23, 2023, 11:54am UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657/3 "2023-01-23T11:54:16Z")

</div>

Thank you.  
No. It didn't work.  
But you pointed me to the source code, where I discovered that \_provide is a macro that expands to provide without the underscore and a renaming.  
I didn't manage to unravel the macro definition, but it seemed not to pay attention to the "glu" in "gluPerspective" I tried guessing that it would end up renaming that to "gl-perspective", and that turned out to be the case.  
Despite the "glu", it still renamed to gl- unstead of glu-.

The manual needs to be changed where it discusses how C-style names get changed to Racket-style names.

In  
[3&nbsp;Racket-Style OpenGL](https://docs.racket-lang.org/sgl/main.html)  
change  
"change the gl prefix to gl-"  
to  
"change the gl or gl- prefix to gl- (but not glu-)"

-- hendrik

---

<div class="post-metadata">

**Author:** ![devosalain](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/devosalain/32/546_2.png) [@devosalain](https://racket.discourse.group/u/devosalain)\
**Post date:** [January 27, 2023, 5:35am UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657/4 "2023-01-27T05:35:43Z")

</div>

Last commit in 2005 ?

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [January 27, 2023, 7:27pm UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657/5 "2023-01-27T19:27:58Z")

</div>

If you're observing how awesome it is that code from 2005 still runs today, I'm in strong agreement!

---

<div class="post-metadata">

**Author:** ![hendrikboom3](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hendrikboom3/32/2748_2.png) [@hendrikboom3](https://racket.discourse.group/u/hendrikboom3)\
**Post date:** [January 27, 2023, 9:46pm UTC](https://racket.discourse.group/t/where-are-glu-and-glut-libraries-for-opengl/1657/6 "2023-01-27T21:46:56Z")

</div>

This may be related to the way our OpenGL binding is similary ancient. even though there have been major changes in OpenGL.

I haven't even been able to use existing OpenGL tutorials (for C programmers) to figure out how to use OpenGL in Racket. Too many of the functions they take for granted just didn't exist.

And OpenGL seems itself to be slowly on its way out, with the rise of Vulcan. At least there _is_ a vulcan binding. Has anyone used it?

But I'm still happily using sgl.

-- hendrik
