Split Caps into Caps, Extensions and TextureFormatCaps.
Context now holds it's own Caps, Extensions and TextureFormat caps so that it
can modify them based on client version or work-arounds.
BUG=angle:658
Change-Id: Id71b6c89b7aa36e1f3dc42b0e4720eaed1851fb9
Reviewed-on: https://chromium-review.googlesource.com/206480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h
index 919b5a5..1ca5f3c 100644
--- a/src/libGLESv2/renderer/Renderer.h
+++ b/src/libGLESv2/renderer/Renderer.h
@@ -144,7 +144,9 @@
virtual bool testDeviceResettable() = 0;
// Renderer capabilities (virtual because it is used by egl::Display, do not override)
- virtual const gl::Caps &getCaps() const;
+ virtual const gl::Caps &getRendererCaps() const;
+ virtual const gl::TextureCapsMap &getRendererTextureCaps() const;
+ virtual const gl::Extensions &getRendererExtensions() const;
virtual DWORD getAdapterVendor() const = 0;
virtual std::string getRendererDescription() const = 0;
@@ -255,10 +257,12 @@
private:
DISALLOW_COPY_AND_ASSIGN(Renderer);
- virtual gl::Caps generateCaps() const = 0;
+ virtual void generateCaps(gl::Caps *outCaps, gl::TextureCapsMap* outTextureCaps, gl::Extensions *outExtensions) const = 0;
mutable bool mCapsInitialized;
mutable gl::Caps mCaps;
+ mutable gl::TextureCapsMap mTextureCaps;
+ mutable gl::Extensions mExtensions;
int mCurrentClientVersion;
};