author | Benoit Jacob <jacob.benoit.1@gmail.com> |
Mon, 16 Jan 2012 17:07:18 -0500 | |
changeset 84601 | 5634697d0acdc2653354a717f2196e53238a0c46 |
parent 84600 | ca2f62afaf0d120e041cad9f7fe579e10debc5c8 |
child 84602 | 71d5f079acca20cabcbb8f693683234d9c7d5b54 |
push id | 21865 |
push user | Callek@gmail.com |
push date | Tue, 17 Jan 2012 03:28:17 +0000 |
treeherder | mozilla-central@34572943a3e4 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | Ms2ger |
bugs | 717584 |
milestone | 12.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/content/canvas/src/Makefile.in +++ b/content/canvas/src/Makefile.in @@ -35,16 +35,18 @@ # # ***** END LICENSE BLOCK ***** DEPTH = ../../.. topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ +FAIL_ON_WARNINGS = 1 + include $(DEPTH)/config/autoconf.mk MODULE = content LIBRARY_NAME = gkconcvs_s LIBXUL_LIBRARY = 1 EXPORTS = \ CustomQS_Canvas2D.h \ @@ -55,18 +57,16 @@ CPPSRCS = \ CanvasImageCache.cpp \ CanvasUtils.cpp \ nsCanvasRenderingContext2D.cpp \ nsCanvasRenderingContext2DAzure.cpp \ DocumentRendererParent.cpp \ DocumentRendererChild.cpp \ $(NULL) -# Canvas 3D Pieces - ifdef MOZ_WEBGL CPPSRCS += \ WebGLContext.cpp \ WebGLContextGL.cpp \ WebGLContextUtils.cpp \ WebGLContextValidate.cpp \ WebGLExtensionStandardDerivatives.cpp \
--- a/content/canvas/src/WebGLContext.cpp +++ b/content/canvas/src/WebGLContext.cpp @@ -496,19 +496,19 @@ WebGLContext::SetDimensions(PRInt32 widt // know if creating the new context will succeed. DestroyResourcesAndContext(); // Get some prefs for some preferred/overriden things NS_ENSURE_TRUE(Preferences::GetRootBranch(), NS_ERROR_FAILURE); bool forceOSMesa = Preferences::GetBool("webgl.force_osmesa", false); +#ifdef XP_WIN bool preferEGL = Preferences::GetBool("webgl.prefer-egl", false); -#ifdef XP_WIN bool preferOpenGL = Preferences::GetBool("webgl.prefer-native-gl", false); #endif bool forceEnabled = Preferences::GetBool("webgl.force-enabled", false); bool disabled = Preferences::GetBool("webgl.disabled", false); bool verbose = @@ -561,43 +561,52 @@ WebGLContext::SetDimensions(PRInt32 widt gfxInfo && NS_SUCCEEDED(gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_WEBGL_MSAA, &status))) { if (status == nsIGfxInfo::FEATURE_NO_INFO || forceMSAA) { PRUint32 msaaLevel = Preferences::GetUint("webgl.msaa-level", 2); format.samples = msaaLevel*msaaLevel; } } +#ifdef XP_WIN if (PR_GetEnv("MOZ_WEBGL_PREFER_EGL")) { preferEGL = true; } +#endif // Ask GfxInfo about what we should use bool useOpenGL = true; + +#ifdef XP_WIN bool useANGLE = true; +#endif if (gfxInfo && !forceEnabled) { if (NS_SUCCEEDED(gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_WEBGL_OPENGL, &status))) { if (status != nsIGfxInfo::FEATURE_NO_INFO) { useOpenGL = false; } } +#ifdef XP_WIN if (NS_SUCCEEDED(gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_WEBGL_ANGLE, &status))) { if (status != nsIGfxInfo::FEATURE_NO_INFO) { useANGLE = false; } } +#endif } +#ifdef XP_WIN // allow forcing GL and not EGL/ANGLE if (PR_GetEnv("MOZ_WEBGL_FORCE_OPENGL")) { preferEGL = false; useANGLE = false; useOpenGL = true; } +#endif // if we're forcing osmesa, do it first if (forceOSMesa) { gl = gl::GLContextProviderOSMesa::CreateOffscreen(gfxIntSize(width, height), format); if (!gl || !InitAndValidateGL()) { LogMessage("OSMesa forced, but creating context failed -- aborting!"); return NS_ERROR_FAILURE; }
--- a/content/canvas/src/WebGLContextGL.cpp +++ b/content/canvas/src/WebGLContextGL.cpp @@ -1444,17 +1444,17 @@ WebGLContext::UndoFakeVertexAttrib0() return; gl->fBindBuffer(LOCAL_GL_ARRAY_BUFFER, mAttribBuffers[0].buf ? mAttribBuffers[0].buf->GLName() : 0); gl->fVertexAttribPointer(0, mAttribBuffers[0].size, mAttribBuffers[0].type, mAttribBuffers[0].normalized, mAttribBuffers[0].stride, - (const GLvoid *) mAttribBuffers[0].byteOffset); + reinterpret_cast<const GLvoid *>(mAttribBuffers[0].byteOffset)); gl->fBindBuffer(LOCAL_GL_ARRAY_BUFFER, mBoundArrayBuffer ? mBoundArrayBuffer->GLName() : 0); } bool WebGLContext::NeedFakeBlack() { // handle this case first, it's the generic case @@ -1703,17 +1703,17 @@ WebGLContext::DrawElements(WebGLenum mod EnsureBackbufferClearedAsNeeded(); } BindFakeBlackTextures(); if (!DoFakeVertexAttrib0(checked_maxIndexPlusOne.value())) return NS_OK; SetupRobustnessTimer(); - gl->fDrawElements(mode, count, type, (GLvoid*) (byteOffset)); + gl->fDrawElements(mode, count, type, reinterpret_cast<GLvoid*>(byteOffset)); UndoFakeVertexAttrib0(); UnbindFakeBlackTextures(); mBackbufferClearingStatus = BackbufferClearingStatus::HasBeenDrawnTo; Invalidate(); return NS_OK; @@ -4695,17 +4695,17 @@ WebGLContext::VertexAttribPointer(WebGLu vd.byteOffset = byteOffset; vd.type = type; vd.normalized = normalized; MakeContextCurrent(); gl->fVertexAttribPointer(index, size, type, normalized, stride, - (void*) (byteOffset)); + reinterpret_cast<void*>(byteOffset)); return NS_OK; } NS_IMETHODIMP WebGLContext::TexImage2D(PRInt32) { if (!IsContextStable())
--- a/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp +++ b/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp @@ -3076,18 +3076,16 @@ struct NS_STACK_CLASS nsCanvasBidiProces if (mOp == nsCanvasRenderingContext2DAzure::TEXT_DRAW_OPERATION_FILL) { nsCanvasRenderingContext2DAzure::AdjustedTarget(mCtx)-> FillGlyphs(scaledFont, buffer, nsCanvasRenderingContext2DAzure::GeneralPattern(). ForStyle(mCtx, nsCanvasRenderingContext2DAzure::STYLE_FILL, mCtx->mTarget), DrawOptions(mState->globalAlpha, mCtx->UsedOperation())); } else if (mOp == nsCanvasRenderingContext2DAzure::TEXT_DRAW_OPERATION_STROKE) { RefPtr<Path> path = scaledFont->GetPathForGlyphs(buffer, mCtx->mTarget); - - Matrix oldTransform = mCtx->mTarget->GetTransform(); const ContextState& state = *mState; nsCanvasRenderingContext2DAzure::AdjustedTarget(mCtx)-> Stroke(path, nsCanvasRenderingContext2DAzure::GeneralPattern(). ForStyle(mCtx, nsCanvasRenderingContext2DAzure::STYLE_STROKE, mCtx->mTarget), StrokeOptions(state.lineWidth, state.lineJoin, state.lineCap, state.miterLimit, state.dash.Length(),