Home | History | Annotate | Download | only in hwc

Lines Matching refs:win

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