Instead of using wglGetProcAddress directly and thus forcing a link-time
dependency on that DLL (and because this is a static lib also forcing all
users to link to it).
Makes things work on Mesa 19.2 when DISPLAY is not defined. And opens the
possibilities for *sane* GPU selection. No more environment variables,
globally exported symbols or other BAD SHIT.
Giving out a pointer implied excessive error checking in user code.
There's a new hasApplication() accessor that can be used to check for
application presence, moreover the ScreenedApplication is now
convertible to a pointer to provide backward compatiblity. This
conversion is marked as deprecated and will be removed in a future
release.
On Emscripten as well, however I'm keeping the Configuration::setTitle()
a no-op because the title is usually set by the HTML markup already and
so dynamic code implicitly changing it to something else doesn't make
much sense.
* Wrap the text like in a console because nobody wants to read
kilometers-long horizontal lines with a horizontal scrollbar
* Make the output fill at least the space given to it but let it expand
beyond because a vertical scrollbar in an area of this size is
useless as well.
Because not all applications implement these, it's done via a "mixin". I
never did such a thing before, just got an idea that it could work and
I'm equally amazed and horrified that it actually DOES WORK. The Screen
will now expose the MouseScrollEvent, TextInputEvent and
TextEditingEvent typedefs only if the underlying application has them
too and provides the overrideable mouseScrollEvent(), textInputEvent()
and textEditingEvent() also only if the underlying application has them
-- that also means you can't `override` those if the app doesn't provide
such APIs, which acts as a nice check against accidental overgenericity.
The code was taken straight from Sdl2Application where it assumed the
main render loop polls for canvas size changes and so it would pick it
up automagically. Not the case here, so the viewport event was never
fired after this.