Fix GL attach/detach in Mac SampleApp
Review URL: http://codereview.appspot.com/5984043/
git-svn-id: http://skia.googlecode.com/svn/trunk@3587 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 4b3d942..7589da90 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -22,11 +22,11 @@
#include "SkTLazy.h"
#include "SkTrace.h"
-#define DEFER_TEXT_RENDERING 1
+#define DEFER_TEXT_RENDERING 0
-#define DEFER_PATHS 1
+#define DEFER_PATHS 0
-#define BATCH_RECT_TO_RECT (1 && !GR_STATIC_RECT_VB)
+#define BATCH_RECT_TO_RECT (0 && !GR_STATIC_RECT_VB)
#define MAX_BLUR_SIGMA 4.0f
@@ -2056,7 +2056,6 @@
GrAssert(NULL == fDrawBufferVBAllocPool);
GrAssert(NULL == fDrawBufferIBAllocPool);
-#if DEFER_TEXT_RENDERING || BATCH_RECT_TO_RECT
fDrawBufferVBAllocPool =
new GrVertexBufferAllocPool(fGpu, false,
DRAW_BUFFER_VBPOOL_BUFFER_SIZE,
@@ -2069,11 +2068,7 @@
fDrawBuffer = new GrInOrderDrawBuffer(fGpu,
fDrawBufferVBAllocPool,
fDrawBufferIBAllocPool);
-#endif
-
-#if BATCH_RECT_TO_RECT
fDrawBuffer->setQuadIndexBuffer(this->getQuadIndexBuffer());
-#endif
fDrawBuffer->setAutoFlushTarget(fGpu);
fDrawBuffer->setDrawState(fDrawState);
}
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index 8214b6e..08ab47a 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -1848,6 +1848,7 @@
// we prefer smooth lines over multisampled lines
// msaa should be disabled if drawing smooth lines.
+ bool handledMSAA = false;
if (GrIsPrimTypeLines(type)) {
bool smooth = this->willUseHWAALines();
if (!fHWAAState.fSmoothLineEnabled && smooth) {
@@ -1857,14 +1858,15 @@
GL_CALL(Disable(GR_GL_LINE_SMOOTH));
fHWAAState.fSmoothLineEnabled = false;
}
- if (rt->isMultisampled() &&
- fHWAAState.fMSAAEnabled) {
+ if (smooth && rt->isMultisampled() && fHWAAState.fMSAAEnabled) {
GL_CALL(Disable(GR_GL_MULTISAMPLE));
fHWAAState.fMSAAEnabled = false;
+ handledMSAA = true;
}
- } else if (rt->isMultisampled() &&
- this->getDrawState().isHWAntialiasState() !=
- fHWAAState.fMSAAEnabled) {
+ }
+ if (!handledMSAA && rt->isMultisampled() &&
+ this->getDrawState().isHWAntialiasState() !=
+ fHWAAState.fMSAAEnabled) {
if (fHWAAState.fMSAAEnabled) {
GL_CALL(Disable(GR_GL_MULTISAMPLE));
fHWAAState.fMSAAEnabled = false;