• Home
  • Raw
  • Download

Lines Matching refs:layer

38 LayerRenderer::LayerRenderer(RenderState& renderState, Layer* layer)  in LayerRenderer()  argument
40 , mLayer(layer) { in LayerRenderer()
52 const float width = mLayer->layer.getWidth(); in prepareDirty()
53 const float height = mLayer->layer.getHeight(); in prepareDirty()
164 const float height = mLayer->layer.getHeight(); in generateMesh()
199 Layer* layer = caches.layerCache.get(renderState, width, height); in createRenderLayer() local
200 if (!layer) { in createRenderLayer()
209 if (layer->getWidth() > maxTextureSize || layer->getHeight() > maxTextureSize) { in createRenderLayer()
215 layer->decStrong(nullptr); in createRenderLayer()
220 layer->setFbo(fbo); in createRenderLayer()
221 layer->layer.set(0.0f, 0.0f, width, height); in createRenderLayer()
222 layer->texCoords.set(0.0f, height / float(layer->getHeight()), in createRenderLayer()
223 width / float(layer->getWidth()), 0.0f); in createRenderLayer()
224 layer->setAlpha(255, SkXfermode::kSrcOver_Mode); in createRenderLayer()
225 layer->setColorFilter(nullptr); in createRenderLayer()
226 layer->setDirty(true); in createRenderLayer()
227 layer->region.clear(); in createRenderLayer()
231 renderState.bindFramebuffer(layer->getFbo()); in createRenderLayer()
232 layer->bindTexture(); in createRenderLayer()
235 if (layer->isEmpty()) { in createRenderLayer()
236 layer->setEmpty(false); in createRenderLayer()
237 layer->allocateTexture(); in createRenderLayer()
244 layer->decStrong(nullptr); in createRenderLayer()
250 layer->getTextureId(), 0); in createRenderLayer()
254 return layer; in createRenderLayer()
257 bool LayerRenderer::resizeLayer(Layer* layer, uint32_t width, uint32_t height) { in resizeLayer() argument
258 if (layer) { in resizeLayer()
259 LAYER_RENDERER_LOGD("Resizing layer fbo = %d to %dx%d", layer->getFbo(), width, height); in resizeLayer()
261 if (layer->resize(width, height)) { in resizeLayer()
262 layer->layer.set(0.0f, 0.0f, width, height); in resizeLayer()
263 layer->texCoords.set(0.0f, height / float(layer->getHeight()), in resizeLayer()
264 width / float(layer->getWidth()), 0.0f); in resizeLayer()
276 Layer* layer = new Layer(Layer::Type::Texture, renderState, 0, 0); in createTextureLayer() local
277 layer->setCacheable(false); in createTextureLayer()
278 layer->layer.set(0.0f, 0.0f, 0.0f, 0.0f); in createTextureLayer()
279 layer->texCoords.set(0.0f, 1.0f, 1.0f, 0.0f); in createTextureLayer()
280 layer->region.clear(); in createTextureLayer()
281 layer->setRenderTarget(GL_NONE); // see ::updateTextureLayer() in createTextureLayer()
284 layer->generateTexture(); in createTextureLayer()
286 return layer; in createTextureLayer()
289 void LayerRenderer::updateTextureLayer(Layer* layer, uint32_t width, uint32_t height, in updateTextureLayer() argument
291 if (layer) { in updateTextureLayer()
292 layer->setBlend(!isOpaque); in updateTextureLayer()
293 layer->setForceFilter(forceFilter); in updateTextureLayer()
294 layer->setSize(width, height); in updateTextureLayer()
295 layer->layer.set(0.0f, 0.0f, width, height); in updateTextureLayer()
296 layer->region.set(width, height); in updateTextureLayer()
297 layer->regionRect.set(0.0f, 0.0f, width, height); in updateTextureLayer()
298 layer->getTexTransform().load(textureTransform); in updateTextureLayer()
300 if (renderTarget != layer->getRenderTarget()) { in updateTextureLayer()
301 layer->setRenderTarget(renderTarget); in updateTextureLayer()
302 layer->bindTexture(); in updateTextureLayer()
303 layer->setFilter(GL_NEAREST, false, true); in updateTextureLayer()
304 layer->setWrap(GL_CLAMP_TO_EDGE, false, true); in updateTextureLayer()
309 void LayerRenderer::destroyLayer(Layer* layer) { in destroyLayer() argument
310 if (layer) { in destroyLayer()
311 ATRACE_FORMAT("Destroy %ux%u HW Layer", layer->getWidth(), layer->getHeight()); in destroyLayer()
313 layer->getWidth(), layer->getHeight(), layer->getFbo()); in destroyLayer()
315 if (!Caches::getInstance().layerCache.put(layer)) { in destroyLayer()
317 layer->decStrong(nullptr); in destroyLayer()
323 layer->removeFbo(); in destroyLayer()
324 layer->region.clear(); in destroyLayer()
329 void LayerRenderer::flushLayer(RenderState& renderState, Layer* layer) { in flushLayer() argument
331 if (!layer) return; in flushLayer()
333 GLuint fbo = layer->getFbo(); in flushLayer()
354 bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap* bitmap) { in copyLayer() argument
356 if (layer && layer->isRenderable() in copyLayer()
398 float alpha = layer->getAlpha(); in copyLayer()
399 SkXfermode::Mode mode = layer->getMode(); in copyLayer()
400 GLuint previousLayerFbo = layer->getFbo(); in copyLayer()
402 layer->setAlpha(255, SkXfermode::kSrc_Mode); in copyLayer()
403 layer->setFbo(fbo); in copyLayer()
429 LayerRenderer renderer(renderState, layer); in copyLayer()
431 0.0f, 0.0f, bitmap->width(), bitmap->height(), !layer->isBlend()); in copyLayer()
440 renderer.drawTextureLayer(layer, bounds); in copyLayer()
451 layer->setAlpha(alpha, mode); in copyLayer()
452 layer->setFbo(previousLayerFbo); in copyLayer()