OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 GrGLGpu_DEFINED | 8 #ifndef GrGLGpu_DEFINED |
9 #define GrGLGpu_DEFINED | 9 #define GrGLGpu_DEFINED |
10 | 10 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 // These callbacks update state tracking when GL objects are deleted. They a
re called from | 85 // These callbacks update state tracking when GL objects are deleted. They a
re called from |
86 // GrGLResource onRelease functions. | 86 // GrGLResource onRelease functions. |
87 void notifyVertexArrayDelete(GrGLuint id) { | 87 void notifyVertexArrayDelete(GrGLuint id) { |
88 fHWVertexArrayState.notifyVertexArrayDelete(id); | 88 fHWVertexArrayState.notifyVertexArrayDelete(id); |
89 } | 89 } |
90 | 90 |
91 // Binds a buffer to the GL target corresponding to 'type', updates internal
state tracking, and | 91 // Binds a buffer to the GL target corresponding to 'type', updates internal
state tracking, and |
92 // returns the GL target the buffer was bound to. | 92 // returns the GL target the buffer was bound to. |
93 // When 'type' is kIndex_GrBufferType, this function will also implicitly bi
nd the default VAO. | 93 // When 'type' is kIndex_GrBufferType, this function will also implicitly bi
nd the default VAO. |
94 // If the caller wishes to bind an index buffer to a specific VAO, it can ca
ll glBind directly. | 94 // If the caller wishes to bind an index buffer to a specific VAO, it can ca
ll glBind directly. |
95 GrGLenum bindBuffer(GrBufferType type, const GrGLBuffer*); | 95 GrGLenum bindBuffer(GrBufferType type, const GrBuffer*); |
96 | 96 |
97 // Called by GrGLBuffer after its buffer object has been destroyed. | 97 // Called by GrGLBuffer after its buffer object has been destroyed. |
98 void notifyBufferReleased(const GrGLBuffer*); | 98 void notifyBufferReleased(const GrGLBuffer*); |
99 | 99 |
100 // The GrGLGpuCommandBuffer does not buffer up draws before submitting them
to the gpu. | 100 // The GrGLGpuCommandBuffer does not buffer up draws before submitting them
to the gpu. |
101 // Thus this is the implementation of the draw call for the corresponding pa
ssthrough function | 101 // Thus this is the implementation of the draw call for the corresponding pa
ssthrough function |
102 // on GrGLGpuCommandBuffer. | 102 // on GrGLGpuCommandBuffer. |
103 void draw(const GrPipeline&, | 103 void draw(const GrPipeline&, |
104 const GrPrimitiveProcessor&, | 104 const GrPrimitiveProcessor&, |
105 const GrMesh*, | 105 const GrMesh*, |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 /** | 460 /** |
461 * Binds the vertex array that should be used for internal draws, and re
turns its attrib | 461 * Binds the vertex array that should be used for internal draws, and re
turns its attrib |
462 * state. This binds the default VAO (ID=zero) unless we are on a core p
rofile, in which | 462 * state. This binds the default VAO (ID=zero) unless we are on a core p
rofile, in which |
463 * case we use a dummy array instead. | 463 * case we use a dummy array instead. |
464 * | 464 * |
465 * If an index buffer is privided, it will be bound to the vertex array.
Otherwise the | 465 * If an index buffer is privided, it will be bound to the vertex array.
Otherwise the |
466 * index buffer binding will be left unchanged. | 466 * index buffer binding will be left unchanged. |
467 * | 467 * |
468 * The returned GrGLAttribArrayState should be used to set vertex attrib
ute arrays. | 468 * The returned GrGLAttribArrayState should be used to set vertex attrib
ute arrays. |
469 */ | 469 */ |
470 GrGLAttribArrayState* bindInternalVertexArray(GrGLGpu*, const GrGLBuffer
* ibuff = nullptr); | 470 GrGLAttribArrayState* bindInternalVertexArray(GrGLGpu*, const GrBuffer*
ibuff = nullptr); |
471 | 471 |
472 private: | 472 private: |
473 GrGLuint fBoundVertexArrayID; | 473 GrGLuint fBoundVertexArrayID; |
474 bool fBoundVertexArrayIDIsValid; | 474 bool fBoundVertexArrayIDIsValid; |
475 | 475 |
476 // We return a non-const pointer to this from bindArrayAndBuffersToDraw
when vertex array 0 | 476 // We return a non-const pointer to this from bindArrayAndBuffersToDraw
when vertex array 0 |
477 // is bound. However, this class is internal to GrGLGpu and this object
never leaks out of | 477 // is bound. However, this class is internal to GrGLGpu and this object
never leaks out of |
478 // GrGLGpu. | 478 // GrGLGpu. |
479 GrGLAttribArrayState fDefaultVertexArrayAttribState; | 479 GrGLAttribArrayState fDefaultVertexArrayAttribState; |
480 | 480 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 bool fPLSHasBeenUsed; | 596 bool fPLSHasBeenUsed; |
597 | 597 |
598 float fHWMinSampleShading; | 598 float fHWMinSampleShading; |
599 | 599 |
600 typedef GrGpu INHERITED; | 600 typedef GrGpu INHERITED; |
601 friend class GrGLPathRendering; // For accessing setTextureUnit. | 601 friend class GrGLPathRendering; // For accessing setTextureUnit. |
602 friend class gr_instanced::GLInstancedRendering; // For accessing flushGLSta
te. | 602 friend class gr_instanced::GLInstancedRendering; // For accessing flushGLSta
te. |
603 }; | 603 }; |
604 | 604 |
605 #endif | 605 #endif |
OLD | NEW |