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 (const hwc_context_t *ctx,
134 int CopyBit::getLayersChanging(hwc_context_t *ctx,
186 int CopyBit::checkDirtyRect(hwc_context_t *ctx,
211 bool CopyBit::prepareOverlap(hwc_context_t *ctx,
269 bool CopyBit::prepare(hwc_context_t *ctx, hwc_display_contents_1_t *list,
273 // No copybit device found - cannot use copybit
278 ALOGD_IF (DEBUG_COPYBIT, "%s:Copybit failed,"
369 // We cannot mix copybit layer with layers marked to be drawn on FB
378 // Mark all layers to be drawn by copybit
394 int CopyBit::clear (private_handle_t* hnd, hwc_rect_t& rect)
408 copybit_device_t *copybit = mEngine;
409 ret = copybit->clear(copybit, &buf, &clear_rect);
413 bool CopyBit::drawUsingAppBufferComposition(hwc_context_t *ctx,
464 copybit_device_t *copybit = getCopyBitDevice();
466 copybit->set_sync(copybit,
473 ALOGE("%s : Copybit failed", __FUNCTION__);
476 // Get Release Fence FD of copybit for the App layer(s)
477 copybit->flush_get_fence(copybit, copybitFd);
486 bool CopyBit::draw(hwc_context_t *ctx, hwc_display_contents_1_t *list,
488 // draw layers marked for COPYBIT
496 mFbCache.reset(); // there is no layer marked for copybit
525 copybit_device_t *copybit = getCopyBitDevice();
526 copybit->set_sync(copybit, list->hwLayers[last].acquireFenceFd);
547 ALOGD_IF(DEBUG_COPYBIT, "%s: Not Marked for copybit", __FUNCTION__);
577 copybit_device_t *copybit = getCopyBitDevice();
579 copybit->flush_get_fence(copybit, fd);
590 int CopyBit::drawOverlap(hwc_context_t *ctx, hwc_display_contents_1_t *list) {
678 copybit_device_t *copybit = getCopyBitDevice();
679 copybit->flush_get_fence(copybit, &fd);
687 int CopyBit::drawRectUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
709 // Set the Copybit Source
726 // Copybit source rect
730 // Copybit destination rect
734 // Copybit dst
742 copybit_device_t *copybit = mEngine;
744 // Copybit region is the destRect
752 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
754 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
756 copybit->set_parameter(copybit, COPYBIT_TRANSFORM, layer->transform);
757 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, layer->planeAlpha);
758 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE, layer->blending);
759 copybit->set_parameter(copybit, COPYBIT_DITHER,
762 copybit->set_sync(copybit, acquireFd);
763 int err = copybit->stretch(copybit, &dst, &src, &dstRect, &srcRect,
767 ALOGE("%s: copybit stretch failed",__FUNCTION__);
772 int CopyBit::drawLayerUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
797 // Set the copybit source:
841 // Copybit source rect
847 // Copybit destination rect
862 // Copybit dst
870 copybit_device_t *copybit = mEngine;
877 // Copybit dst
879 (float)copybit->get(copybit,COPYBIT_MAGNIFICATION_LIMIT);
881 (float)copybit->get(copybit,COPYBIT_MINIFICATION_LIMIT);
944 // We do not want copybit to generate alpha values from nothing
966 copybit->set_parameter(copybit,COPYBIT_TRANSFORM,0);
968 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
969 copybit->set_sync(copybit, acquireFd);
970 err = copybit->stretch(copybit,&tmp_dst, &src, &tmp_rect,
973 ALOGE("%s:%d::tmp copybit stretch failed",__FUNCTION__,
981 copybit->flush_get_fence(copybit, &acquireFd);
990 // Copybit region
994 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
996 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
998 copybit->set_parameter(copybit, COPYBIT_TRANSFORM,
1001 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, 255);
1002 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE,
1004 copybit->set_parameter(copybit, COPYBIT_DITHER,
1007 copybit->set_parameter(copybit, COPYBIT_FG_LAYER, isFG ?
1010 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
1012 copybit->set_sync(copybit, acquireFd);
1013 err = copybit->stretch(copybit, &dst, &src, &dstRect, &srcRect,
1015 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,
1022 copybit->flush_get_fence(copybit, &releaseFd);
1034 ALOGE("%s: copybit stretch failed",__FUNCTION__);
1038 int CopyBit::fillColorUsingCopybit(hwc_layer_1_t *layer,
1046 // Copybit dst
1054 // Copybit dst rect
1060 copybit_device_t *copybit = mEngine;
1061 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_WIDTH,
1063 copybit->set_parameter(copybit, COPYBIT_FRAMEBUFFER_HEIGHT,
1065 copybit->set_parameter(copybit, COPYBIT_DITHER,
1068 copybit->set_parameter(copybit, COPYBIT_TRANSFORM, 0);
1069 copybit->set_parameter(copybit, COPYBIT_BLEND_MODE, layer->blending);
1070 copybit->set_parameter(copybit, COPYBIT_PLANE_ALPHA, layer->planeAlpha);
1071 copybit->set_parameter(copybit, COPYBIT_BLIT_TO_FRAMEBUFFER,COPYBIT_ENABLE);
1072 int res = copybit->fill_color(copybit, &dst, &dstRect, color);
1073 copybit->set_parameter(copybit,COPYBIT_BLIT_TO_FRAMEBUFFER,COPYBIT_DISABLE);
1077 void CopyBit::getLayerResolution(const hwc_layer_1_t* layer,
1086 bool CopyBit::validateParams(hwc_context_t *ctx,
1100 int CopyBit::allocRenderBuffers(int w, int h, int f)
1117 void CopyBit::freeRenderBuffers()
1132 private_handle_t * CopyBit::getCurrentRenderBuffer() {
1136 void CopyBit::setReleaseFd(int fd) {
1142 void CopyBit::setReleaseFdSync(int fd) {
1154 struct copybit_device_t* CopyBit::getCopyBitDevice() {
1158 CopyBit::CopyBit(hwc_context_t *ctx, const int& dpy) : mEngine(0),
1182 ALOGE("FATAL ERROR: copybit open failed.");
1185 ALOGE("FATAL ERROR: copybit hw module not found");
1189 CopyBit::~CopyBit()
1198 CopyBit::LayerCache::LayerCache() {
1201 void CopyBit::LayerCache::reset() {
1205 void CopyBit::LayerCache::updateCounts(hwc_context_t *ctx,
1214 CopyBit::FbCache::FbCache() {
1217 void CopyBit::FbCache::reset() {
1222 void CopyBit::FbCache::insertAndUpdateFbCache(hwc_rect_t dirtyRect) {
1228 int CopyBit::FbCache::getUnchangedFbDRCount(hwc_rect_t dirtyRect){