Lines Matching refs:layer

56 static void ApplyDeInterlaceAdjustment(Layer *layer) {
58 if (layer->input_buffer->flags.interlace) {
59 float height = (layer->src_rect.bottom - layer->src_rect.top) / 2.0f;
60 layer->src_rect.top = ROUND_UP_ALIGN_DOWN(layer->src_rect.top / 2.0f, 2);
61 layer->src_rect.bottom = layer->src_rect.top + floorf(height);
323 Layer *layer = new Layer();
325 layer->input_buffer = layer_buffer;
326 layer_stack_.layers.push_back(layer);
333 for (Layer *layer : layer_stack_.layers) {
334 delete layer->input_buffer;
335 delete layer;
340 int HWCDisplay::PrepareLayerParams(hwc_layer_1_t *hwc_layer, Layer* layer) {
343 LayerBuffer *layer_buffer = layer->input_buffer;
350 if (SetMetaData(pvt_handle, layer) != kErrorNone) {
371 // check if this is special solid_fill layer without input_buffer.
373 layer->flags.solid_fill = true;
374 layer->solid_fill_color = solid_fill_color_;
377 // for FBT layer
406 void HWCDisplay::CommitLayerParams(hwc_layer_1_t *hwc_layer, Layer *layer) {
408 LayerBuffer *layer_buffer = layer->input_buffer;
436 // Configure each layer
440 Layer *layer = layer_stack_.layers.at(i);
441 int ret = PrepareLayerParams(&content_list->hwLayers[i], layer);
447 layer->flags.skip = ((hwc_layer.flags & HWC_SKIP_LAYER) > 0);
448 layer->flags.solid_fill = (hwc_layer.flags & kDimLayer) || solid_fill_enable_;
449 if (layer->flags.skip || layer->flags.solid_fill) {
450 layer->dirty_regions.clear();
456 SetRect(scaled_display_frame, &layer->dst_rect);
457 SetRect(hwc_layer.sourceCropf, &layer->src_rect);
458 ApplyDeInterlaceAdjustment(layer);
466 layer->visible_regions.push_back(visible_rect);
472 layer->dirty_regions.push_back(dirty_rect);
478 layer->blit_regions.push_back(blit_rect);
482 SetComposition(hwc_layer.compositionType, &layer->composition);
484 display_rect_ = Union(display_rect_, layer->dst_rect);
497 layer->input_buffer->format = kFormatARGB8888;
498 layer->solid_fill_color = 0xff000000;
499 SetBlending(HWC_BLENDING_COVERAGE, &layer->blending);
501 SetBlending(hwc_layer.blending, &layer->blending);
502 LayerTransform &layer_transform = layer->transform;
511 if (layer->flags.solid_fill) {
512 LayerBuffer *input_buffer = layer->input_buffer;
513 input_buffer->width = UINT32(layer->dst_rect.right - layer->dst_rect.left);
514 input_buffer->height = UINT32(layer->dst_rect.bottom - layer->dst_rect.top);
515 layer->src_rect.left = 0;
516 layer->src_rect.top = 0;
517 layer->src_rect.right = input_buffer->width;
518 layer->src_rect.bottom = input_buffer->height;
521 layer->plane_alpha = hwc_layer.planeAlpha;
522 layer->flags.cursor = ((hwc_layer.flags & HWC_IS_CURSOR_LAYER) > 0);
523 layer->flags.updating = true;
526 layer->flags.updating = IsLayerUpdating(content_list, layer);
533 if (layer->flags.skip) {
537 if (layer->flags.cursor) {
541 PrepareDynamicRefreshRate(layer);
543 layer->input_buffer->buffer_id = reinterpret_cast<uint64_t>(hwc_layer.handle);
552 // Blit engine cannot handle this layer stack, hence set the layer stack
561 // Configure layer stack
599 Layer *layer = layer_stack_.layers.at(i);
600 LayerComposition composition = layer->composition;
684 Layer *layer = layer_stack_.layers.at(i);
685 LayerBuffer *layer_buffer = layer->input_buffer;
690 if (swap_interval_zero_ || layer->flags.single_buffer) {
694 } else if (layer->composition != kCompositionGPU) {
699 // framebuffer layer throughout animation and do not allow framework to do eglswapbuffer on
702 if (layer->composition == kCompositionGPUTarget && animating_) {
734 bool HWCDisplay::IsLayerUpdating(hwc_display_contents_1_t *content_list, const Layer *layer) {
736 // a) layer is in single buffer mode, or
738 // c) layer stack geometry has changed
739 return (layer->flags.single_buffer || IsSurfaceUpdated(layer->dirty_regions) ||
1140 hwc_layer_1_t *layer = &content_list->hwLayers[i];
1141 layer->compositionType = HWC_OVERLAY;
1173 DisplayError HWCDisplay::SetMetaData(const private_handle_t *pvt_handle, Layer *layer) {
1175 LayerBuffer *layer_buffer = layer->input_buffer;
1194 layer->frame_rate = RoundToStandardFPS(meta_data->refreshrate);
1214 layer->flags.single_buffer = meta_data->isSingleBufferMode;
1224 layer->input_buffer->s3d_format = it->second;
1310 Layer *layer = layer_stack_.layers.at(i);
1311 if (layer->flags.updating) {
1323 Layer *layer = layer_stack_.layers[i];
1324 if (layer->flags.updating && (layer->input_buffer->flags.video == true)) {
1368 void HWCDisplay::PrepareDynamicRefreshRate(Layer *layer) {
1369 if (layer->frame_rate > metadata_refresh_rate_) {
1370 metadata_refresh_rate_ = SanitizeRefreshRate(layer->frame_rate);
1372 layer->frame_rate = current_refresh_rate_;
1378 // dirty_rect count = 0 - whole layer - updating.