Split the RenderTarget classes based on if they are backing a SwapChain.

bug=angle:824

Change-Id: I89e475d4065102dbaa7fa1f1bfd02c7207def75c
Reviewed-on: https://chromium-review.googlesource.com/227600
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Move BlitFramebuffer logic into RendererD3D.

BUG=angle:789

Change-Id: Ib3f830ba2f915a5fa4fa552dccc13c24575aa843
Reviewed-on: https://chromium-review.googlesource.com/226063
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Move the Context ReadPixels logic into RendererD3D.

BUG=angle:789

Change-Id: I0a678f8fe31a3e7ddd9a675a0e3cb0342299b0e3
Reviewed-on: https://chromium-review.googlesource.com/226064
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Pass GL caps and version to compiler.

This allows us to get rid of some of the reliance on storing the
current context client version in the Renderer. A subsequent
patch will allow us to remove the client version ugly hack.

BUG=angle:789

Change-Id: I139e0f66e1d39e5cd41a484c841a7101b1f29540
Reviewed-on: https://chromium-review.googlesource.com/227712
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Refactor Framebuffer attachment application.

Instead of passing texture and renderbufer IDs which requires a call to
gl::getNonLostContext to resolve the objects, pass the Texture and Renderbuffer
objects directly.

BUG=angleproject:733

Change-Id: Ia500a781643e43a17c8e9cea9f95847a7ff7b25d
Reviewed-on: https://chromium-review.googlesource.com/228280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>