Suche äquivalente Linux-API-Befehle zu WinAPI-Befehlen

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag von FloHimself »

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?
Da GTK+ auf X aufsetzt, kannst du bei GTK-Anwendungen Xlib voraussetzen.
Little John

Beitrag von Little John »

Danke für die Information!

Gruß, Little John
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

NicTheQuick hat geschrieben:Folgender Code:

Code: Alles auswählen

XWarpPointer_(#Null, #Null, #Null, 0, 0, 0, 0, 100, 100)
Debug "test2"
MessageRequester("", "test")
[COMPILER] Zeile 1: XWarpPointer_() is not a function, array, macro or linked list.
Ich fühle mich grad wieder wie ein Anfänger. :lol:

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,"")
NicTheQuick 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/. ^^
Da das ganze ja ein Raytracer ist, würde ich mit SDL bzw. den PB-eigenen
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 :)
Benutzeravatar
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

Beitrag von NicTheQuick »

Das sieht ja mal gut aus. Werde ich die Tage mal testen. Heute ist leider keine Zeit mehr
dafür.

Also Danke schonmal dafür! :allright:
Antworten