Lines Matching refs:gear
38 struct gear {
47 static struct gear gears[3];
51 * Initialize a gear wheel.
53 * Input: gear - gear to initialize
56 * width - width of gear
61 init_gear(struct gear *gear, GLfloat inner_radius, GLfloat outer_radius,
77 gear->vbo = 0;
78 gear->vertices = NULL;
79 gear->stride = sizeof(GLfloat) * 6; /* XYZ + normal */
80 gear->num_teeth = teeth;
84 total_size = total_verts * gear->stride;
170 gear->vertices = verts;
173 glGenBuffers(1, &gear->vbo);
174 if (gear->vbo) {
175 glBindBuffer(GL_ARRAY_BUFFER, gear->vbo);
182 draw_gear(const struct gear *gear)
186 if (!gear->vbo && !gear->vertices) {
191 if (gear->vbo) {
192 glBindBuffer(GL_ARRAY_BUFFER, gear->vbo);
193 glVertexPointer(3, GL_FLOAT, gear->stride, (const GLvoid *) 0);
194 glNormalPointer(GL_FLOAT, gear->stride, (const GLvoid *) (sizeof(GLfloat) * 3));
197 glVertexPointer(3, GL_FLOAT, gear->stride, gear->vertices);
198 glNormalPointer(GL_FLOAT, gear->stride, gear->vertices + 3);
203 for (i = 0; i < gear->num_teeth; i++) {
298 struct gear *gear = &gears[i];
299 if (gear->vbo) {
300 glDeleteBuffers(1, &gear->vbo);
301 gear->vbo = 0;
303 if (gear->vertices) {
304 free(gear->vertices);
305 gear->vertices = NULL;