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

Unified Diff: gpu/command_buffer/service/feature_info.cc

Issue 169403005: command_buffer: Implement path rendering functions for CHROMIUM_path_rendering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@nv-pr-02-texgen
Patch Set: Created 5 years, 6 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
Index: gpu/command_buffer/service/feature_info.cc
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc
index c747383ee818f090e2d061493253a1a784ade3d3..e6df3d4a608e7ecdd5990116901d60683e415eb3 100644
--- a/gpu/command_buffer/service/feature_info.cc
+++ b/gpu/command_buffer/service/feature_info.cc
@@ -209,6 +209,9 @@ void FeatureInfo::InitializeBasicState(const base::CommandLine& command_line) {
enable_unsafe_es3_apis_switch_ =
command_line.HasSwitch(switches::kEnableUnsafeES3APIs);
+ enable_gl_path_rendering_switch_ =
+ command_line.HasSwitch(switches::kEnableGLPathRendering);
+
unsafe_es3_apis_enabled_ = false;
}
@@ -1004,13 +1007,22 @@ void FeatureInfo::InitializeFeatures() {
}
}
- if (extensions.Contains("GL_NV_path_rendering")) {
- if (extensions.Contains("GL_EXT_direct_state_access") ||
- gl_version_info_->is_es3) {
+ if (enable_gl_path_rendering_switch_ &&
+ extensions.Contains("GL_NV_path_rendering")) {
+ bool hasNeededOptionalFunctions =
+ gfx::GetGLProcAddress("glStencilThenCoverFillPathNV") &&
+ gfx::GetGLProcAddress("glStencilThenCoverStrokePathNV");
piman 2015/06/27 01:20:07 Why is this needed?
Kimmo Kinnunen 2015/06/29 05:46:04 These required functions are part of the API versi
piman 2015/06/29 23:31:17 I don't much like this idea of extension "API vers
+
+ if (hasNeededOptionalFunctions &&
+ (extensions.Contains("GL_EXT_direct_state_access") ||
+ gl_version_info_->is_es3)) {
AddExtensionString("GL_CHROMIUM_path_rendering");
feature_flags_.chromium_path_rendering = true;
validators_.g_l_state.AddValue(GL_PATH_MODELVIEW_MATRIX_CHROMIUM);
validators_.g_l_state.AddValue(GL_PATH_PROJECTION_MATRIX_CHROMIUM);
+ validators_.g_l_state.AddValue(GL_PATH_STENCIL_FUNC_CHROMIUM);
+ validators_.g_l_state.AddValue(GL_PATH_STENCIL_REF_CHROMIUM);
+ validators_.g_l_state.AddValue(GL_PATH_STENCIL_VALUE_MASK_CHROMIUM);
}
}

Powered by Google App Engine
This is Rietveld 408576698