Home | History | Annotate | Download | only in libhwcomposer

Lines Matching defs: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
278 ALOGD_IF(DEBUG_COPYBIT, "%s: Not Marked for copybit", __FUNCTION__);
302 copybit_device_t *copybit = getCopyBitDevice();
304 copybit->flush_get_fence(copybit, fd);
309 int CopyBit::drawLayerUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
331 // Set the copybit source:
344 // Copybit source rect
350 // Copybit destination rect
356 // Copybit dst
364 copybit_device_t *copybit = mEngine;
371 // Copybit dst
373 (float)copybit->get(copybit,COPYBIT_MAGNIFICATION_LIMIT);
375 (float)copybit->get(copybit,COPYBIT_MINIFICATION_LIMIT);
444 // We do not want copybit to generate alpha values from nothing
466 copybit->set_parameter(copybit,COPYBIT_TRANSFORM,0);
468 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
469 copybit->set_sync(copybit, acquireFd);
470 err = copybit->stretch(copybit,&tmp_dst, &src, &tmp_rect,
473 ALOGE("%s:%d::tmp copybit stretch failed",__FUNCTION__,
481 copybit->flush_get_fence(copybit, &acquireFd);
490 // Copybit region
494 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
496 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
498 copybit->set_parameter(copybit, COPYBIT_TRANSFORM,
501 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
502 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE,
504 copybit->set_parameter(copybit, COPYBIT_DITHER,
507 copybit->set_parameter(copybit, COPYBIT_FG_LAYER, isFG ?
510 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
512 copybit->set_sync(copybit, acquireFd);
513 err = copybit->stretch(copybit, &dst, &src, &dstRect, &srcRect,
515 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
522 copybit->flush_get_fence(copybit, &releaseFd);
534 ALOGE("%s: copybit stretch failed",__FUNCTION__);
538 void CopyBit::getLayerResolution(const hwc_layer_1_t* layer,
547 bool CopyBit::validateParams(hwc_context_t *ctx,
561 int CopyBit::allocRenderBuffers(int w, int h, int f)
578 void CopyBit::freeRenderBuffers()
588 private_handle_t * CopyBit::getCurrentRenderBuffer() {
592 void CopyBit::setReleaseFd(int fd) {
599 struct copybit_device_t* CopyBit::getCopyBitDevice() {
603 CopyBit::CopyBit():mIsModeOn(false), mCopyBitDraw(false),
617 ALOGE("FATAL ERROR: copybit open failed.");
620 ALOGE("FATAL ERROR: copybit hw module not found");
624 CopyBit::~CopyBit()