Changed the initial state of the ep_locations_ and castling_rights_ stacks. (No idea what happened on that last commit with the merge.)
Changed Piece to a bitfield.
Changed Move to a bitfield.
Fixed a potential bug in Move.promoted.
Castling works now, but it's really janky. Committing so that I can refer back to this in case things go terribly awry.
Added Piece::Pawn to get rid of some conditionals. I'll optimize that later.
Just some odds and ends. Removed bitwise nonsense because the compiler is smarter than me.
Enforced const-correctness (except in parameters passed by value, because gcc doesn't care)
Added Move constructors, and got rid of static "constructors" and some tests. Also, added a "color" field to Move.
Added methods to Board: isLegalMove, isInCheckmate, isInStalemate, isInSomemate.
Restructured the unit tests, and eliminated the need for the "test_" prefix.
Changed makeMove and undoMove to use the new Move.color field.
Added wxWidgets to the build. Not sure how to properly get the dependencies into the repository, but I can change that later.
Well, it's not pretty, but it now displays _something_, which is much better than I hoped. Committing not because it is clean, but because it works.
Cleaned up from the previous commit. Lots of documentation and reorganization. Also, shaders are now loaded from file.
Renamed shaders.
Added dragging capability and dummy piece models.
Bug: don't take addresses of temporaries.
Added Board.setup().
Made dummy piece models reflect the piece type with their hue.