Home | History | Annotate | Download | only in libhwcomposer

Lines Matching defs:CopyBit

21 #include <copybit.h>
72 void CopyBit::reset() {
77 bool CopyBit::canUseCopybitForYUV(hwc_context_t *ctx) {
85 bool CopyBit::canUseCopybitForRGB(hwc_context_t *ctx,
93 // use copybit, if (TotalRGBRenderArea < threashold * FB Area)
106 // MDP composition, use COPYBIT always
109 // C2D composition, use COPYBIT
115 unsigned int CopyBit::getRGBRenderingArea
134 bool CopyBit::prepare(hwc_context_t *ctx, hwc_display_contents_1_t *list,
138 // No copybit device found - cannot use copybit
223 // We cannot mix copybit layer with layers marked to be drawn on FB
232 // Mark all layers to be drawn by copybit
247 int CopyBit::clear (private_handle_t* hnd, hwc_rect_t& rect)
261 copybit_device_t *copybit = mEngine;
262 ret = copybit->clear(copybit, &buf, &clear_rect);
266 bool CopyBit::draw(hwc_context_t *ctx, hwc_display_contents_1_t *list,
268 // draw layers marked for COPYBIT
275 if(mCopyBitDraw == false) // there is no layer marked for copybit
299 copybit_device_t *copybit = getCopyBitDevice();
300 copybit->set_sync(copybit, list->hwLayers[last].acquireFenceFd);
313 ALOGD_IF(DEBUG_COPYBIT, "%s: Not Marked for copybit", __FUNCTION__);
340 copybit_device_t *copybit = getCopyBitDevice();
342 copybit->flush_get_fence(copybit, fd);
352 int CopyBit::drawLayerUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
377 // Set the copybit source:
421 // Copybit source rect
427 // Copybit destination rect
433 // Copybit dst
441 copybit_device_t *copybit = mEngine;
448 // Copybit dst
450 (float)copybit->get(copybit,COPYBIT_MAGNIFICATION_LIMIT);
452 (float)copybit->get(copybit,COPYBIT_MINIFICATION_LIMIT);
515 // We do not want copybit to generate alpha values from nothing
537 copybit->set_parameter(copybit,COPYBIT_TRANSFORM,0);
539 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
540 copybit->set_sync(copybit, acquireFd);
541 err = copybit->stretch(copybit,&tmp_dst, &src, &tmp_rect,
544 ALOGE("%s:%d::tmp copybit stretch failed",__FUNCTION__,
552 copybit->flush_get_fence(copybit, &acquireFd);
561 // Copybit region
565 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
567 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
569 copybit->set_parameter(copybit, COPYBIT_TRANSFORM,
572 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
573 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE,
575 copybit->set_parameter(copybit, COPYBIT_DITHER,
578 copybit->set_parameter(copybit, COPYBIT_FG_LAYER, isFG ?
581 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
583 copybit->set_sync(copybit, acquireFd);
584 err = copybit->stretch(copybit, &dst, &src, &dstRect, &srcRect,
586 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
593 copybit->flush_get_fence(copybit, &releaseFd);
605 ALOGE("%s: copybit stretch failed",__FUNCTION__);
609 int CopyBit::fillColorUsingCopybit(hwc_layer_1_t *layer,
617 // Copybit dst
625 // Copybit dst rect
631 copybit_device_t *copybit = mEngine;
632 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
634 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
636 copybit->set_parameter(copybit, COPYBIT_DITHER,
639 copybit->set_parameter(copybit, COPYBIT_TRANSFORM, 0);
640 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE, layer->blending);
641 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, layer->planeAlpha);
642 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,COPYBIT_ENABLE);
643 int res = copybit->fill_color(copybit, &dst, &dstRect, color);
644 copybit->set_parameter(copybit,COPYBIT_BLIT_TO_FRAMEBUFFER,COPYBIT_DISABLE);
648 void CopyBit::getLayerResolution(const hwc_layer_1_t* layer,
657 bool CopyBit::validateParams(hwc_context_t *ctx,
671 int CopyBit::allocRenderBuffers(int w, int h, int f)
688 void CopyBit::freeRenderBuffers()
703 private_handle_t * CopyBit::getCurrentRenderBuffer() {
707 void CopyBit::setReleaseFd(int fd) {
713 struct copybit_device_t* CopyBit::getCopyBitDevice() {
717 CopyBit::CopyBit(hwc_context_t *ctx, const int& dpy) : mIsModeOn(false),
738 ALOGE("FATAL ERROR: copybit open failed.");
741 ALOGE("FATAL ERROR: copybit hw module not found");
745 CopyBit::~CopyBit()