Merge branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Merge branch 'develop3d' into FontProcessor
Merge branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Implemented ResizePowerOfTwo.
Update MonoGame.Framework/Graphics/Effect/EffectParameter.cs

I needed to implement GetValueMatrix() for a project so I'm adding my minor work as a pull request.
Implemented ColorKeyEnabled.
Merge pull request #1248 from puargs/patch-1

Implement Graphics.Effect.EffectParameter.GetValueMatrix()
Merge pull request #1247 from SickheadGames/ResizePoT

Implemented ResizePowerOfTwo
Removed miscomitted test value.
Fixed premultiplied alpha. Removed GraphicsUtil.PremultiplyAlpha().
Added events for KeyUp and KeyDown

The KeyUp and KeyDown methods are very important for low level keyboard
access but in MonoGame the general solution of overriding the view
cannot be done so I expose both as events.
Merge pull request #1249 from SickheadGames/ColorKeyEnabled

Implemented chroma keying
Suppport for all Bitmap PixelFormats.
Merge branch 'PremultiplyAlpha' into MorePixelFormats
Rebase off of PremultiplyAlpha.
Merge pull request #1252 from SickheadGames/PremultiplyAlpha

Fix for Premultiply Alpha.
Merge branch 'develop3d' into MorePixelFormats
Merge pull request #1253 from SickheadGames/MorePixelFormats

Support for all PixelFormats
Ignore mip maps for non power of two textures when device doesn't support them

Added a GraphicsCapabilities class to test for non-power of two texture support. In the future this can be extended to test for other things.

This feature is important because when you supply non PoT mip maps and the device doesn't support them, you will GL errors. Also, on Android some devices support them and others don't, meaning you may test your game and have it work fine but once released it will crash on other devices.

The support for mip maps with non-PoT textures is patchy, but more and more devices have support so it'd be a shame to disable it outright.

So far I've tested on an iPad 1, Windows 7, Android 4.0 Samsung GalaxyS2, and a MacBook (not pro).

The only part I'm not confident about is the handling of OPENGL non-GLES platforms (ie desktop PC, Mac and Linux). I took the advice given here: http://aras-p.info/blog/2012/10/17/non-power-of-two-textures/ (OpenGL section), which suggests a more reliable way of deciding on PoT support is whether the card supports 8192 sized textures. This is pretty safe. The only risk is that certain older devices that don't support 8192 textures but do fully support non-PoT textures will have their non-PoT mip maps discarded. Not likely to be a problem IMO as non PoT textures are mostly for UI elements and not likely to have mip maps anyway.
Merge pull request #1254 from Aranda/npot

Ignore mip maps for non power of two textures when device doesn't support them