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

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

Issue 715903002: Push creation of default GP to the caller (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: added comment Created 6 years, 1 month 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
« no previous file with comments | « src/gpu/GrDefaultPathRenderer.cpp ('k') | src/gpu/GrDrawTarget.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 GrDrawTarget_DEFINED 8 #ifndef GrDrawTarget_DEFINED
9 #define GrDrawTarget_DEFINED 9 #define GrDrawTarget_DEFINED
10 10
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 return static_cast<int>(src.fIndexBuffer->gpuMemorySize() / size of(uint16_t)); 801 return static_cast<int>(src.fIndexBuffer->gpuMemorySize() / size of(uint16_t));
802 default: 802 default:
803 SkFAIL("Unexpected Index Source."); 803 SkFAIL("Unexpected Index Source.");
804 return 0; 804 return 0;
805 } 805 }
806 } 806 }
807 807
808 GrContext* getContext() { return fContext; } 808 GrContext* getContext() { return fContext; }
809 const GrContext* getContext() const { return fContext; } 809 const GrContext* getContext() const { return fContext; }
810 810
811 // A subclass may override this function if it wishes to be notified when th e clip is changed.
812 // The override should call INHERITED::clipWillBeSet().
813 virtual void clipWillBeSet(const GrClipData* clipData);
814
815 // subclasses must call this in their destructors to ensure all vertex 811 // subclasses must call this in their destructors to ensure all vertex
816 // and index sources have been released (including those held by 812 // and index sources have been released (including those held by
817 // pushGeometrySource()) 813 // pushGeometrySource())
818 void releaseGeometry(); 814 void releaseGeometry();
819 815
820 // accessors for derived classes 816 // accessors for derived classes
821 const GeometrySrcState& getGeomSrc() const { return fGeoSrcStateStack.back() ; } 817 const GeometrySrcState& getGeomSrc() const { return fGeoSrcStateStack.back() ; }
822 // it is preferable to call this rather than getGeomSrc()->fVertexSize becau se of the assert. 818 // it is preferable to call this rather than getGeomSrc()->fVertexSize becau se of the assert.
823 size_t getVertexSize() const { 819 size_t getVertexSize() const {
824 // the vertex layout is only valid if a vertex source has been specified . 820 // the vertex layout is only valid if a vertex source has been specified .
(...skipping 23 matching lines...) Expand all
848 virtual bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) = 0; 844 virtual bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) = 0;
849 virtual bool onReserveIndexSpace(int indexCount, void** indices) = 0; 845 virtual bool onReserveIndexSpace(int indexCount, void** indices) = 0;
850 // implemented by subclass to handle release of reserved geom space 846 // implemented by subclass to handle release of reserved geom space
851 virtual void releaseReservedVertexSpace() = 0; 847 virtual void releaseReservedVertexSpace() = 0;
852 virtual void releaseReservedIndexSpace() = 0; 848 virtual void releaseReservedIndexSpace() = 0;
853 // subclass overrides to be notified just before geo src state is pushed/pop ped. 849 // subclass overrides to be notified just before geo src state is pushed/pop ped.
854 virtual void geometrySourceWillPush() = 0; 850 virtual void geometrySourceWillPush() = 0;
855 virtual void geometrySourceWillPop(const GeometrySrcState& restoredState) = 0; 851 virtual void geometrySourceWillPop(const GeometrySrcState& restoredState) = 0;
856 // subclass called to perform drawing 852 // subclass called to perform drawing
857 virtual void onDraw(const DrawInfo&, const GrClipMaskManager::ScissorState&) = 0; 853 virtual void onDraw(const DrawInfo&, const GrClipMaskManager::ScissorState&) = 0;
858 // Implementation of drawRect. The geometry src and vertex attribs will alre ady 854 // TODO copy in order drawbuffer onDrawRect to here
859 // be saved before this is called and restored afterwards. A subclass may ov erride
860 // this to perform more optimal rect rendering. Its draws should be funneled through
861 // one of the public GrDrawTarget draw methods (e.g. drawNonIndexed,
862 // drawIndexedInstances, ...). The base class draws a two triangle fan using
863 // drawNonIndexed from reserved vertex space.
864 virtual void onDrawRect(const SkRect& rect, 855 virtual void onDrawRect(const SkRect& rect,
865 const SkRect* localRect, 856 const SkRect* localRect,
866 const SkMatrix* localMatrix); 857 const SkMatrix* localMatrix) = 0;
867 858
868 virtual void onStencilPath(const GrPath*, 859 virtual void onStencilPath(const GrPath*,
869 const GrClipMaskManager::ScissorState&, 860 const GrClipMaskManager::ScissorState&,
870 const GrStencilSettings&) = 0; 861 const GrStencilSettings&) = 0;
871 virtual void onDrawPath(const GrPath*, 862 virtual void onDrawPath(const GrPath*,
872 const GrClipMaskManager::ScissorState&, 863 const GrClipMaskManager::ScissorState&,
873 const GrStencilSettings&, 864 const GrStencilSettings&,
874 const GrDeviceCoordTexture* dstCopy) = 0; 865 const GrDeviceCoordTexture* dstCopy) = 0;
875 virtual void onDrawPaths(const GrPathRange*, 866 virtual void onDrawPaths(const GrPathRange*,
876 const uint32_t indices[], 867 const uint32_t indices[],
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 958
968 virtual bool setupClip(const SkRect* devBounds, 959 virtual bool setupClip(const SkRect* devBounds,
969 GrDrawState::AutoRestoreEffects* are, 960 GrDrawState::AutoRestoreEffects* are,
970 GrDrawState::AutoRestoreStencil* ars, 961 GrDrawState::AutoRestoreStencil* ars,
971 GrClipMaskManager::ScissorState* scissorState) SK_OVE RRIDE; 962 GrClipMaskManager::ScissorState* scissorState) SK_OVE RRIDE;
972 963
973 typedef GrDrawTarget INHERITED; 964 typedef GrDrawTarget INHERITED;
974 }; 965 };
975 966
976 #endif 967 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDefaultPathRenderer.cpp ('k') | src/gpu/GrDrawTarget.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698