Re: WinRT keep display on

David Ludwig <[email protected]>
Newsgroups gmane.comp.lib.sdl
Message-ID <CAGDc1f=agDMiW1O9_=T9+UqTUqkt4CCxCZ1r9Vhwy2c2Ux2bKw@mail.gmail.com>
I think that'll work.  If not, I went ahead and made SDL manage its own
DisplayRequest, via calls to SDL_EnableScreenSaver() and
SDL_DisableScreenSaver() (via https://hg.libsdl.org/SDL/rev/db77073d402d
).  To note, SDL2 will, by default, call SDL_EnableScreenSaver().

-- David L.


On Sat, Aug 27, 2016 at 12:11 PM, hardcoredaniel <[email protected]>
wrote:

> Hi David,
>
> unfortunately that was the only message of the exception, "a function
> being called at an unexpected time".
>
> I have googled a bit and found a suggestion to keep the DisplayRequest
> object that the requestActive() was called on for the corresponding
> requestRelease() call. This code does at least not crash immediately:
>
>
> DisplayRequest ^ request = nullptr;
>
> void SetKeepDisplayOn(int keepOn)
> {
>
>     if (request == nullptr)
>     {
>         request = ref new DisplayRequest();
>         if (keepOn != 0)
>         {
>             request->RequestActive();
>         }
>         else
>         {
>             SDL_Log("Error: Trying to release display although not
> acquired!\n");
>         }
>     }
>     else
>     {
>         if (keepOn == 0)
>         {
>             request->RequestRelease();
>             request = nullptr;
>         }
>         else
>         {
>             SDL_Log("Error: Trying to acquire display although already
> acquired!\n");
>         }
>     }
> }
>
> but I can't say whether this is really correct and without side effects,
> esp. w.r.t. the lifetime of DisplayRequest objects. Can you please take a
> look at this code for obvious defects?
>
> Regards,
>
> Daniel
>
>
>
> ---------- Původní zpráva ----------
> Od: David Ludwig <[email protected]>
> Komu: SDL Development List <[email protected]>
> Datum: 27. 8. 2016 15:29:14
> Předmět: Re: [SDL] WinRT keep display on
>
> I'm not sure why this call isn't working.  SDL's main thread on WinRT is,
> at present, typically the main thread.
>
> Did the exception contain any more info?
>
> I can plan on looking into this when I get a chance, hopefully in within
> the next few weeks, but make no guarantees.
>
> -- David L.
>
>
> On Sat, Aug 27, 2016 at 7:54 AM, hardcoredaniel <[email protected]>
> wrote:
>
> Hi David,
>
> I'm trying to keep the screen programmatically on for some time, but I'm
> not doing it right. This is my simple code:
>
> --------------------------
>
>     using namespace Windows::System::Display;
>
>     DisplayRequest ^ request = ref new DisplayRequest();
>
>     if (keepOn != 0)
>     {
>         request->RequestActive();
>     }
>     else
>     {
>         request->RequestRelease();
>     }
>
> ---------------------------
>
> but there must be sth. fundamentally wrong with it, because when I call
> RequestRelease() I get an exception from WinRT about calling something at
> an unexpected time. I'm calling it from SDL's main thread, which is
> probably not the UI thread.
>
> I saw in your code for the game bar that you are using something called a
> "dispatcher", I suppose this is to run sth. on the UI thread. Do I need to
> do the same for DisplayRequest()? Anything else I have missed?
>
>
> Regards,
>
> Daniel
>
>
> ______________________________ _________________
> SDL mailing list
> [email protected]
> http://lists.libsdl.org/ listinfo.cgi/sdl-libsdl.org
> <http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org>
>
>
> _______________________________________________
> SDL mailing list
> [email protected]
> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
>
>
> _______________________________________________
> SDL mailing list
> [email protected]
> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
>
>

_______________________________________________
SDL mailing list
[email protected]
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.