Replace fallible conversion to be infallible
Move Pixels initialization into Screen::new()
Unify clear_color setting for Pixels and Screen
Make timing reporting nicer
Draw elements with reduced alpha
Refactor box vector drawing
Set AutoVsync and alpha blending for the pixels buffer
Combine controls into struct and limit redrawing
Before, a redraw would take place whenever any window event would come
in. This includes mouse movement when the window is in focus. This is
not necessary, since nothing on the screen would need to change. In
order to cut back on such unnecessary redraws, the controls are checked
for changes. If any of them have changed, a redraw _is_ requested.
To ease this comparison and to bring back similar values into a readable
collection, the controls have been moved to the Controls struct.
For now, the struct lives in the main function. May move it out at some
later point, when I also add the control logic to the struct. For now,
that logic still lives in main.
On window resize events, the redraw is explicitly requested as well.
Move resize logic to a method and make pixels private
This will prevent me from messing with the pixels field elsewhere, and
allows me to encapsulate the managing of internal state. For example, we
want to make sure that _both_ the buffer and texture are resized.
Only clear a pixel when it is within the screen
Give atomname and resname aliased types
Explicitly set box vector colors
Make non-solvent atoms a darker grey
Implement backbone tracing
Add ability to use different bond computations
Different bond determination inference methods can be specified during structure loading.
Also, added a alpha-carbon trace that shows lines between the Ca atoms
of the structure.
Fix documentation of project