X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fstairs.c;h=0bd61c2e62ac0ee19bfe7372e1e2cacf52fe83d8;hp=9381f6fadae7246c78943d50e2e4ef1cb367e78e;hb=f8cf5ac7b2f53510f80a0eaf286a25298be17bfe;hpb=ec8d2b32b63649e6d32bdfb306eda062769af823 diff --git a/hacks/glx/stairs.c b/hacks/glx/stairs.c index 9381f6fa..0bd61c2e 100644 --- a/hacks/glx/stairs.c +++ b/hacks/glx/stairs.c @@ -68,7 +68,13 @@ static const char sccsid[] = "@(#)stairs.c 4.07 97/11/24 xlockmore"; #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" @@ -387,9 +393,9 @@ stairs_handle_event (ModeInfo *mi, XEvent *event) 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); @@ -413,6 +419,7 @@ pinit(void) glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +#if 0 clear_gl_error(); status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight, @@ -426,6 +433,22 @@ pinit(void) 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); @@ -461,7 +484,7 @@ init_stairs (ModeInfo * mi) glDrawBuffer(GL_BACK); if (!glIsList(sp->objects)) sp->objects = glGenLists(1); - pinit(); + pinit(mi); } else { MI_CLEARWINDOW(mi); } @@ -495,6 +518,7 @@ draw_stairs (ModeInfo * mi) } gltrackball_rotate (sp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glTranslatef(0, 0.5, 0); glRotatef(44.5, 1, 0, 0);