X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fglforestfire.c;h=3697b2e4b0b7148269ac32ba6a7e1625d0f74af6;hb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;hp=6b365ad17be14162935fe0dce5bce439782b1030;hpb=c1b9b55ad8d59dc05ef55e316aebf5863e7dfa56;p=xscreensaver diff --git a/hacks/glx/glforestfire.c b/hacks/glx/glforestfire.c index 6b365ad1..3697b2e4 100644 --- a/hacks/glx/glforestfire.c +++ b/hacks/glx/glforestfire.c @@ -853,23 +853,6 @@ static Bool Init(ModeInfo * mi) fs->eject_r, fs->ridtri); } - glShadeModel(GL_FLAT); - glEnable(GL_DEPTH_TEST); - - /* makes particles blend with background */ - if (!MI_IS_WIREFRAME(mi)||(!fs->np)) - { - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - } - - /* fog stuff */ - glEnable(GL_FOG); - glFogi(GL_FOG_MODE, GL_EXP); - glFogfv(GL_FOG_COLOR, fogcolor); - glFogf(GL_FOG_DENSITY, 0.03); - glHint(GL_FOG_HINT, GL_NICEST); - /* initialise particles and trees */ for (i = 0; i < fs->np; i++) { setnewpart(fs, &(fs->p[i])); @@ -979,7 +962,7 @@ init_fire(ModeInfo * mi) else fs->num_trees = 0; - fs->trackball = gltrackball_init (); + fs->trackball = gltrackball_init (False); /* xlock GL stuff */ if ((fs->glx_context = init_GL(mi)) != NULL) { @@ -1017,7 +1000,28 @@ ENTRYPOINT void draw_fire(ModeInfo * mi) return; glXMakeCurrent(display, window, *(fs->glx_context)); + + glShadeModel(GL_FLAT); + glEnable(GL_DEPTH_TEST); + + /* makes particles blend with background */ + if (!MI_IS_WIREFRAME(mi)||(!fs->np)) + { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } + + /* fog stuff */ + glEnable(GL_FOG); + glFogi(GL_FOG_MODE, GL_EXP); + glFogfv(GL_FOG_COLOR, fogcolor); + glFogf(GL_FOG_DENSITY, 0.03); + glHint(GL_FOG_HINT, GL_NICEST); + + glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); DrawFire(mi); + glPopMatrix(); #ifndef STANDALONE Reshape(mi); /* xlock mode */ #else @@ -1060,43 +1064,10 @@ fire_handle_event (ModeInfo *mi, XEvent *event) { firestruct *fs = &fire[MI_SCREEN(mi)]; - if (event->xany.type == ButtonPress && - event->xbutton.button == Button1) - { - fs->button_down_p = True; - event->xbutton.x = MI_WIDTH(mi) - event->xbutton.x; /* kludge! */ - event->xbutton.y = MI_HEIGHT(mi) - event->xbutton.y; - gltrackball_start (fs->trackball, - event->xbutton.x, event->xbutton.y, - MI_WIDTH (mi), MI_HEIGHT (mi)); - return True; - } - else if (event->xany.type == ButtonRelease && - event->xbutton.button == Button1) - { - fs->button_down_p = False; - return True; - } - else if (event->xany.type == ButtonPress && - (event->xbutton.button == Button4 || - event->xbutton.button == Button5 || - event->xbutton.button == Button6 || - event->xbutton.button == Button7)) - { - gltrackball_mousewheel (fs->trackball, event->xbutton.button, 5, - !!event->xbutton.state); - return True; - } - else if (event->xany.type == MotionNotify && - fs->button_down_p) - { - event->xmotion.x = MI_WIDTH(mi) - event->xmotion.x; /* kludge! */ - event->xmotion.y = MI_HEIGHT(mi) - event->xmotion.y; - gltrackball_track (fs->trackball, - event->xmotion.x, event->xmotion.y, - MI_WIDTH (mi), MI_HEIGHT (mi)); - return True; - } + if (gltrackball_event_handler (event, fs->trackball, + MI_WIDTH (mi), MI_HEIGHT (mi), + &fs->button_down_p)) + return True; return False; }