#ifdef USE_GL
+#if 0
#include "e_textures.h"
+#else
+#include "xpm-ximage.h"
+#include "../images/wood.xpm"
+#endif
+
#include "sphere.h"
#include "gltrackball.h"
static void
-pinit(void)
+pinit(ModeInfo *mi)
{
- int status;
+ /* int status; */
glClearDepth(1.0);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+#if 0
clear_gl_error();
status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
WoodTextureWidth, WoodTextureHeight,
exit (1);
}
check_gl_error("mipmapping");
+#else
+ {
+ XImage *img = xpm_to_ximage (mi->dpy,
+ mi->xgwa.visual,
+ mi->xgwa.colormap,
+ wood_texture);
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ img->width, img->height, 0,
+ GL_RGBA,
+ /* GL_UNSIGNED_BYTE, */
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+ img->data);
+ check_gl_error("texture");
+ XDestroyImage (img);
+ }
+#endif
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glDrawBuffer(GL_BACK);
if (!glIsList(sp->objects))
sp->objects = glGenLists(1);
- pinit();
+ pinit(mi);
} else {
MI_CLEARWINDOW(mi);
}
}
gltrackball_rotate (sp->trackball);
+ glRotatef(current_device_rotation(), 0, 0, 1);
glTranslatef(0, 0.5, 0);
glRotatef(44.5, 1, 0, 0);