Files
mesa/src/glut/fbdev/callback.c
Sean D'Epagnier 10cbd089ae the following improvements to linux-fbdev:
1. updated makefiles to build libOSMesa as well as libGL

these are improvements to fbdev-glut
1. mouse cursor will timeout and be invisible if not being used
2. do not restore colormaps to truecolor targets, this causes problems at
   exit on my g450
3. fixed a crash when cleaning up from failure by munmaping what had not
   yet been mmaped
4. Resize event handling is improved, the resize function is not invoked
   from a signal handler now.
5. The main loop can detect if it is running very fast (greater than 2khz)
6. keyboard up and special up events are generated from stdin input mode
   and if it is also not redrawing, it sleeps
7. corrections in escape sequences for function keys for stdin input
2006-11-30 03:25:28 +00:00

172 lines
3.8 KiB
C

/*
* Mesa 3-D graphics library
* Version: 6.5
* Copyright (C) 1995-2006 Brian Paul
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* Library for glut using mesa fbdev driver
*
* Written by Sean D'Epagnier (c) 2006
*/
#include <stdlib.h>
#include <GL/glut.h>
#include "internal.h"
void (*DisplayFunc)(void) = NULL;
void (*ReshapeFunc)(int width, int height) = NULL;
void (*KeyboardFunc)(unsigned char key, int x, int y) = NULL;
void (*KeyboardUpFunc)(unsigned char key, int x, int y) = NULL;
void (*MouseFunc)(int key, int state, int x, int y) = NULL;
void (*MotionFunc)(int x, int y) = NULL;
void (*PassiveMotionFunc)(int x, int y) = NULL;
void (*VisibilityFunc)(int state) = NULL;
void (*SpecialFunc)(int key, int x, int y) = NULL;
void (*SpecialUpFunc)(int key, int x, int y) = NULL;
void (*IdleFunc)(void) = NULL;
void (*MenuStatusFunc)(int state, int x, int y) = NULL;
void (*MenuStateFunc)(int state) = NULL;
void glutDisplayFunc(void (*func)(void))
{
DisplayFunc = func;
}
void glutOverlayDisplayFunc(void (*func)(void))
{
}
void glutWindowStatusFunc(void (*func)(int state))
{
}
void glutReshapeFunc(void (*func)(int width, int height))
{
ReshapeFunc = func;
}
void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))
{
KeyboardFunc = func;
}
void glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y))
{
KeyboardUpFunc = func;
}
void glutMouseFunc(void (*func)(int button, int state, int x, int y))
{
MouseFunc = func;
}
void glutMotionFunc(void (*func)(int x, int y))
{
MotionFunc = func;
}
void glutPassiveMotionFunc(void (*func)(int x, int y))
{
PassiveMotionFunc = func;
}
void glutJoystickFunc(void (*func)(unsigned int buttonMask,
int x, int y, int z), int pollInterval)
{
}
void glutVisibilityFunc(void (*func)(int state))
{
VisibilityFunc = func;
}
void glutEntryFunc(void (*func)(int state))
{
}
void glutSpecialFunc(void (*func)(int key, int x, int y))
{
SpecialFunc = func;
}
void glutSpecialUpFunc(void (*func)(int key, int x, int y))
{
SpecialUpFunc = func;
}
void glutSpaceballMotionFunc(void (*func)(int x, int y, int z))
{
}
void glutSpaceballRotateFunc(void (*func)(int x, int y, int z))
{
}
void glutSpaceballButtonFunc(void (*func)(int button, int state))
{
}
void glutButtonBoxFunc(void (*func)(int button, int state))
{
}
void glutDialsFunc(void (*func)(int dial, int value))
{
}
void glutTabletMotionFunc(void (*func)(int x, int y))
{
}
void glutTabletButtonFunc(void (*func)(int button, int state,
int x, int y))
{
}
void glutMenuStatusFunc(void (*func)(int status, int x, int y))
{
MenuStatusFunc = func;
}
void glutMenuStateFunc(void (*func)(int status))
{
MenuStateFunc = func;
}
void glutIdleFunc(void (*func)(void))
{
IdleFunc = func;
}
void glutTimerFunc(unsigned int msecs,
void (*func)(int value), int value)
{
struct GlutTimer **head = &GlutTimers, *timer = malloc(sizeof *timer);
timer->time = glutGet(GLUT_ELAPSED_TIME) + msecs;
timer->func = func;
timer->value = value;
while(*head && (*head)->time < timer->time)
head = &(*head)->next;
timer->next = *head;
*head = timer;
}