"*suppressRotationAnimation: True\n" \
# define refresh_surface 0
+# define release_surface 0
# include "xlockmore.h" /* from the xscreensaver distribution */
#else /* !STANDALONE */
# include "xlock.h" /* from the xlockmore distribution */
/* new window size or exposure */
ENTRYPOINT void reshape_surface(ModeInfo *mi, int width, int height)
{
+ surfacestruct *sp = &surface[MI_SCREEN(mi)];
GLfloat h = (GLfloat) height / (GLfloat) width;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sp->glx_context));
+
glViewport(0, 0, (GLint) width, (GLint) height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
int screen = MI_SCREEN(mi);
surfacestruct *sp;
- if (surface == NULL)
- {
- if ((surface = (surfacestruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof(surfacestruct))) == NULL)
- return;
- }
+ MI_INIT (mi, surface, NULL);
sp = &surface[screen];
sp->window = MI_WINDOW(mi);
}
-ENTRYPOINT void release_surface(ModeInfo * mi)
-{
- if (surface != NULL)
- {
- int screen;
-
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++)
- {
- surfacestruct *sp = &surface[screen];
-
- if (sp->glx_context)
- {
- /* Display lists MUST be freed while their glXContext is current. */
- glXMakeCurrent(MI_DISPLAY(mi), sp->window, *(sp->glx_context));
- }
- }
- (void) free((void *)surface);
- surface = NULL;
- }
- FreeAllGL(mi);
-}
-
-
XSCREENSAVER_MODULE_2("Surfaces", surfaces, surface)
#endif