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

Side by Side Diff: src/gpu/GrDrawTarget.h

Issue 23120004: Change Atlas recycling to track current flush count and recycle if Atlas not used in current flush. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Disable font cache stats; clean up whitespace. Created 7 years, 4 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 | Annotate | Revision Log
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef GrDrawTarget_DEFINED 10 #ifndef GrDrawTarget_DEFINED
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 } 614 }
615 } 615 }
616 616
617 ~AutoGeometryAndStatePush() { fTarget->popGeometrySource(); } 617 ~AutoGeometryAndStatePush() { fTarget->popGeometrySource(); }
618 618
619 private: 619 private:
620 AutoStateRestore fState; 620 AutoStateRestore fState;
621 GrDrawTarget* fTarget; 621 GrDrawTarget* fTarget;
622 }; 622 };
623 623
624 ///////////////////////////////////////////////////////////////////////////
625 // Flush tracking (for font atlases and other resources)
626 class FlushToken {
627 public:
628 FlushToken(GrDrawTarget* drawTarget, uint32_t flushID) :
629 fDrawTarget(drawTarget), fFlushID(flushID) {}
630
631 bool isCurrent() { return NULL != fDrawTarget && fDrawTarget->isCurrentF lush(fFlushID); }
bsalomon 2013/08/14 19:04:27 I think we should reverse the sense of this: isFlu
jvanverth1 2013/08/15 14:49:58 Done.
632
633 private:
634 GrDrawTarget* fDrawTarget;
635 uint32_t fFlushID; // this may wrap, but we're doing direct comp arison
636 // so that should be okay
637 };
638
639 virtual FlushToken getCurrentFlushToken() { return FlushToken(this, 0); }
640 virtual bool isCurrentFlush(uint32_t) { return false; }
641
624 protected: 642 protected:
625 643
626 enum GeometrySrcType { 644 enum GeometrySrcType {
627 kNone_GeometrySrcType, //<! src has not been specified 645 kNone_GeometrySrcType, //<! src has not been specified
628 kReserved_GeometrySrcType, //<! src was set using reserve*Space 646 kReserved_GeometrySrcType, //<! src was set using reserve*Space
629 kArray_GeometrySrcType, //<! src was set using set*SourceToArray 647 kArray_GeometrySrcType, //<! src was set using set*SourceToArray
630 kBuffer_GeometrySrcType //<! src was set using set*SourceToBuffer 648 kBuffer_GeometrySrcType //<! src was set using set*SourceToBuffer
631 }; 649 };
632 650
633 struct GeometrySrcState { 651 struct GeometrySrcState {
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 const GrClipData* fClip; 864 const GrClipData* fClip;
847 GrDrawState* fDrawState; 865 GrDrawState* fDrawState;
848 GrDrawState fDefaultDraw State; 866 GrDrawState fDefaultDraw State;
849 // The context owns us, not vice-versa, so this ptr is not ref'ed by DrawTar get. 867 // The context owns us, not vice-versa, so this ptr is not ref'ed by DrawTar get.
850 GrContext* fContext; 868 GrContext* fContext;
851 869
852 typedef GrRefCnt INHERITED; 870 typedef GrRefCnt INHERITED;
853 }; 871 };
854 872
855 #endif 873 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698