Setting _mousePosY is only necessary if we actually set the cursor
position which we currently don't do. I don't plan on enabling it
but for the sake of matching disassembly let's add the required
warpMouse() call and disable the whole code block for now.
Configure will still build every target with shared objects by default.
Done:
- Added a configure switch (--enable-static) for static builds
- Right now only tested for SDL targets (checked working on AmigaOS4 with SDL1/2)
Missing:
- Add the platforms that need the switch for cross-compiling (macOS, iOS, probably more)
(I can´t do that myself as i have never cross-compiled and wouldn´t be able to check)
@csnover asked on the forums to create a PR for it, so, with my limited (non-existant is more like it) knowledge, i wrapped something up.
I *know* that it isn´t enough, as there already is some kind of static builds flag in configure (_engines_built_static). As i don´treally know if this is the same or a different cause (static plugins?), i´m not touching it.
But please feel free to add or change what needs to be done.
Drawing nows happens directly when the Dialog or Widget draw methods are
called. This makes it easy to debug why a particular low level draw
method was called, by inspecting the call stack.
This replaces the notion of "buffering" by two independant ways to
control what is drawn and where:
- The active layer is used to select whether the foreground or
background part of the dialogs are rendered by the draw calls.
- The active surface is used to select if the draw calls affect the back
buffer or the screen.
The foreground layer of the active dialog is drawn directly to the
screen. Its background layer is drawn to the back buffer. This way
widgets can restore the back buffer in order to update without having to
redraw the dialog's background.
Dialogs lower in the dialog stack are drawn entirely to the back buffer.