Lines Matching refs:spec

38                         const VertexSpec& spec,
47 SkASSERT(!spec.hasLocalCoords() || localQuad);
49 CoverageMode mode = spec.coverageMode();
55 << If(spec.deviceQuadType() == GrQuad::Type::kPerspective, deviceQuad->w(i))
59 if (spec.hasVertexColors()) {
60 bool wide = spec.colorType() == ColorType::kFloat;
66 if (spec.hasLocalCoords()) {
69 << If(spec.localQuadType() == GrQuad::Type::kPerspective, localQuad->w(i));
73 if (spec.requiresGeometrySubset()) {
78 if (spec.hasSubset()) {
90 const VertexSpec& spec,
98 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
99 SkASSERT(!spec.hasLocalCoords());
100 SkASSERT(spec.coverageMode() == CoverageMode::kNone ||
101 spec.coverageMode() == CoverageMode::kWithColor);
102 SkASSERT(spec.hasVertexColors());
103 SkASSERT(!spec.requiresGeometrySubset());
104 SkASSERT(!spec.hasSubset());
109 bool wide = spec.colorType() == ColorType::kFloat;
112 SkASSERT(spec.coverageMode() == CoverageMode::kWithColor || coverage[i] == 1.f);
122 const VertexSpec& spec,
130 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
131 SkASSERT(spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective);
132 SkASSERT(spec.coverageMode() == CoverageMode::kNone);
133 SkASSERT(!spec.hasVertexColors());
134 SkASSERT(!spec.requiresGeometrySubset());
135 SkASSERT(!spec.hasSubset());
149 const VertexSpec& spec,
157 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
158 SkASSERT(spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective);
159 SkASSERT(spec.coverageMode() == CoverageMode::kNone ||
160 spec.coverageMode() == CoverageMode::kWithColor);
161 SkASSERT(spec.hasVertexColors());
162 SkASSERT(!spec.requiresGeometrySubset());
163 SkASSERT(!spec.hasSubset());
166 bool wide = spec.colorType() == ColorType::kFloat;
169 SkASSERT(spec.coverageMode() == CoverageMode::kWithColor || coverage[i] == 1.f);
181 const VertexSpec& spec,
189 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
190 SkASSERT(spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective);
191 SkASSERT(spec.coverageMode() == CoverageMode::kWithPosition);
192 SkASSERT(!spec.hasVertexColors());
193 SkASSERT(!spec.requiresGeometrySubset());
194 SkASSERT(!spec.hasSubset());
215 const VertexSpec& spec,
223 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
224 SkASSERT(spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective);
225 SkASSERT(spec.coverageMode() == CoverageMode::kNone);
226 SkASSERT(!spec.hasVertexColors());
227 SkASSERT(!spec.requiresGeometrySubset());
228 SkASSERT(spec.hasSubset());
243 const VertexSpec& spec,
251 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
252 SkASSERT(spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective);
253 SkASSERT(spec.coverageMode() == CoverageMode::kNone ||
254 spec.coverageMode() == CoverageMode::kWithColor);
255 SkASSERT(spec.hasVertexColors());
256 SkASSERT(!spec.requiresGeometrySubset());
257 SkASSERT(spec.hasSubset());
260 bool wide = spec.colorType() == ColorType::kFloat;
263 SkASSERT(spec.coverageMode() == CoverageMode::kWithColor || coverage[i] == 1.f);
276 const VertexSpec& spec,
284 SkASSERT(spec.deviceQuadType() != GrQuad::Type::kPerspective);
285 SkASSERT(spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective);
286 SkASSERT(spec.coverageMode() == CoverageMode::kWithPosition);
287 SkASSERT(!spec.hasVertexColors());
288 SkASSERT(!spec.requiresGeometrySubset());
289 SkASSERT(spec.hasSubset());
325 Tessellator::WriteQuadProc Tessellator::GetWriteQuadProc(const VertexSpec& spec) {
329 if (spec.deviceQuadType() != GrQuad::Type::kPerspective && !spec.requiresGeometrySubset()) {
330 CoverageMode mode = spec.coverageMode();
331 if (spec.hasVertexColors()) {
334 if (!spec.hasLocalCoords()) {
337 } else if (spec.localQuadType() != GrQuad::Type::kPerspective) {
339 return spec.hasSubset() ? write_2d_color_uv_strict : write_2d_color_uv;
342 // Else fall through; this is a spec that requires vertex colors and explicit coverage,
345 } else if (spec.hasLocalCoords() && spec.localQuadType() != GrQuad::Type::kPerspective) {
348 return spec.hasSubset() ? write_2d_cov_uv_strict : write_2d_cov_uv;
351 return spec.hasSubset() ? write_2d_uv_strict : write_2d_uv;
354 // Else fall through to generic vertex function; this is a spec that has no vertex colors
358 // Arbitrary spec hits the slow path
362 Tessellator::Tessellator(const VertexSpec& spec, char* vertices)
363 : fVertexSpec(spec)
365 , fWriteProc(Tessellator::GetWriteQuadProc(spec)) {}
486 void IssueDraw(const GrCaps& caps, GrOpsRenderPass* renderPass, const VertexSpec& spec,
488 if (spec.indexBufferOption() == IndexBufferOption::kTriStrips) {
495 SkASSERT(spec.indexBufferOption() == IndexBufferOption::kPictureFramed ||
496 spec.indexBufferOption() == IndexBufferOption::kIndexedRects);
500 if (spec.indexBufferOption() == IndexBufferOption::kPictureFramed) {
605 static GrGeometryProcessor* Make(SkArenaAlloc* arena, const VertexSpec& spec) {
607 return new (ptr) QuadPerEdgeAAGeometryProcessor(spec);
851 QuadPerEdgeAAGeometryProcessor(const VertexSpec& spec)
854 SkASSERT(!spec.hasSubset());
855 this->initializeAttrs(spec);
859 QuadPerEdgeAAGeometryProcessor(const VertexSpec& spec,
870 SkASSERT(spec.hasLocalCoords());
871 this->initializeAttrs(spec);
876 void initializeAttrs(const VertexSpec& spec) {
877 fNeedsPerspective = spec.deviceDimensionality() == 3;
878 fCoverageMode = spec.coverageMode();
897 if (spec.requiresGeometrySubset()) {
901 int localDim = spec.localDimensionality();
908 if (spec.hasVertexColors()) {
909 fColor = MakeColorAttribute("color", ColorType::kFloat == spec.colorType());
912 if (spec.hasSubset()) {
943 GrGeometryProcessor* MakeProcessor(SkArenaAlloc* arena, const VertexSpec& spec) {
944 return QuadPerEdgeAAGeometryProcessor::Make(arena, spec);
948 const VertexSpec& spec,
955 return QuadPerEdgeAAGeometryProcessor::Make(arena, spec, caps, backendFormat, samplerState,