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

Side by Side Diff: src/gpu/gl/GrGLGpu.cpp

Issue 2165283002: Remove DrawFace enum from GrPipelineBuilder (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: try again Created 4 years, 5 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
« no previous file with comments | « src/gpu/gl/GrGLGpu.h ('k') | src/gpu/gl/GrGLPathRendering.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 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 #include "GrGLGpu.h" 8 #include "GrGLGpu.h"
9 #include "GrGLBuffer.h" 9 #include "GrGLBuffer.h"
10 #include "GrGLGLSL.h" 10 #include "GrGLGLSL.h"
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 // we don't use the zb at all 487 // we don't use the zb at all
488 if (resetBits & kMisc_GrGLBackendState) { 488 if (resetBits & kMisc_GrGLBackendState) {
489 GL_CALL(Disable(GR_GL_DEPTH_TEST)); 489 GL_CALL(Disable(GR_GL_DEPTH_TEST));
490 GL_CALL(DepthMask(GR_GL_FALSE)); 490 GL_CALL(DepthMask(GR_GL_FALSE));
491 491
492 fHWBufferState[kTexel_GrBufferType].invalidate(); 492 fHWBufferState[kTexel_GrBufferType].invalidate();
493 fHWBufferState[kDrawIndirect_GrBufferType].invalidate(); 493 fHWBufferState[kDrawIndirect_GrBufferType].invalidate();
494 fHWBufferState[kXferCpuToGpu_GrBufferType].invalidate(); 494 fHWBufferState[kXferCpuToGpu_GrBufferType].invalidate();
495 fHWBufferState[kXferGpuToCpu_GrBufferType].invalidate(); 495 fHWBufferState[kXferGpuToCpu_GrBufferType].invalidate();
496 496
497 fHWDrawFace = GrPipelineBuilder::kInvalid_DrawFace; 497 fHWDrawFace = GrDrawFace::kInvalid;
498 498
499 if (kGL_GrGLStandard == this->glStandard()) { 499 if (kGL_GrGLStandard == this->glStandard()) {
500 // Desktop-only state that we never change 500 // Desktop-only state that we never change
501 if (!this->glCaps().isCoreProfile()) { 501 if (!this->glCaps().isCoreProfile()) {
502 GL_CALL(Disable(GR_GL_POINT_SMOOTH)); 502 GL_CALL(Disable(GR_GL_POINT_SMOOTH));
503 GL_CALL(Disable(GR_GL_LINE_SMOOTH)); 503 GL_CALL(Disable(GR_GL_LINE_SMOOTH));
504 GL_CALL(Disable(GR_GL_POLYGON_SMOOTH)); 504 GL_CALL(Disable(GR_GL_POLYGON_SMOOTH));
505 GL_CALL(Disable(GR_GL_POLYGON_STIPPLE)); 505 GL_CALL(Disable(GR_GL_POLYGON_STIPPLE));
506 GL_CALL(Disable(GR_GL_COLOR_LOGIC_OP)); 506 GL_CALL(Disable(GR_GL_COLOR_LOGIC_OP));
507 GL_CALL(Disable(GR_GL_INDEX_LOGIC_OP)); 507 GL_CALL(Disable(GR_GL_INDEX_LOGIC_OP));
(...skipping 2278 matching lines...) Expand 10 before | Expand all | Expand 10 after
2786 2 * sizeof(GrGLfloat), 0); 2786 2 * sizeof(GrGLfloat), 0);
2787 attribs->disableUnusedArrays(this, 0x1); 2787 attribs->disableUnusedArrays(this, 0x1);
2788 2788
2789 GL_CALL(Uniform4f(fPLSSetupProgram.fPosXformUniform, bounds.width(), bounds. height(), 2789 GL_CALL(Uniform4f(fPLSSetupProgram.fPosXformUniform, bounds.width(), bounds. height(),
2790 bounds.left(), bounds.top())); 2790 bounds.left(), bounds.top()));
2791 2791
2792 GrXferProcessor::BlendInfo blendInfo; 2792 GrXferProcessor::BlendInfo blendInfo;
2793 blendInfo.reset(); 2793 blendInfo.reset();
2794 this->flushBlend(blendInfo, GrSwizzle()); 2794 this->flushBlend(blendInfo, GrSwizzle());
2795 this->flushColorWrite(true); 2795 this->flushColorWrite(true);
2796 this->flushDrawFace(GrPipelineBuilder::kBoth_DrawFace); 2796 this->flushDrawFace(GrDrawFace::kBoth);
2797 if (!fHWStencilSettings.isDisabled()) { 2797 if (!fHWStencilSettings.isDisabled()) {
2798 GL_CALL(Disable(GR_GL_STENCIL_TEST)); 2798 GL_CALL(Disable(GR_GL_STENCIL_TEST));
2799 } 2799 }
2800 GL_CALL(DrawArrays(GR_GL_TRIANGLE_STRIP, 0, 4)); 2800 GL_CALL(DrawArrays(GR_GL_TRIANGLE_STRIP, 0, 4));
2801 GL_CALL(UseProgram(fHWProgramID)); 2801 GL_CALL(UseProgram(fHWProgramID));
2802 if (!fHWStencilSettings.isDisabled()) { 2802 if (!fHWStencilSettings.isDisabled()) {
2803 GL_CALL(Enable(GR_GL_STENCIL_TEST)); 2803 GL_CALL(Enable(GR_GL_STENCIL_TEST));
2804 } 2804 }
2805 } 2805 }
2806 2806
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
3352 fHWWriteToColor = kNo_TriState; 3352 fHWWriteToColor = kNo_TriState;
3353 } 3353 }
3354 } else { 3354 } else {
3355 if (kYes_TriState != fHWWriteToColor) { 3355 if (kYes_TriState != fHWWriteToColor) {
3356 GL_CALL(ColorMask(GR_GL_TRUE, GR_GL_TRUE, GR_GL_TRUE, GR_GL_TRUE)); 3356 GL_CALL(ColorMask(GR_GL_TRUE, GR_GL_TRUE, GR_GL_TRUE, GR_GL_TRUE));
3357 fHWWriteToColor = kYes_TriState; 3357 fHWWriteToColor = kYes_TriState;
3358 } 3358 }
3359 } 3359 }
3360 } 3360 }
3361 3361
3362 void GrGLGpu::flushDrawFace(GrPipelineBuilder::DrawFace face) { 3362 void GrGLGpu::flushDrawFace(GrDrawFace face) {
3363 if (fHWDrawFace != face) { 3363 if (fHWDrawFace != face) {
3364 switch (face) { 3364 switch (face) {
3365 case GrPipelineBuilder::kCCW_DrawFace: 3365 case GrDrawFace::kCCW:
3366 GL_CALL(Enable(GR_GL_CULL_FACE)); 3366 GL_CALL(Enable(GR_GL_CULL_FACE));
3367 GL_CALL(CullFace(GR_GL_BACK)); 3367 GL_CALL(CullFace(GR_GL_BACK));
3368 break; 3368 break;
3369 case GrPipelineBuilder::kCW_DrawFace: 3369 case GrDrawFace::kCW:
3370 GL_CALL(Enable(GR_GL_CULL_FACE)); 3370 GL_CALL(Enable(GR_GL_CULL_FACE));
3371 GL_CALL(CullFace(GR_GL_FRONT)); 3371 GL_CALL(CullFace(GR_GL_FRONT));
3372 break; 3372 break;
3373 case GrPipelineBuilder::kBoth_DrawFace: 3373 case GrDrawFace::kBoth:
3374 GL_CALL(Disable(GR_GL_CULL_FACE)); 3374 GL_CALL(Disable(GR_GL_CULL_FACE));
3375 break; 3375 break;
3376 default: 3376 default:
3377 SkFAIL("Unknown draw face."); 3377 SkFAIL("Unknown draw face.");
3378 } 3378 }
3379 fHWDrawFace = face; 3379 fHWDrawFace = face;
3380 } 3380 }
3381 } 3381 }
3382 3382
3383 void GrGLGpu::setTextureUnit(int unit) { 3383 void GrGLGpu::setTextureUnit(int unit) {
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
4081 0); 4081 0);
4082 attribs->disableUnusedArrays(this, 0x1); 4082 attribs->disableUnusedArrays(this, 0x1);
4083 4083
4084 GL_CALL(Uniform4fv(fWireRectProgram.fRectUniform, 1, edges)); 4084 GL_CALL(Uniform4fv(fWireRectProgram.fRectUniform, 1, edges));
4085 GL_CALL(Uniform4fv(fWireRectProgram.fColorUniform, 1, channels)); 4085 GL_CALL(Uniform4fv(fWireRectProgram.fColorUniform, 1, channels));
4086 4086
4087 GrXferProcessor::BlendInfo blendInfo; 4087 GrXferProcessor::BlendInfo blendInfo;
4088 blendInfo.reset(); 4088 blendInfo.reset();
4089 this->flushBlend(blendInfo, GrSwizzle::RGBA()); 4089 this->flushBlend(blendInfo, GrSwizzle::RGBA());
4090 this->flushColorWrite(true); 4090 this->flushColorWrite(true);
4091 this->flushDrawFace(GrPipelineBuilder::kBoth_DrawFace); 4091 this->flushDrawFace(GrDrawFace::kBoth);
4092 this->flushHWAAState(glRT, false, false); 4092 this->flushHWAAState(glRT, false, false);
4093 this->disableScissor(); 4093 this->disableScissor();
4094 GrStencilSettings stencil; 4094 GrStencilSettings stencil;
4095 stencil.setDisabled(); 4095 stencil.setDisabled();
4096 this->flushStencil(stencil); 4096 this->flushStencil(stencil);
4097 4097
4098 GL_CALL(DrawArrays(GR_GL_LINE_LOOP, 0, 4)); 4098 GL_CALL(DrawArrays(GR_GL_LINE_LOOP, 0, 4));
4099 } 4099 }
4100 4100
4101 4101
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
4169 4169
4170 GL_CALL(Uniform4f(fCopyPrograms[progIdx].fPosXformUniform, dx1 - dx0, dy1 - dy0, dx0, dy0)); 4170 GL_CALL(Uniform4f(fCopyPrograms[progIdx].fPosXformUniform, dx1 - dx0, dy1 - dy0, dx0, dy0));
4171 GL_CALL(Uniform4f(fCopyPrograms[progIdx].fTexCoordXformUniform, 4171 GL_CALL(Uniform4f(fCopyPrograms[progIdx].fTexCoordXformUniform,
4172 sx1 - sx0, sy1 - sy0, sx0, sy0)); 4172 sx1 - sx0, sy1 - sy0, sx0, sy0));
4173 GL_CALL(Uniform1i(fCopyPrograms[progIdx].fTextureUniform, 0)); 4173 GL_CALL(Uniform1i(fCopyPrograms[progIdx].fTextureUniform, 0));
4174 4174
4175 GrXferProcessor::BlendInfo blendInfo; 4175 GrXferProcessor::BlendInfo blendInfo;
4176 blendInfo.reset(); 4176 blendInfo.reset();
4177 this->flushBlend(blendInfo, GrSwizzle::RGBA()); 4177 this->flushBlend(blendInfo, GrSwizzle::RGBA());
4178 this->flushColorWrite(true); 4178 this->flushColorWrite(true);
4179 this->flushDrawFace(GrPipelineBuilder::kBoth_DrawFace); 4179 this->flushDrawFace(GrDrawFace::kBoth);
4180 this->flushHWAAState(nullptr, false, false); 4180 this->flushHWAAState(nullptr, false, false);
4181 this->disableScissor(); 4181 this->disableScissor();
4182 GrStencilSettings stencil; 4182 GrStencilSettings stencil;
4183 stencil.setDisabled(); 4183 stencil.setDisabled();
4184 this->flushStencil(stencil); 4184 this->flushStencil(stencil);
4185 4185
4186 GL_CALL(DrawArrays(GR_GL_TRIANGLE_STRIP, 0, 4)); 4186 GL_CALL(DrawArrays(GR_GL_TRIANGLE_STRIP, 0, 4));
4187 this->unbindTextureFBOForCopy(GR_GL_FRAMEBUFFER, dst); 4187 this->unbindTextureFBOForCopy(GR_GL_FRAMEBUFFER, dst);
4188 this->didWriteToSurface(dst, &dstRect); 4188 this->didWriteToSurface(dst, &dstRect);
4189 4189
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
4377 GrGLAttribArrayState* attribs = fHWVertexArrayState.bindInternalVertexArray( this); 4377 GrGLAttribArrayState* attribs = fHWVertexArrayState.bindInternalVertexArray( this);
4378 attribs->set(this, 0, fMipmapProgramArrayBuffer, kVec2f_GrVertexAttribType, 4378 attribs->set(this, 0, fMipmapProgramArrayBuffer, kVec2f_GrVertexAttribType,
4379 2 * sizeof(GrGLfloat), 0); 4379 2 * sizeof(GrGLfloat), 0);
4380 attribs->disableUnusedArrays(this, 0x1); 4380 attribs->disableUnusedArrays(this, 0x1);
4381 4381
4382 // Set "simple" state once: 4382 // Set "simple" state once:
4383 GrXferProcessor::BlendInfo blendInfo; 4383 GrXferProcessor::BlendInfo blendInfo;
4384 blendInfo.reset(); 4384 blendInfo.reset();
4385 this->flushBlend(blendInfo, GrSwizzle::RGBA()); 4385 this->flushBlend(blendInfo, GrSwizzle::RGBA());
4386 this->flushColorWrite(true); 4386 this->flushColorWrite(true);
4387 this->flushDrawFace(GrPipelineBuilder::kBoth_DrawFace); 4387 this->flushDrawFace(GrDrawFace::kBoth);
4388 this->flushHWAAState(nullptr, false, false); 4388 this->flushHWAAState(nullptr, false, false);
4389 this->disableScissor(); 4389 this->disableScissor();
4390 GrStencilSettings stencil; 4390 GrStencilSettings stencil;
4391 stencil.setDisabled(); 4391 stencil.setDisabled();
4392 this->flushStencil(stencil); 4392 this->flushStencil(stencil);
4393 4393
4394 // Do all the blits: 4394 // Do all the blits:
4395 width = texture->width(); 4395 width = texture->width();
4396 height = texture->height(); 4396 height = texture->height();
4397 GrGLIRect viewport; 4397 GrGLIRect viewport;
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
4613 if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || 4613 if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() ||
4614 GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { 4614 GR_GL_TEXTURE_RECTANGLE == glTexture->target()) {
4615 copyParams->fFilter = GrTextureParams::kNone_FilterMode; 4615 copyParams->fFilter = GrTextureParams::kNone_FilterMode;
4616 copyParams->fWidth = texture->width(); 4616 copyParams->fWidth = texture->width();
4617 copyParams->fHeight = texture->height(); 4617 copyParams->fHeight = texture->height();
4618 return true; 4618 return true;
4619 } 4619 }
4620 } 4620 }
4621 return false; 4621 return false;
4622 } 4622 }
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLGpu.h ('k') | src/gpu/gl/GrGLPathRendering.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698