| 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 #include "GrGLGpu.h" | 8 #include "GrGLGpu.h" | 
| 9 #include "GrGLGLSL.h" | 9 #include "GrGLGLSL.h" | 
| 10 #include "GrGLStencilAttachment.h" | 10 #include "GrGLStencilAttachment.h" | 
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 226     fWireRectProgram.fProgram = 0; | 226     fWireRectProgram.fProgram = 0; | 
| 227     fWireRectArrayBuffer = 0; | 227     fWireRectArrayBuffer = 0; | 
| 228     if (this->glCaps().shaderCaps()->plsPathRenderingSupport()) { | 228     if (this->glCaps().shaderCaps()->plsPathRenderingSupport()) { | 
| 229         this->createPLSSetupProgram(); | 229         this->createPLSSetupProgram(); | 
| 230     } | 230     } | 
| 231     else { | 231     else { | 
| 232         memset(&fPLSSetupProgram, 0, sizeof(fPLSSetupProgram)); | 232         memset(&fPLSSetupProgram, 0, sizeof(fPLSSetupProgram)); | 
| 233     } | 233     } | 
| 234     fHWPLSEnabled = false; | 234     fHWPLSEnabled = false; | 
| 235     fPLSHasBeenUsed = false; | 235     fPLSHasBeenUsed = false; | 
|  | 236     fHWMinSampleShading = 0.0; | 
| 236 } | 237 } | 
| 237 | 238 | 
| 238 GrGLGpu::~GrGLGpu() { | 239 GrGLGpu::~GrGLGpu() { | 
| 239     // Delete the path rendering explicitly, since it will need working gpu obje
      ct to release the | 240     // Delete the path rendering explicitly, since it will need working gpu obje
      ct to release the | 
| 240     // resources the object itself holds. | 241     // resources the object itself holds. | 
| 241     fPathRendering.reset(); | 242     fPathRendering.reset(); | 
| 242 | 243 | 
| 243     if (0 != fHWProgramID) { | 244     if (0 != fHWProgramID) { | 
| 244         // detach the current program so there is no confusion on OpenGL's part | 245         // detach the current program so there is no confusion on OpenGL's part | 
| 245         // that we want it to be deleted | 246         // that we want it to be deleted | 
| (...skipping 1817 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2063                 fHWScissorSettings.fEnabled = kYes_TriState; | 2064                 fHWScissorSettings.fEnabled = kYes_TriState; | 
| 2064             } | 2065             } | 
| 2065             return; | 2066             return; | 
| 2066         } | 2067         } | 
| 2067     } | 2068     } | 
| 2068 | 2069 | 
| 2069     // See fall through note above | 2070     // See fall through note above | 
| 2070     this->disableScissor(); | 2071     this->disableScissor(); | 
| 2071 } | 2072 } | 
| 2072 | 2073 | 
|  | 2074 void GrGLGpu::flushMinSampleShading(float minSampleShading) { | 
|  | 2075     if (fHWMinSampleShading != minSampleShading) { | 
|  | 2076         if (minSampleShading > 0.0) { | 
|  | 2077             GL_CALL(Enable(GR_GL_SAMPLE_SHADING)); | 
|  | 2078             GL_CALL(MinSampleShading(minSampleShading)); | 
|  | 2079         } | 
|  | 2080         else { | 
|  | 2081             GL_CALL(Disable(GR_GL_SAMPLE_SHADING)); | 
|  | 2082         } | 
|  | 2083         fHWMinSampleShading = minSampleShading; | 
|  | 2084     } | 
|  | 2085 } | 
|  | 2086 | 
| 2073 bool GrGLGpu::flushGLState(const GrPipeline& pipeline, const GrPrimitiveProcesso
      r& primProc) { | 2087 bool GrGLGpu::flushGLState(const GrPipeline& pipeline, const GrPrimitiveProcesso
      r& primProc) { | 
| 2074     GrXferProcessor::BlendInfo blendInfo; | 2088     GrXferProcessor::BlendInfo blendInfo; | 
| 2075     pipeline.getXferProcessor().getBlendInfo(&blendInfo); | 2089     pipeline.getXferProcessor().getBlendInfo(&blendInfo); | 
| 2076 | 2090 | 
| 2077     this->flushColorWrite(blendInfo.fWriteColor); | 2091     this->flushColorWrite(blendInfo.fWriteColor); | 
| 2078     this->flushDrawFace(pipeline.getDrawFace()); | 2092     this->flushDrawFace(pipeline.getDrawFace()); | 
|  | 2093     this->flushMinSampleShading(primProc.getSampleShading()); | 
| 2079 | 2094 | 
| 2080     SkAutoTUnref<GrGLProgram> program(fProgramCache->refProgram(this, pipeline, 
      primProc)); | 2095     SkAutoTUnref<GrGLProgram> program(fProgramCache->refProgram(this, pipeline, 
      primProc)); | 
| 2081     if (!program) { | 2096     if (!program) { | 
| 2082         GrCapsDebugf(this->caps(), "Failed to create program!\n"); | 2097         GrCapsDebugf(this->caps(), "Failed to create program!\n"); | 
| 2083         return false; | 2098         return false; | 
| 2084     } | 2099     } | 
| 2085 | 2100 | 
| 2086     GrGLuint programID = program->programID(); | 2101     GrGLuint programID = program->programID(); | 
| 2087     if (fHWProgramID != programID) { | 2102     if (fHWProgramID != programID) { | 
| 2088         GL_CALL(UseProgram(programID)); | 2103         GL_CALL(UseProgram(programID)); | 
| (...skipping 2328 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4417         if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || | 4432         if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || | 
| 4418             GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { | 4433             GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { | 
| 4419             copyParams->fFilter = GrTextureParams::kNone_FilterMode; | 4434             copyParams->fFilter = GrTextureParams::kNone_FilterMode; | 
| 4420             copyParams->fWidth = texture->width(); | 4435             copyParams->fWidth = texture->width(); | 
| 4421             copyParams->fHeight = texture->height(); | 4436             copyParams->fHeight = texture->height(); | 
| 4422             return true; | 4437             return true; | 
| 4423         } | 4438         } | 
| 4424     } | 4439     } | 
| 4425     return false; | 4440     return false; | 
| 4426 } | 4441 } | 
| OLD | NEW | 
|---|