Da GTK+ auf X aufsetzt, kannst du bei GTK-Anwendungen Xlib voraussetzen.Little John hat geschrieben: Wenn man die Schnittstelle von Xlib verwendet, kann es dann sein dass das Programm auf best. Linux-Distributionen nicht läuft, oder wie kompatibel ist das?
Suche äquivalente Linux-API-Befehle zu WinAPI-Befehlen
-
- Beiträge: 338
- Registriert: 05.09.2004 18:47
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
NicTheQuick hat geschrieben:Folgender Code:Code: Alles auswählen
XWarpPointer_(#Null, #Null, #Null, 0, 0, 0, 0, 100, 100) Debug "test2" MessageRequester("", "test")
Ich fühle mich grad wieder wie ein Anfänger.[COMPILER] Zeile 1: XWarpPointer_() is not a function, array, macro or linked list.![]()
Was hab ich nun wieder falsch gemacht? Hat jemand liebenswürdigerweise ein
funktionierendes Code-Beispiel, wie ich mit dem Befehl umgehen muss?
Code: Alles auswählen
ImportC ""
XOpenDisplay(display_name.p-ascii)
XCloseDisplay(display)
XDefaultRootWindow(display)
XWarpPointer(display, src_w, dest_w, src_x, src_y, src_width, src_height, dest_x, dest_y)
EndImport
disp.s = GetEnvironmentVariable("DISPLAY")
Debug disp
d = XOpenDisplay(disp)
root = XDefaultRootWindow(d)
XWarpPointer(d, root, root, 0, 0, 0, 0, 100, 100)
XCloseDisplay(d)
End
OpenWindow(0,0,0,0,0,"")
Da das ganze ja ein Raytracer ist, würde ich mit SDL bzw. den PB-eigenenNicTheQuick hat geschrieben:Naja, wenn ich schonmal hier bin, gleich die nächste Frage zu meinem eigentlich Problem:
Ich will ein Fenster erstellen und den Mauscursor immer in der Mitte des Fensters belassen.
Wenn man die Maus dann bewegt, soll sich die Kamera drehen. Wie in einer Art
Ego-Shooter. So hatte ich es bisher auch unter Windows immer gemacht.
Jetzt hab ich aber gesehen, dass 'SetCursorPos_()' keine Events wirft, aber
'XWarpPointer_()' hingegen schon. Das heißt bei jedem Zurücksetzen des bewegten
Cursors auf die Mitte des Fenster würden Gegenevents zur Benutzerbewegung
erzeugt werden, was die ganze Aktion dann ziemlich sinnlos machen würde.
Wie würdet ihr das sonst machen?
Ich kopier PureBasic jetzt endlich mal nach /opt/. ^^
Inputfunktionen arbeiten.
Wenn du in ein ImageGadget() zeichnest, kannst du aber auch per
GTK-Callback die Mausbewegungen erhalten und steuern. Hier ein guter
Link, der das Steuern der Maus per GDK (anstatt XLib) zeigt:
http://www.gtkforums.com/about182.html
Ein einfaches Callback auf "motion-notify-event" wird dir auch die
Mausbewegungen liefern

- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken