Hur kan man få OpenGL tråden att sova?

Diskussion i 'Frågor, support och diskussion' startad av Edgar Varningsson, 6 sept 2011.

  1. Edgar Varningsson

    Edgar Varningsson Infant Droid Medlem

    Blev medlem:
    11 okt 2010
    Inlägg:
    10
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag vill att OpenGL tråden ska sova en viss tid. Hur kan man implementera detta? Dokumentationen säger att jag ska göra så här

    queueEvent(new Runnable() {
    public void run() {
    mMyRenderer.handleDpadCenter();
    }});

    för att kommunicera med OpenGL tråden. Men hur kan jag instruera tråden att sova om jag använder denna metodik? Hur kan jag få tag på en referens till tråden?
     
  2. gibbon

    gibbon Kid Droid Medlem

    Blev medlem:
    29 jul 2009
    Inlägg:
    59
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag antar då att du använder GLSurfaceView och dess continuous render mode? Varför inte byta till render when dirty och eventuelly söva UI-tråden om du måste? Eller skapa en tredje tråd för logiken om du inte vill söva UI-tråden..
     
  3. Edgar Varningsson

    Edgar Varningsson Infant Droid Medlem

    Blev medlem:
    11 okt 2010
    Inlägg:
    10
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag hittade den här informationen om hur man ändrar render mode:
    --------
    GLSurfaceView.setRenderMode(RENDERMODE_WHEN_DIRTY), which turns off the continuous animation. Then you call
    GLSurfaceView.requestRender() whenever you want to re-render.
    -------------
    Men hur kan jag få tag på en referens till tråden, så att jag kan söva den?
     
  4. gibbon

    gibbon Kid Droid Medlem

    Blev medlem:
    29 jul 2009
    Inlägg:
    59
    Mottagna gillanden:
    0

    MINA ENHETER

    Vilken tråd är det du vill söva egentligen, och varför? Någon tråd-referens vet jag inte om du kan få. Thread.sleep() är det väl annars man använder, men det verkar lite fel att göra det med både GL- och UI-tråd.
     
  5. Edgar Varningsson

    Edgar Varningsson Infant Droid Medlem

    Blev medlem:
    11 okt 2010
    Inlägg:
    10
    Mottagna gillanden:
    0

    MINA ENHETER

    Tack, det fungerade! Jag behövde inte använda RENDERMODE_WHEN_DIRTY. Det räckte med att anropa static metoden sleep() för att få GL tråden att sova. Funktionaliteten kommer att finnas med på min en app som jag kommer att släppa nästa vecka:

    Mobile visuals - Android, Java, Blackberry and Symbian apps