mirror of
https://github.com/joel16/SDL2.git
synced 2024-11-30 14:40:25 +00:00
Fixed some Gesture bugs
This commit is contained in:
parent
2a8820a2a9
commit
a4c4851398
@ -285,8 +285,6 @@ if test x$have_inttypes != xyes; then
|
||||
AC_DEFINE(uintptr_t, unsigned long)
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADER(Linux/input.h,AC_DEFINE(HAVE_LINUX_INPUT_H))
|
||||
|
||||
# Standard C sources
|
||||
SOURCES="$SOURCES $srcdir/src/*.c"
|
||||
SOURCES="$SOURCES $srcdir/src/audio/*.c"
|
||||
@ -1007,6 +1005,8 @@ CheckVisibilityHidden()
|
||||
dnl Find the X11 include and library directories
|
||||
CheckX11()
|
||||
{
|
||||
|
||||
|
||||
AC_ARG_ENABLE(video-x11,
|
||||
AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
|
||||
, enable_video_x11=yes)
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "SDL_gesture_c.h"
|
||||
|
||||
//TODO: Replace with malloc
|
||||
#define MAXFINGERS 3
|
||||
#define MAXFINGERS 5
|
||||
#define MAXTOUCHES 2
|
||||
#define MAXTEMPLATES 4
|
||||
#define MAXPATHSIZE 1024
|
||||
@ -496,6 +496,7 @@ void SDL_GestureProcessEvent(SDL_Event* event)
|
||||
}
|
||||
}
|
||||
inTouch->gestureLast[j] = inTouch->gestureLast[inTouch->numDownFingers];
|
||||
j = -1;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
|
@ -392,8 +392,7 @@ SDL_SendTouchMotion(SDL_TouchID id, SDL_FingerID fingerid, int relative,
|
||||
//scale to Integer coordinates
|
||||
Uint16 x = (xin+touch->x_min)*(touch->xres)/(touch->native_xres);
|
||||
Uint16 y = (yin+touch->y_min)*(touch->yres)/(touch->native_yres);
|
||||
Uint16 pressure = (yin+touch->pressure_min)*(touch->pressureres)/(touch->native_pressureres);
|
||||
printf("(%f,%f) --> (%i,%i)\n",xin,yin,x,y);
|
||||
Uint16 pressure = (yin+touch->pressure_min)*(touch->pressureres)/(touch->native_pressureres);
|
||||
if(touch->flush_motion) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -24,7 +24,8 @@
|
||||
#include "SDL_eventtouch.h"
|
||||
#include "../../events/SDL_touch_c.h"
|
||||
|
||||
#ifdef HAVE_LINUX_INPUT_H
|
||||
|
||||
#ifdef SDL_INPUT_LINUXEV
|
||||
#include <linux/input.h>
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
@ -32,7 +33,7 @@
|
||||
void
|
||||
X11_InitTouch(_THIS)
|
||||
{
|
||||
#ifdef HAVE_LINUX_INPUT_H
|
||||
#ifdef SDL_INPUT_LINUXEV
|
||||
printf("Initializing touch...\n");
|
||||
|
||||
FILE *fd;
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_LINUX_INPUT_H
|
||||
#ifdef SDL_INPUT_LINUXEV
|
||||
//Touch Input/event* includes
|
||||
#include <linux/input.h>
|
||||
#include <fcntl.h>
|
||||
@ -402,7 +402,7 @@ X11_PumpEvents(_THIS)
|
||||
X11_DispatchEvent(_this);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LINUX_INPUT_H
|
||||
#ifdef SDL_INPUT_LINUXEV
|
||||
/* Process Touch events - TODO When X gets touch support, use that instead*/
|
||||
int i = 0,rd;
|
||||
char name[256];
|
||||
|
@ -131,7 +131,7 @@ void setpix(SDL_Surface *screen, int x, int y, unsigned int col)
|
||||
|
||||
memcpy(&colour,pixmem32,screen->format->BytesPerPixel);
|
||||
|
||||
SDL_GetRGB(colour,screen->format,&r,&g,&b); //Always returns 0xFFFFFF?
|
||||
SDL_GetRGB(colour,screen->format,&r,&g,&b);
|
||||
//r = 0;g = 0; b = 0;
|
||||
a = (col>>24)&0xFF;
|
||||
if(a == 0) a = 0xFF; //Hack, to make things easier.
|
||||
@ -400,8 +400,7 @@ int main(int argc, char* argv[])
|
||||
|
||||
break;
|
||||
case SDL_FINGERDOWN:
|
||||
printf("Finger: %"PRIs64" down - x: %i, y: %i\n",event.tfinger.fingerId,
|
||||
event.tfinger.x,event.tfinger.y);
|
||||
//printf("Finger: %"PRIs64" down - x: %i, y: %i\n",event.tfinger.fingerId,event.tfinger.x,event.tfinger.y);
|
||||
|
||||
for(i = 0;i<MAXFINGERS;i++)
|
||||
if(index2fingerid[i] == -1) {
|
||||
@ -412,8 +411,7 @@ int main(int argc, char* argv[])
|
||||
finger[i].p.y = event.tfinger.y;
|
||||
break;
|
||||
case SDL_FINGERUP:
|
||||
printf("Finger: %"PRIs64" up - x: %i, y: %i\n",event.tfinger.fingerId,
|
||||
event.tfinger.x,event.tfinger.y);
|
||||
//printf("Finger: %"PRIs64" up - x: %i, y: %i\n",event.tfinger.fingerId,event.tfinger.x,event.tfinger.y);
|
||||
for(i = 0;i<MAXFINGERS;i++)
|
||||
if(index2fingerid[i] == event.tfinger.fingerId) {
|
||||
index2fingerid[i] = -1;
|
||||
@ -423,6 +421,11 @@ int main(int argc, char* argv[])
|
||||
finger[i].p.y = -1;
|
||||
break;
|
||||
case SDL_MULTIGESTURE:
|
||||
printf("Multi Gesture: x = %f, y = %f, dAng = %f, dR = %f\n",
|
||||
event.mgesture.x,
|
||||
event.mgesture.y,
|
||||
event.mgesture.dTheta,
|
||||
event.mgesture.dDist);
|
||||
knob.p.x = event.mgesture.x;
|
||||
knob.p.y = event.mgesture.y;
|
||||
knob.ang += event.mgesture.dTheta;
|
||||
|
Loading…
Reference in New Issue
Block a user