Control de Eventos bajo GNU/Linux

10 views
Skip to first unread message

Keinier Caboverde R.

unread,
Oct 9, 2011, 8:16:02 PM10/9/11
to codepixel
Saludos amigos,

ya he pasado por aqui antes, con otros temas, por eso ante que nada le
agradecere todo tipo de informacion que me puedan proporcionar de
adelantado ;).

Ya algunos saben que estoy trabajando en un motor de videojuego
llamado Catalisys Game Engine multiplataforma, tengo una dudo
respecto a la plataforma Linux.

-- Mi objetivo es lograr la captura de los caracteres y estados de
cada tecla del KeyBoard y la posicion del cursos y estados de los
botones de Mouse. He implementado una intrefaz que se llama
InputControllerque esta definida de la siguiente manera:

he diseñado una clase abstracta llamada Input, de la cual deriva
KeyInput y MouseInput, de estas 2 ultimas derivo una fusion llamada
InputManager, esto es para dar la flexibilad de activar la escucha
para el teclado o el mouse por separada o los 2 juntos, p.e:

//creacion del objeto singleton
static Input * KeyBoardListener = new KeyInput();

// inicializacion o activacion
KeyBoardListener->StartUP();

// desactivacion
KeyBoardListener->ShutDown();

Pues bien en el caso del mouse

//creacion del objeto singleton
static Input * MouseListener = new MouseInput();

// inicializacion o activacion
MouseListener->StartUP();

// desactivacion
MouseListener->ShutDown();

y en caso de activar todo

// inicializacion o activacion
KeyBoardListener->StartUP();

// desactivacion
KeyBoardListener->ShutDown();

Pues bien en el caso del mouse

//creacion del objeto singleton
static Input * InputListener = new InputManager();

// inicializacion o activacion
InputListener->StartUP();

// desactivacion
InputListener->ShutDown();

Cabe destacar que eso se hace de forma dinamica dependiendo de la
plataforma en ejecucion.

la cuestion es que las clases MouseInput y KeyInput son diferentes de
la plataforma,
y quisiera saber cual es la alternativa a la funcion de Windows.h
"GetMessage" o "PeekMessage" para linux o en unix(de ser a nivel mas
bajo),

espero que puedan ayudarme :), ademas es bienvenida cualquier
cooperación y/o criticas ya que de ahi sale todo! en el proyecto.

mano...@gmail.com

unread,
Oct 10, 2011, 1:10:39 AM10/10/11
to code...@googlegroups.com
Hola

Creo que la mejor opcion es usar sdl para la implementacion de esto. Asi tendrias una implementacion comun para linux, windows, macos y lo que se tercie.

Si lo quieres montar a pelo tendras que mirar el Api de las X, ahora mismo no recuerdo como se llamaban los metodos pero ahí tendras callbacks para teclado, raton y lo que sea ( creo recordar)


Enviado desde mi BlackBerry® de Vodafone
--
Has recibido este mensaje porque estás suscrito a code...@googlegroups.com
Incluye tu información de perfil en https://sites.google.com/site/listadecodepixel/
Para obtener más opciones, visita este grupo en http://groups.google.es/group/codepixel?hl=es.

http://www.codepixel.com

Pablo Quesada Barriuso

unread,
Oct 10, 2011, 2:20:24 AM10/10/11
to code...@googlegroups.com
Y que tal usar Qt?

2011/10/10 <mano...@gmail.com>:

--
Pablo Quesada Barriuso.
email: pab...@gmail.com
blog: http://pabloqb.evolution42.com

Manolo Padron Martinez

unread,
Oct 10, 2011, 2:46:29 AM10/10/11
to code...@googlegroups.com
También :D pero si solo quiere capturar eventos de teclado ratón y el
resto lo va a llevar por otro lado me parece más sencillo SDL

2011/10/10 Pablo Quesada Barriuso <pab...@gmail.com>:

Pablo Quesada Barriuso

unread,
Oct 10, 2011, 2:52:21 AM10/10/11
to code...@googlegroups.com
Pues si :)

2011/10/10 Manolo Padron Martinez <mano...@gmail.com>:

Keinier Caboverde Ramirez

unread,
Oct 10, 2011, 12:55:11 PM10/10/11
to code...@googlegroups.com
Saludos amigos,

En un principio considere implementar SDL ya que en efecto es muy sencillo y proporciona un nivel de abstracción perfecto para mis fines, el detlle es que el motor que estoy diseñando deberia funionar tanto para productos comerciales como libres, es decir; estoy tratando de diseñar un UDK totalmente compatible con linux y windows y algunas consolas como Playstation 3, wii, Xbox(compatible con windows). Asi mismo, corrijanme si me equivoco porfavor, creo que SDL no es soportada por estas plataformas y mucho menos implementable en software comercial al menos no en su totalidad. Ademas Directx no es compatible con esta ( almenos en el caso de windows y xbox).

de todas formas les dejo el link del repositorio, por si desean coolaborar en este proyecto.

PD: Los diagramas de diseño se los quisiera mostrar pero los tengo en papel, ya que el Umbrello me corrompio gran parte de la informacion de los diagramas.

MYSKYPE: keiniercab
MYTWITTER: @Keinier
Atte:
Keinier Caboverde R
Kei-Software Entertainment (Servicio de ingeniería)
(0412) 690-3880

Keinier Caboverde Ramirez

unread,
Oct 10, 2011, 12:57:25 PM10/10/11
to code...@googlegroups.com
Otro detalle que se me olvido mencionar, es que este motor lo estoy desarrollando porque tambien estoy tratando de desarrollar un un Sistema operativo basado en linux para Gamers y ese motor seria implementado como base para su funcionamiento. En pocas palabras es un XBOX libre.

Iván Alduán Íñiguez

unread,
Oct 11, 2011, 8:12:05 AM10/11/11
to code...@googlegroups.com
Prueba con OOIS (object oriented input system), es sencilla y bastante
bien diseñada para soportar cualquier plataforma que le quieras
añadir.
http://sourceforge.net/projects/wgois/

El día 10 de octubre de 2011 18:57, Keinier Caboverde Ramirez

Reply all
Reply to author
Forward
0 new messages