Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(307)

Unified Diff: src/gpu/gl/GrGLCreateNullInterface.cpp

Issue 1882563002: Enable NV_path_rendering in the Null GL. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: Rebased to resolve merge conflict Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/gpu/gl/GrGLInterface.h ('k') | tools/gpu/GrContextFactory.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/gl/GrGLCreateNullInterface.cpp
diff --git a/src/gpu/gl/GrGLCreateNullInterface.cpp b/src/gpu/gl/GrGLCreateNullInterface.cpp
index 80a7cfbd2cdba26465042be242be89925edf01e0..7282667913b9b368a58ae7983415ef2127fe58da 100644
--- a/src/gpu/gl/GrGLCreateNullInterface.cpp
+++ b/src/gpu/gl/GrGLCreateNullInterface.cpp
@@ -112,7 +112,7 @@ private:
/** Null interface implementation */
class NullInterface : public GrGLTestInterface {
public:
- NullInterface()
+ NullInterface(bool enableNVPR)
: fCurrArrayBuffer(0)
, fCurrElementArrayBuffer(0)
, fCurrPixelPackBuffer(0)
@@ -120,7 +120,20 @@ public:
, fCurrProgramID(0)
, fCurrShaderID(0)
, fCurrGenericID(0)
- , fCurrUniformLocation(0) {
+ , fCurrUniformLocation(0)
+ , fCurrPathID(0) {
+ fExtensions.push_back("GL_ARB_framebuffer_object");
+ fExtensions.push_back("GL_ARB_blend_func_extended");
+ fExtensions.push_back("GL_ARB_timer_query");
+ fExtensions.push_back("GL_ARB_draw_buffers");
+ fExtensions.push_back("GL_ARB_occlusion_query");
+ fExtensions.push_back("GL_EXT_stencil_wrap");
+ if (enableNVPR) {
+ fExtensions.push_back("GL_NV_path_rendering");
+ fExtensions.push_back("GL_ARB_program_interface_query");
+ }
+ fExtensions.push_back(nullptr);
+
this->init(kGL_GrGLStandard);
}
@@ -293,7 +306,7 @@ public:
break;
case GR_GL_NUM_EXTENSIONS: {
GrGLint i = 0;
- while (kExtensions[i++]);
+ while (fExtensions[i++]);
*params = i;
break;
}
@@ -377,7 +390,7 @@ public:
GrGLint count;
this->getIntegerv(GR_GL_NUM_EXTENSIONS, &count);
if ((GrGLint)i <= count) {
- return (const GrGLubyte*) kExtensions[i];
+ return (const GrGLubyte*) fExtensions[i];
} else {
return nullptr;
}
@@ -507,16 +520,24 @@ public:
}
};
+ // NV_path_rendering
+ GrGLuint genPaths(GrGLsizei range) override {
+ return ++fCurrPathID;
+ }
+
+
private:
- BufferManager fBufferManager;
- GrGLuint fCurrArrayBuffer;
- GrGLuint fCurrElementArrayBuffer;
- GrGLuint fCurrPixelPackBuffer;
- GrGLuint fCurrPixelUnpackBuffer;
- GrGLuint fCurrProgramID;
- GrGLuint fCurrShaderID;
- GrGLuint fCurrGenericID;
- GrGLuint fCurrUniformLocation;
+ BufferManager fBufferManager;
+ GrGLuint fCurrArrayBuffer;
+ GrGLuint fCurrElementArrayBuffer;
+ GrGLuint fCurrPixelPackBuffer;
+ GrGLuint fCurrPixelUnpackBuffer;
+ GrGLuint fCurrProgramID;
+ GrGLuint fCurrShaderID;
+ GrGLuint fCurrGenericID;
+ GrGLuint fCurrUniformLocation;
+ GrGLuint fCurrPathID;
+ SkTArray<const char*> fExtensions;
// the OpenGLES 2.0 spec says this must be >= 128
static const GrGLint kDefaultMaxVertexUniformVectors = 128;
@@ -530,19 +551,17 @@ private:
// the OpenGLES 2.0 spec says this must be >= 8
static const GrGLint kDefaultMaxVaryingVectors = 8;
- static const char* kExtensions[];
-
- static const GrGLubyte* CombinedExtensionString() {
+ const GrGLubyte* CombinedExtensionString() {
static SkString gExtString;
static SkMutex gMutex;
gMutex.acquire();
if (0 == gExtString.size()) {
int i = 0;
- while (kExtensions[i]) {
+ while (fExtensions[i]) {
if (i > 0) {
gExtString.append(" ");
}
- gExtString.append(kExtensions[i]);
+ gExtString.append(fExtensions[i]);
++i;
}
}
@@ -600,16 +619,6 @@ private:
typedef GrGLTestInterface INHERITED;
};
-const char* NullInterface::kExtensions[] = {
- "GL_ARB_framebuffer_object",
- "GL_ARB_blend_func_extended",
- "GL_ARB_timer_query",
- "GL_ARB_draw_buffers",
- "GL_ARB_occlusion_query",
- "GL_EXT_stencil_wrap",
- nullptr, // signifies the end of the array.
-};
-
} // anonymous namespace
-const GrGLInterface* GrGLCreateNullInterface() { return new NullInterface; }
+const GrGLInterface* GrGLCreateNullInterface(bool enableNVPR) { return new NullInterface(enableNVPR); }
« no previous file with comments | « include/gpu/gl/GrGLInterface.h ('k') | tools/gpu/GrContextFactory.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698