Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 194 * out: a hint about the number of indices that can be | 194 * out: a hint about the number of indices that can be |
| 195 * allocated cheaply. Negative means no hint. | 195 * allocated cheaply. Negative means no hint. |
| 196 * Ignored if NULL. | 196 * Ignored if NULL. |
| 197 * | 197 * |
| 198 * @return true if target should be flushed based on the input values. | 198 * @return true if target should be flushed based on the input values. |
| 199 */ | 199 */ |
| 200 virtual bool geometryHints(int* vertexCount, | 200 virtual bool geometryHints(int* vertexCount, |
| 201 int* indexCount) const; | 201 int* indexCount) const; |
| 202 | 202 |
| 203 /** | 203 /** |
| 204 * Sets source of vertex data for the next draw. Array must contain | |
| 205 * the vertex data when this is called. | |
| 206 * | |
| 207 * @param vertexArray cpu array containing vertex data. | |
| 208 * @param vertexCount the number of vertices in the array. Vertex size is | |
| 209 * queried from the current GrDrawState. | |
| 210 */ | |
| 211 void setVertexSourceToArray(const void* vertexArray, int vertexCount); | |
| 212 | |
| 213 /** | |
| 214 * Sets source of index data for the next indexed draw. Array must contain | |
| 215 * the indices when this is called. | |
| 216 * | |
| 217 * @param indexArray cpu array containing index data. | |
| 218 * @param indexCount the number of indices in the array. | |
| 219 */ | |
| 220 void setIndexSourceToArray(const void* indexArray, int indexCount); | |
| 221 | |
| 222 /** | |
| 223 * Sets source of vertex data for the next draw. Data does not have to be | 204 * Sets source of vertex data for the next draw. Data does not have to be |
| 224 * in the buffer until drawIndexed, drawNonIndexed, or drawIndexedInstances. | 205 * in the buffer until drawIndexed, drawNonIndexed, or drawIndexedInstances. |
| 225 * | 206 * |
| 226 * @param buffer vertex buffer containing vertex data. Must be | 207 * @param buffer vertex buffer containing vertex data. Must be |
| 227 * unlocked before draw call. Vertex size is queried | 208 * unlocked before draw call. Vertex size is queried |
| 228 * from current GrDrawState. | 209 * from current GrDrawState. |
| 229 */ | 210 */ |
| 230 void setVertexSourceToBuffer(const GrVertexBuffer* buffer); | 211 void setVertexSourceToBuffer(const GrVertexBuffer* buffer); |
| 231 | 212 |
| 232 /** | 213 /** |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 693 | 674 |
| 694 protected: | 675 protected: |
| 695 // Extend access to GrDrawState::convertToPEndeingExec to subclasses. | 676 // Extend access to GrDrawState::convertToPEndeingExec to subclasses. |
| 696 void convertDrawStateToPendingExec(GrDrawState* ds) { | 677 void convertDrawStateToPendingExec(GrDrawState* ds) { |
| 697 ds->convertToPendingExec(); | 678 ds->convertToPendingExec(); |
| 698 } | 679 } |
| 699 | 680 |
| 700 enum GeometrySrcType { | 681 enum GeometrySrcType { |
| 701 kNone_GeometrySrcType, //<! src has not been specified | 682 kNone_GeometrySrcType, //<! src has not been specified |
| 702 kReserved_GeometrySrcType, //<! src was set using reserve*Space | 683 kReserved_GeometrySrcType, //<! src was set using reserve*Space |
| 703 kArray_GeometrySrcType, //<! src was set using set*SourceToArray | 684 kArray_GeometrySrcType, //<! src was set using set*SourceToArray |
|
bsalomon
2014/11/03 22:14:16
Can we kill this value too?
| |
| 704 kBuffer_GeometrySrcType //<! src was set using set*SourceToBuffer | 685 kBuffer_GeometrySrcType //<! src was set using set*SourceToBuffer |
| 705 }; | 686 }; |
| 706 | 687 |
| 707 struct GeometrySrcState { | 688 struct GeometrySrcState { |
| 708 GeometrySrcType fVertexSrc; | 689 GeometrySrcType fVertexSrc; |
| 709 union { | 690 union { |
| 710 // valid if src type is buffer | 691 // valid if src type is buffer |
| 711 const GrVertexBuffer* fVertexBuffer; | 692 const GrVertexBuffer* fVertexBuffer; |
| 712 // valid if src type is reserved or array | 693 // valid if src type is reserved or array |
| 713 int fVertexCount; | 694 int fVertexCount; |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 865 // A subclass can optionally overload this function to be notified before | 846 // A subclass can optionally overload this function to be notified before |
| 866 // vertex and index space is reserved. | 847 // vertex and index space is reserved. |
| 867 virtual void willReserveVertexAndIndexSpace(int vertexCount, int indexCount) {} | 848 virtual void willReserveVertexAndIndexSpace(int vertexCount, int indexCount) {} |
| 868 | 849 |
| 869 // implemented by subclass to allocate space for reserved geom | 850 // implemented by subclass to allocate space for reserved geom |
| 870 virtual bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) = 0; | 851 virtual bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) = 0; |
| 871 virtual bool onReserveIndexSpace(int indexCount, void** indices) = 0; | 852 virtual bool onReserveIndexSpace(int indexCount, void** indices) = 0; |
| 872 // implemented by subclass to handle release of reserved geom space | 853 // implemented by subclass to handle release of reserved geom space |
| 873 virtual void releaseReservedVertexSpace() = 0; | 854 virtual void releaseReservedVertexSpace() = 0; |
| 874 virtual void releaseReservedIndexSpace() = 0; | 855 virtual void releaseReservedIndexSpace() = 0; |
| 875 // subclass must consume array contents when set | |
| 876 virtual void onSetVertexSourceToArray(const void* vertexArray, int vertexCou nt) = 0; | |
| 877 virtual void onSetIndexSourceToArray(const void* indexArray, int indexCount) = 0; | |
| 878 // subclass is notified that geom source will be set away from an array | 856 // subclass is notified that geom source will be set away from an array |
| 879 virtual void releaseVertexArray() = 0; | 857 virtual void releaseVertexArray() = 0; |
| 880 virtual void releaseIndexArray() = 0; | 858 virtual void releaseIndexArray() = 0; |
| 881 // subclass overrides to be notified just before geo src state is pushed/pop ped. | 859 // subclass overrides to be notified just before geo src state is pushed/pop ped. |
| 882 virtual void geometrySourceWillPush() = 0; | 860 virtual void geometrySourceWillPush() = 0; |
| 883 virtual void geometrySourceWillPop(const GeometrySrcState& restoredState) = 0; | 861 virtual void geometrySourceWillPop(const GeometrySrcState& restoredState) = 0; |
| 884 // subclass called to perform drawing | 862 // subclass called to perform drawing |
| 885 virtual void onDraw(const DrawInfo&) = 0; | 863 virtual void onDraw(const DrawInfo&) = 0; |
| 886 // Implementation of drawRect. The geometry src and vertex attribs will alre ady | 864 // Implementation of drawRect. The geometry src and vertex attribs will alre ady |
| 887 // be saved before this is called and restored afterwards. A subclass may ov erride | 865 // be saved before this is called and restored afterwards. A subclass may ov erride |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 976 protected: | 954 protected: |
| 977 GrClipMaskManager fClipMaskManager; | 955 GrClipMaskManager fClipMaskManager; |
| 978 | 956 |
| 979 private: | 957 private: |
| 980 GrClipMaskManager* getClipMaskManager() { return &fClipMaskManager; } | 958 GrClipMaskManager* getClipMaskManager() { return &fClipMaskManager; } |
| 981 | 959 |
| 982 typedef GrDrawTarget INHERITED; | 960 typedef GrDrawTarget INHERITED; |
| 983 }; | 961 }; |
| 984 | 962 |
| 985 #endif | 963 #endif |
| OLD | NEW |