Lines Matching refs:win
125 CNativeWindow *win = from_base(base); in cnw_set_swap_interval() local
126 if (win->fb && win->fb->setSwapInterval) in cnw_set_swap_interval()
127 return win->fb->setSwapInterval(win->fb, interval); in cnw_set_swap_interval()
132 CNativeWindow *win = from_base(base); in cnw_dequeue_buffer1() local
135 pthread_mutex_lock(&win->lock); in cnw_dequeue_buffer1()
137 while ((cnb = get_front(&win->free_buffer_queue)) == 0) { in cnw_dequeue_buffer1()
138 pthread_cond_wait(&win->cvar, &win->lock); in cnw_dequeue_buffer1()
146 pthread_mutex_unlock(&win->lock); in cnw_dequeue_buffer1()
180 static void hwc_post(CNativeWindow *win, aBuffer *buf, int ffd) { in hwc_post() argument
181 hwc_composer_device_1_t *hwc = win->hwc; in hwc_post()
182 hwc_display_contents_1_t *dc = &(win->dc); in hwc_post()
183 hwc_layer_1_t *dl = win->dc.hwLayers; in hwc_post()
198 set_layer(&dl[1], win->spare, -1); in hwc_post()
203 r = hwc->prepare(hwc, HWC_NUM_PHYSICAL_DISPLAY_TYPES, win->dclist); in hwc_post()
213 r = hwc->set(hwc, HWC_NUM_PHYSICAL_DISPLAY_TYPES, win->dclist); in hwc_post()
231 CNativeWindow *win = from_base(base); in cnw_queue_buffer1() local
234 if (win->fb) { in cnw_queue_buffer1()
235 res = win->fb->post(win->fb, buffer->handle); in cnw_queue_buffer1()
239 hwc_post(win, buffer, ffd); in cnw_queue_buffer1()
242 pthread_mutex_lock(&win->lock); in cnw_queue_buffer1()
243 if (win->front) in cnw_queue_buffer1()
244 put_back(&win->free_buffer_queue, win->front); in cnw_queue_buffer1()
245 win->front = buffer; in cnw_queue_buffer1()
246 pthread_cond_signal(&win->cvar); in cnw_queue_buffer1()
247 pthread_mutex_unlock(&win->lock); in cnw_queue_buffer1()
253 CNativeWindow *win = from_base(base); in cnw_cancel_buffer1() local
257 pthread_mutex_lock(&win->lock); in cnw_cancel_buffer1()
258 put_front(&win->free_buffer_queue, buf); in cnw_cancel_buffer1()
259 pthread_mutex_unlock(&win->lock); in cnw_cancel_buffer1()
281 CNativeWindow *win = from_base_const(base); in cnw_query() local
286 *value = win->width; in cnw_query()
291 *value = win->height; in cnw_query()
295 *value = win->format; in cnw_query()
314 CNativeWindow *win = from_base(base); in cnw_perform() local
342 if ((w == win->width) && (h == win->height)) { in cnw_perform()
374 static int hwc_init(CNativeWindow *win) { in hwc_init() argument
392 win->hwc = hwc; in hwc_init()
416 win->width = values[0]; in hwc_init()
417 win->height = values[1]; in hwc_init()
418 win->xdpi = values[3]; in hwc_init()
419 win->ydpi = values[4]; in hwc_init()
420 win->format = HAL_PIXEL_FORMAT_RGBA_8888; in hwc_init()
424 win->dclist[0] = &(win->dc); in hwc_init()
428 static aBuffer *cnw_alloc(CNativeWindow *win, unsigned format, unsigned usage) { in cnw_alloc() argument
444 buf->width = win->width; in cnw_alloc()
445 buf->height = win->height; in cnw_alloc()
449 err = win->gr->alloc(win->gr, win->width, win->height, in cnw_alloc()
453 win->width, win->height, err); in cnw_alloc()
457 INFO("alloc buffer %p %d x %d\n", buf, win->width, win->height); in cnw_alloc()
461 static int cnw_init(CNativeWindow *win) { in cnw_init() argument
468 memset(win, 0, sizeof(CNativeWindow)); in cnw_init()
470 win->free_buffer_queue.next = &(win->free_buffer_queue); in cnw_init()
471 win->free_buffer_queue.prev = &(win->free_buffer_queue); in cnw_init()
478 if (hwc_init(win)) { in cnw_init()
485 win->width = fb->width; in cnw_init()
486 win->height = fb->height; in cnw_init()
487 win->format = fb->format; in cnw_init()
488 win->xdpi = fb->xdpi; in cnw_init()
489 win->ydpi = fb->ydpi; in cnw_init()
490 win->fb = fb; in cnw_init()
494 win->width, win->height, win->format); in cnw_init()
501 win->gr = gr; in cnw_init()
508 aBuffer *buf = cnw_alloc(win, win->format, usage); in cnw_init()
511 put_back(&win->free_buffer_queue, buf); in cnw_init()
514 if (!win->fb && QCT_WORKAROUND) { in cnw_init()
515 win->spare = cnw_alloc(win, win->format, usage); in cnw_init()
516 if (!win->spare) in cnw_init()
522 *((float*) &win->base.xdpi) = win->xdpi; in cnw_init()
523 *((float*) &win->base.ydpi) = win->ydpi; in cnw_init()
524 *((int*) &win->base.minSwapInterval) = 1; in cnw_init()
525 *((int*) &win->base.maxSwapInterval) = 1; in cnw_init()
527 win->base.common.magic = ANDROID_NATIVE_WINDOW_MAGIC; in cnw_init()
528 win->base.common.version = sizeof(aWindow); in cnw_init()
529 win->base.common.incRef = cnw_inc_ref; in cnw_init()
530 win->base.common.decRef = cnw_dec_ref; in cnw_init()
532 win->base.setSwapInterval = cnw_set_swap_interval; in cnw_init()
533 win->base.dequeueBuffer_DEPRECATED = cnw_dequeue_buffer0; in cnw_init()
534 win->base.lockBuffer_DEPRECATED = cnw_lock_buffer0; in cnw_init()
535 win->base.queueBuffer_DEPRECATED = cnw_queue_buffer0; in cnw_init()
536 win->base.query = cnw_query; in cnw_init()
537 win->base.perform = cnw_perform; in cnw_init()
538 win->base.cancelBuffer_DEPRECATED = cnw_cancel_buffer0; in cnw_init()
539 win->base.dequeueBuffer = cnw_dequeue_buffer1; in cnw_init()
540 win->base.queueBuffer = cnw_queue_buffer1; in cnw_init()
541 win->base.cancelBuffer = cnw_cancel_buffer1; in cnw_init()
543 pthread_mutex_init(&win->lock, NULL); in cnw_init()
544 pthread_cond_init(&win->cvar, NULL); in cnw_init()
549 void cnw_destroy(CNativeWindow *win) { in cnw_destroy() argument
550 if (win->fb) in cnw_destroy()
551 framebuffer_close(win->fb); in cnw_destroy()
552 if (win->hwc) in cnw_destroy()
553 hwc_close_1(win->hwc); in cnw_destroy()
554 if (win->gr) in cnw_destroy()
555 gralloc_close(win->gr); in cnw_destroy()
556 free(win); in cnw_destroy()
560 CNativeWindow *win; in cnw_create() local
564 if (!(win = malloc(sizeof(CNativeWindow)))) in cnw_create()
566 if (cnw_init(win)) { in cnw_create()
567 cnw_destroy(win); in cnw_create()
570 return win; in cnw_create()
573 void cnw_info(CNativeWindow *win, unsigned *w, unsigned *h, unsigned *fmt) { in cnw_info() argument
574 *w = win->width; in cnw_info()
575 *h = win->height; in cnw_info()
576 *fmt = win->format; in cnw_info()