Home | History | Annotate | Download | only in libhwcomposer

Lines Matching refs:copybit

23 #include <copybit.h>
69 void CopyBit::reset() {
74 bool CopyBit::canUseCopybitForYUV(hwc_context_t *ctx) {
82 bool CopyBit::canUseCopybitForRGB(hwc_context_t *ctx,
90 // use copybit, if (TotalRGBRenderArea < threashold * FB Area)
103 // MDP composition, use COPYBIT always
106 // C2D composition, use COPYBIT
112 unsigned int CopyBit::getRGBRenderingArea
131 bool CopyBit::prepare(hwc_context_t *ctx, hwc_display_contents_1_t *list,
135 // No copybit device found - cannot use copybit
200 // We cannot mix copybit layer with layers marked to be drawn on FB
214 // We currently cannot mix copybit layers with layers marked to
225 int CopyBit::clear (private_handle_t* hnd, hwc_rect_t& rect)
239 copybit_device_t *copybit = mEngine;
240 ret = copybit->clear(copybit, &buf, &clear_rect);
244 bool CopyBit::draw(hwc_context_t *ctx, hwc_display_contents_1_t *list,
246 // draw layers marked for COPYBIT
251 if(mCopyBitDraw == false) // there is no layer marked for copybit
279 ALOGD_IF(DEBUG_COPYBIT, "%s: Not Marked for copybit", __FUNCTION__);
303 copybit_device_t *copybit = getCopyBitDevice();
305 copybit->flush_get_fence(copybit, fd);
310 int CopyBit::drawLayerUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
332 // Set the copybit source:
345 // Copybit source rect
351 // Copybit destination rect
357 // Copybit dst
365 copybit_device_t *copybit = mEngine;
372 // Copybit dst
374 (float)copybit->get(copybit,COPYBIT_MAGNIFICATION_LIMIT);
376 (float)copybit->get(copybit,COPYBIT_MINIFICATION_LIMIT);
445 // We do not want copybit to generate alpha values from nothing
467 copybit->set_parameter(copybit,COPYBIT_TRANSFORM,0);
469 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
470 copybit->set_sync(copybit, acquireFd);
471 err = copybit->stretch(copybit,&tmp_dst, &src, &tmp_rect,
474 ALOGE("%s:%d::tmp copybit stretch failed",__FUNCTION__,
482 copybit->flush_get_fence(copybit, &acquireFd);
491 // Copybit region
495 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
497 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
499 copybit->set_parameter(copybit, COPYBIT_TRANSFORM,
502 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
503 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE,
505 copybit->set_parameter(copybit, COPYBIT_DITHER,
508 copybit->set_parameter(copybit, COPYBIT_FG_LAYER, isFG ?
511 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
513 copybit->set_sync(copybit, acquireFd);
514 err = copybit->stretch(copybit, &dst, &src, &dstRect, &srcRect,
516 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
523 copybit->flush_get_fence(copybit, &releaseFd);
535 ALOGE("%s: copybit stretch failed",__FUNCTION__);
539 void CopyBit::getLayerResolution(const hwc_layer_1_t* layer,
548 bool CopyBit::validateParams(hwc_context_t *ctx,
562 int CopyBit::allocRenderBuffers(int w, int h, int f)
579 void CopyBit::freeRenderBuffers()
589 private_handle_t * CopyBit::getCurrentRenderBuffer() {
593 void CopyBit::setReleaseFd(int fd) {
600 struct copybit_device_t* CopyBit::getCopyBitDevice() {
604 CopyBit::CopyBit():mIsModeOn(false), mCopyBitDraw(false),
618 ALOGE("FATAL ERROR: copybit open failed.");
621 ALOGE("FATAL ERROR: copybit hw module not found");
625 CopyBit::~CopyBit()