Re: WinRT keep display on
hardcoredaniel <[email protected]>
| Newsgroups | gmane.comp.lib.sdl |
|---|---|
| Message-ID | <S6V.BD9t.1AajoKV0b}[email protected]> |
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]
(mailto:[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](mailto:[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