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

Side by Side Diff: include/gpu/GrContext.h

Issue 894693003: Add refcnting to SkClipStack on SkCanvas (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: more cleanup Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2010 Google Inc. 2 * Copyright 2010 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrContext_DEFINED 8 #ifndef GrContext_DEFINED
9 #define GrContext_DEFINED 9 #define GrContext_DEFINED
10 10
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 // This enum exists to require a caller of the constructor to acknowledg e that the clip will 688 // This enum exists to require a caller of the constructor to acknowledg e that the clip will
689 // initially be wide open. It also could be extended if there are other desirable initial 689 // initially be wide open. It also could be extended if there are other desirable initial
690 // clip states. 690 // clip states.
691 enum InitialClip { 691 enum InitialClip {
692 kWideOpen_InitialClip, 692 kWideOpen_InitialClip,
693 }; 693 };
694 694
695 AutoClip(GrContext* context, InitialClip SkDEBUGCODE(initialState)) 695 AutoClip(GrContext* context, InitialClip SkDEBUGCODE(initialState))
696 : fContext(context) { 696 : fContext(context) {
697 SkASSERT(kWideOpen_InitialClip == initialState); 697 SkASSERT(kWideOpen_InitialClip == initialState);
698 fNewClipData.fClipStack = &fNewClipStack; 698 fNewClipData.fClipStack.reset(SkRef(&fNewClipStack));
699 699
700 fOldClip = context->getClip(); 700 fOldClip = context->getClip();
701 context->setClip(&fNewClipData); 701 context->setClip(&fNewClipData);
702 } 702 }
703 703
704 AutoClip(GrContext* context, const SkRect& newClipRect) 704 AutoClip(GrContext* context, const SkRect& newClipRect)
705 : fContext(context) 705 : fContext(context)
706 , fNewClipStack(newClipRect) { 706 , fNewClipStack(newClipRect) {
707 fNewClipData.fClipStack = &fNewClipStack; 707 fNewClipData.fClipStack.reset(SkRef(&fNewClipStack));
708 708
709 fOldClip = fContext->getClip(); 709 fOldClip = fContext->getClip();
710 fContext->setClip(&fNewClipData); 710 fContext->setClip(&fNewClipData);
711 } 711 }
712 712
713 ~AutoClip() { 713 ~AutoClip() {
714 if (fContext) { 714 if (fContext) {
715 fContext->setClip(fOldClip); 715 fContext->setClip(fOldClip);
716 } 716 }
717 } 717 }
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 /** 850 /**
851 * This callback allows the resource cache to callback into the GrContext 851 * This callback allows the resource cache to callback into the GrContext
852 * when the cache is still over budget after a purge. 852 * when the cache is still over budget after a purge.
853 */ 853 */
854 static void OverBudgetCB(void* data); 854 static void OverBudgetCB(void* data);
855 855
856 typedef SkRefCnt INHERITED; 856 typedef SkRefCnt INHERITED;
857 }; 857 };
858 858
859 #endif 859 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698