Page 2 sur 2
Re: États souris et screen
Publié : sam. 26/sept./2015 20:44
par G-Rom
Fred l'a intégré comme une API > SDL_Init_()
Re: États souris et screen
Publié : sam. 26/sept./2015 20:56
par Joubarbe
Wow, il est fou ce type, il passe des heures à intégrer un truc aussi énorme et n'en fait aucune documentation
Je ne connaissais pas du tout SDL avant, d'où ma surprise. Ça paraît intéressant !
Re: États souris et screen
Publié : dim. 27/sept./2015 3:01
par Joubarbe
Je digresse un peu, mais faut-il faire quelque chose de particulier pour initialiser SDL, autre que SDL_Init_() ?
Code : Tout sélectionner
InitSprite() : InitKeyboard() : InitMouse()
OpenWindow(0, 0, 0, 800, 600, "")
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600)
SDL_Init_(#SDL_INIT_EVERYTHING)
Global sdlEvent.SDL_Event
Repeat
While WindowEvent() : Wend
While SDL_PollEvent_(@sdlEvent)
Debug "sdl event triggered"
Wend
ExamineKeyboard()
ClearScreen(0)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Ça me paraissait pas trop mal ça...
Re: États souris et screen
Publié : dim. 27/sept./2015 11:27
par G-Rom
Tu mélanges tout, il faut que tu ouvre un écran SDL pas PB.
regarde sur le net ou le forum , c'est pas la doc qui manque , meme PB a un exemple SDL qui dois trainer quelque part.
Re: États souris et screen
Publié : lun. 28/sept./2015 9:50
par blendman
@Joubarbe : tu souhaites afficher un curseur uniquement (ou alors, j'ai mal compris ce que tu veux faire précisément) ?
Pourquoi n'utilises-tu pas alors un simple sprite pour afficher le curseur ?
Comme ça, ça serait cross-platform.
Re: États souris et screen
Publié : lun. 28/sept./2015 11:04
par Joubarbe
J'ai en effet déjà essayé d'afficher un sprite et de passer par DesktopMouseX/Y() (ou WindowMouseX/Y()). Le problème est que lorsque tu ExamineMouse() sous Linux, le curseur hardware reste au milieu de l'écran. Et il me faut utiliser la bibliothèque Mouse pour avoir l'état "pushed". De plus, le fait d'afficher un sprite annule l'intérêt de la souris hardware, et ajoute cette sensation de latence (décalage entre le mouvement et ce qui est affiché) à la souris.
Malheureusement il ne semble pas avoir d'équivalence de ShowCursor_() sous Linux. Et même si c'était le cas, comme je l'ai dit, la souris, lorsqu'elle est capturée par un "screen", reste bloquée au milieu de l'écran. Et il me faut la bibliothèque Mouse pour avoir l'état "pushed" (Linux n'ayant apparemment pas d'évènement interne pour ça, contrairement à Window et son #WM_LBUTTONDOWN).
Re: États souris et screen
Publié : lun. 28/sept./2015 12:33
par G-Rom
si tu bidouilles un peu en c++ , la sfml utilise ceci comme implémentation
c'est basé sur la lib xcb , remplacant de xlib.
https://fr.wikipedia.org/wiki/XCB
Code : Tout sélectionner
void WindowImplX11::setMouseCursorVisible(bool visible)
{
const uint32_t values = visible ? XCB_NONE : m_hiddenCursor;
ScopedXcbPtr<xcb_generic_error_t> error(xcb_request_check(
m_connection,
xcb_change_window_attributes(
m_connection,
m_window,
XCB_CW_CURSOR,
&values
)
));
if (error)
err() << "Failed to change mouse cursor visibility" << std::endl;
xcb_flush(m_connection);
}
Re: États souris et screen
Publié : jeu. 08/oct./2015 12:01
par blendman
G-Rom a écrit :Sous linux , la souris est completement buggé...
la souris avec initmouse() est buguée sous linux ?
il vaut mieux ne pas l'utiliser ?