Eszközkezlelés (bill., egér) Linux és Win alatt
2005-10-22T12:21:43+02:00
2005-11-02T20:11:49+01:00
2022-07-26T22:37:34+02:00
  • Na, +csináltam, de a köv. a gondom:
    //persze kell most +2 változó az előző coord-oknak (oX, oY)
    ha MOUSEMOTION az event.type akkor hozzáadom a posX és posY -hoz az xrel-t és yrel-t.
    a kirajzolásnál a camera szögét a posX-oX és posY-oY alapján meghatározom
    végül oX = posX; oY = posY;

    és mégis a camera akkor is forog, ha nem mozgatom az egeret
    hol a hiba???
    sztem a hozzáadás nem stimm, v. többször hívódik meg az event, mint kéne...
    Mutasd a teljes hozzászólást!
  • Lehet (tuti :), h télleg az én progimban van az error, de a quake4, stb. csak linuxon használja, nem??
    Még kipróbálom a SHADOW által javasolt dolgokat majd +látom mi sül ki belőle.
    Mutasd a teljes hozzászólást!
  • udv,
    a glut valodi fullscreen( mert hát a fullscreen keret nélküli ablak, teljes képernyőn, & glutentergamemode vagy vmi ilyesmivel tud felbontást is váltani
    Mutasd a teljes hozzászólást!
  • És a hozzászólásom második felét nem olvastad el?

    1. show mouse off
    2. grab input on
    3. relativ (előző pozicióhoz képesti) koordinátákat ettől kezdve kapni fox, csak fixeket nem
    Mutasd a teljes hozzászólást!
  • Elvileg mülködnie kéne normálisan. Ha glut-ban csinálod, akkor gyorsan megy az event kezelés? Mer azt valószínűtlennek tartom, hogyha az et, az ut, a doom3, a quake4 jól fut, akkor a te programodnál lassú legyen az SDL.
    Az asm-el pedig szvsz bazisokat fogsz szívni. Akkor már inkább freeglut.
    Mutasd a teljes hozzászólást!
  • kipróbáltam a SDL_PollEvent()-tel, de így mégrosszabb lett . Úgyhogy asszem az oprendszer specifikus megoldások helyett válsztom az asm-et.

    ha SDL-t használok, nagyon lassan reagálja le az eseményeket... pl.: körülnézek az egérrel, miközben megyek és miután mindent elengedtem még mindig megy tovább

    Úgyhogy AT&T-s asmben megírom, és úgy legalább (remélem menni) fog.
    Mutasd a teljes hozzászólást!
  • +néztem a WarpMouse()-t. és talán jó is lenne, csak csinál maga után egy event-et, és emiatt túl soxor fut le az a rész sztem (legalábbis még mindig villog, ha bill.-t nyomok és az egeret mozgatom). a PollEvent-tel ki kéne vennem az üzenetet rögtön a WarpMouse után??
    Mutasd a teljes hozzászólást!
  • oh, 10x pedig télleg átnéztem egy csomószor az events-részt
    Mutasd a teljes hozzászólást!
  • Akkor nézd át mégegyszer azt a docot... SDL_WarpMouse().

    De ha megtetted volna, akkor az is bennevan, hogy
    "If the cursor is hidden (SDL_ShowCursor(0)) and the input is grabbed (SDL_WM_GrabInput(SDL_GRAB_ON)), then the mouse will give relative motion events even when the cursor reaches the edge fo the screen. This is currently only implemented on Windows and Linux/Unix-a-likes."
    Mutasd a teljes hozzászólást!

  • asszem mégis asm-ben fogom +írni az eszkkezelést.
    végignéztem az egész sdl-doc.ot, de nem találtam benne olyan fv-t, amivel a kurzor pozícióját lehet beállítani, így kénytelen vagyok az oprendszerét használni, és így meg - win alatt - marha lassú(szaggat, és késve mozog). Kipróbáltam SetCursorPos()-nélkül, és úgy szép egészen addig, amíg el nem éri az ablak szélét(onnan ugyebár nem megy tovább).
    SDL_ShowCursor(FALSE) -ral meg nem érzékeli a mozgatást, úgyhogy 1 átlátszó kurzort használtam.

    Ha jól tudom, win32 alatt nem lehet megszakításokat hívni, ugye?
    de ha a védett mód táblázatából hívom??
    úgy elvileg mennie kell, nem?
    //különben hogy működnének a régebbi védett módú DOS-os játékok, meg persze az oprendszer is "olvassa vhonnan az egérpozíciót, bill., stb."
    szal úgy működhet, ha védett módú megszakításokat használok a progimban, nem
    Mutasd a teljes hozzászólást!
  • de ,én úgy olvastam, h az nem _valódi_ fullscreen, csak keret nélkül rajzol + eltünteti a tálcát. De pl. felbontást nem tud váltani, stb. (lehet, h rosszul tudom, de utánanézek)
    Mutasd a teljes hozzászólást!
  • a GLUT-ot meg nem szeretem, mert nem lehet vele fullscreent.


    Miért ne lehetne? glutFullScreen();
    Nekem működik.

    (Egyébként a GLUT-nál az SDL tényleg jobb.)
    Mutasd a teljes hozzászólást!
  • 10x, az UT sebessége + fog fLLni
    a megjelenítés persze OGL, a GLUT-ot meg nem szeretem, mert nem lehet vele fullscreent.
    Mutasd a teljes hozzászólást!
  • Megbízhatóság: eddig nem volt vele gondom, bár mostanában nem használom. Pl. ezt használja az UT linuxos portja, úgyhogy biztos elég megbízható.
    Gyorsaság: OpenGL-el használva gyors, annyira OpenGL-el nem teszteltem (csak az UT-vel:), lehet, hogy kicsit lassabb, mintha glut-t használnál.
    Viszont, ha csak simán ezt használod mint grafikus vezérlő, pl. spriteokat ezzel kezeled, pontokat rajzolsz ki, na úgy lassúcska.
    Mutasd a teljes hozzászólást!
  • persze lehet,h írnék 3d-s leképezőt ( a Prog.Hu-s cikk alapján nem lenne nehéz ) csak az szoftveres, azaz lassú lenne. De ha tudtok leírást grafkártya programozásáról, +köszönném.

    u.i.: mostmár szint biztos, h SDL-t fook használni, mert a timert, meg a thread-et is abból használom
    u.i2.: mi a tapasztalatotok az SDL-ről? pl.:sebesség, megbízhatóság...
    Mutasd a teljes hozzászólást!
  • OpenGL mellett nem szoktak asm-ben billentyűzet meg egér vezérlőt írni, de persze meg lehetne oldani. Szval, ha valaki assemblerrel akarja megvalósítani az inputot, akkor az már a renderelő részt is meg tudja írni. De persze a kettőnek nincs köze egymáshoz, csak kicsit furcsáltam az elképzelést...
    Mutasd a teljes hozzászólást!
  • Miért? A kettőnek van köze egymáshoz?
    Mutasd a teljes hozzászólást!
  • Valóban, nincs dx linuxra (egyelőre:), de ha már asm szinten akartál input eszközöket kezelni, gondoltam valami saját 3d leképzőrendszered lehet...
    Mutasd a teljes hozzászólást!
  • 10x, igen OGL (Dx-el nehéz lenne Lx alatt, :D). Jó lesz, bár csak bill. és egérkezelésre fog kelleni a hang OpenAL (na jó a videólejátszás is talán).
    Mutasd a teljes hozzászólást!
  • OpenGl? Ha igen, akkor javaslom az SDL-t, az van Win-re, linuxra, Macre, meg sokminden más oprencerre.
    Mutasd a teljes hozzászólást!
  • Egy eszkkezelő osztályt (v. structot) szeretnék írni a 3D progomhoz. Eddig a Win WM_KEYUP és társait használom, de ez nem a legmegfelelőbb, mert 5-nél több gomb esetén sípol, az egérgörgőt nem tom kezelni, meg hát Lx alatt nem megy. Ha asm-ben írok 1et az műxik Lx alatt és win alatt is? És 64bites prociknál is??
    Mutasd a teljes hozzászólást!
abcd