Chromium Code Reviews| 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 "GrGLBuffer.h" | 9 #include "GrGLBuffer.h" |
| 10 #include "GrGLGLSL.h" | 10 #include "GrGLGLSL.h" |
| (...skipping 3132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3143 // If we created a rt/tex and rendered to it without using a texture and now we're texturing | 3143 // If we created a rt/tex and rendered to it without using a texture and now we're texturing |
| 3144 // from the rt it will still be the last bound texture, but it needs resolvi ng. So keep this | 3144 // from the rt it will still be the last bound texture, but it needs resolvi ng. So keep this |
| 3145 // out of the "last != next" check. | 3145 // out of the "last != next" check. |
| 3146 GrGLRenderTarget* texRT = static_cast<GrGLRenderTarget*>(texture->asRenderTa rget()); | 3146 GrGLRenderTarget* texRT = static_cast<GrGLRenderTarget*>(texture->asRenderTa rget()); |
| 3147 if (texRT) { | 3147 if (texRT) { |
| 3148 this->onResolveRenderTarget(texRT); | 3148 this->onResolveRenderTarget(texRT); |
| 3149 } | 3149 } |
| 3150 | 3150 |
| 3151 uint32_t textureID = texture->getUniqueID(); | 3151 uint32_t textureID = texture->getUniqueID(); |
| 3152 GrGLenum target = texture->target(); | 3152 GrGLenum target = texture->target(); |
| 3153 if (fHWBoundTextureUniqueIDs[unitIdx] != textureID) { | 3153 if (fHWBoundTextureUniqueIDs[unitIdx] != textureID) { |
|
robertphillips
2016/04/26 21:31:05
How is this not getting called ?
Brian Osman
2016/04/26 21:35:02
I don't have a test-case that demonstrates this as
robertphillips
2016/04/26 21:52:47
I think you're right.
| |
| 3154 this->setTextureUnit(unitIdx); | 3154 this->setTextureUnit(unitIdx); |
| 3155 GL_CALL(BindTexture(target, texture->textureID())); | 3155 GL_CALL(BindTexture(target, texture->textureID())); |
| 3156 fHWBoundTextureUniqueIDs[unitIdx] = textureID; | 3156 fHWBoundTextureUniqueIDs[unitIdx] = textureID; |
| 3157 } | 3157 } |
| 3158 | 3158 |
| 3159 ResetTimestamp timestamp; | 3159 ResetTimestamp timestamp; |
| 3160 const GrGLTexture::TexParams& oldTexParams = texture->getCachedTexParams(&ti mestamp); | 3160 const GrGLTexture::TexParams& oldTexParams = texture->getCachedTexParams(&ti mestamp); |
| 3161 bool setAll = timestamp < this->getResetTimestamp(); | 3161 bool setAll = timestamp < this->getResetTimestamp(); |
| 3162 GrGLTexture::TexParams newTexParams; | 3162 GrGLTexture::TexParams newTexParams; |
| 3163 | 3163 |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 3190 if (!this->caps()->mipMapSupport() || GrPixelConfigIsCompressed(texture- >config())) { | 3190 if (!this->caps()->mipMapSupport() || GrPixelConfigIsCompressed(texture- >config())) { |
| 3191 filterMode = GrTextureParams::kBilerp_FilterMode; | 3191 filterMode = GrTextureParams::kBilerp_FilterMode; |
| 3192 } | 3192 } |
| 3193 } | 3193 } |
| 3194 | 3194 |
| 3195 newTexParams.fMinFilter = glMinFilterModes[filterMode]; | 3195 newTexParams.fMinFilter = glMinFilterModes[filterMode]; |
| 3196 newTexParams.fMagFilter = glMagFilterModes[filterMode]; | 3196 newTexParams.fMagFilter = glMagFilterModes[filterMode]; |
| 3197 | 3197 |
| 3198 if (GrTextureParams::kMipMap_FilterMode == filterMode) { | 3198 if (GrTextureParams::kMipMap_FilterMode == filterMode) { |
| 3199 if (texture->texturePriv().mipMapsAreDirty()) { | 3199 if (texture->texturePriv().mipMapsAreDirty()) { |
| 3200 this->setTextureUnit(unitIdx); | |
| 3200 GL_CALL(GenerateMipmap(target)); | 3201 GL_CALL(GenerateMipmap(target)); |
| 3201 texture->texturePriv().dirtyMipMaps(false); | 3202 texture->texturePriv().dirtyMipMaps(false); |
| 3202 texture->texturePriv().setMaxMipMapLevel(SkMipMap::ComputeLevelCount ( | 3203 texture->texturePriv().setMaxMipMapLevel(SkMipMap::ComputeLevelCount ( |
| 3203 texture->width(), texture->height())); | 3204 texture->width(), texture->height())); |
| 3204 } | 3205 } |
| 3205 } | 3206 } |
| 3206 | 3207 |
| 3207 newTexParams.fMaxMipMapLevel = texture->texturePriv().maxMipMapLevel(); | 3208 newTexParams.fMaxMipMapLevel = texture->texturePriv().maxMipMapLevel(); |
| 3208 | 3209 |
| 3209 newTexParams.fWrapS = tile_to_gl_wrap(params.getTileModeX()); | 3210 newTexParams.fWrapS = tile_to_gl_wrap(params.getTileModeX()); |
| (...skipping 1059 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4269 if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || | 4270 if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || |
| 4270 GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { | 4271 GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { |
| 4271 copyParams->fFilter = GrTextureParams::kNone_FilterMode; | 4272 copyParams->fFilter = GrTextureParams::kNone_FilterMode; |
| 4272 copyParams->fWidth = texture->width(); | 4273 copyParams->fWidth = texture->width(); |
| 4273 copyParams->fHeight = texture->height(); | 4274 copyParams->fHeight = texture->height(); |
| 4274 return true; | 4275 return true; |
| 4275 } | 4276 } |
| 4276 } | 4277 } |
| 4277 return false; | 4278 return false; |
| 4278 } | 4279 } |
| OLD | NEW |