Lines Matching defs:pvfb
559 vfbAllocateMmappedFramebuffer(vfbScreenInfoPtr pvfb)
565 sprintf(pvfb->mmap_file, "%s/Xvfb_screen%d", pfbdir, (int) (pvfb - vfbScreens));
566 if (-1 == (pvfb->mmap_fd = open(pvfb->mmap_file, O_CREAT|O_RDWR, 0666)))
569 ErrorF("open %s failed, %s", pvfb->mmap_file, strerror(errno));
577 currentFileSize < pvfb->sizeInBytes;
581 pvfb->sizeInBytes - currentFileSize);
582 if (-1 == write(pvfb->mmap_fd, dummyBuffer, writeThisTime))
585 ErrorF("write %s failed, %s", pvfb->mmap_file, strerror(errno));
592 pvfb->pXWDHeader = (XWDFileHeader *)mmap((caddr_t)NULL, pvfb->sizeInBytes,
595 pvfb->mmap_fd, 0);
596 if (-1 == (long)pvfb->pXWDHeader)
599 ErrorF("mmap %s failed, %s", pvfb->mmap_file, strerror(errno));
600 pvfb->pXWDHeader = NULL;
607 pvfb->pXWDHeader = NULL;
615 vfbAllocateSharedMemoryFramebuffer(vfbScreenInfoPtr pvfb)
619 pvfb->shmid = shmget(IPC_PRIVATE, pvfb->sizeInBytes, IPC_CREAT|0777);
620 if (pvfb->shmid < 0)
623 ErrorF("shmget %d bytes failed, %s", pvfb->sizeInBytes, strerror(errno));
629 pvfb->pXWDHeader = (XWDFileHeader *)shmat(pvfb->shmid, 0, 0);
630 if (-1 == (long)pvfb->pXWDHeader)
634 pvfb->pXWDHeader = NULL;
638 ErrorF("screen %d shmid %d\n", (int) (pvfb - vfbScreens), pvfb->shmid);
643 vfbAllocateFramebufferMemory(vfbScreenInfoPtr pvfb)
645 if (pvfb->pfbMemory) return pvfb->pfbMemory; /* already done */
647 pvfb->sizeInBytes = pvfb->paddedBytesWidth * pvfb->height;
655 if (pvfb->depth <= 10)
657 pvfb->ncolors = 1 << pvfb->depth;
661 int nplanes_per_color_component = pvfb->depth / 3;
662 if (pvfb->depth % 3) nplanes_per_color_component++;
663 pvfb->ncolors = 1 << nplanes_per_color_component;
668 pvfb->sizeInBytes += SIZEOF(XWDheader) + XWD_WINDOW_NAME_LEN +
669 pvfb->ncolors * SIZEOF(XWDColor);
671 pvfb->pXWDHeader = NULL;
675 case MMAPPED_FILE_FB: vfbAllocateMmappedFramebuffer(pvfb); break;
681 case SHARED_MEMORY_FB: vfbAllocateSharedMemoryFramebuffer(pvfb); break;
687 pvfb->pXWDHeader = (XWDFileHeader *)malloc(pvfb->sizeInBytes);
691 if (pvfb->pXWDHeader)
693 pvfb->pXWDCmap = (XWDColor *)((char *)pvfb->pXWDHeader
695 pvfb->pfbMemory = (char *)(pvfb->pXWDCmap + pvfb->ncolors);
697 return pvfb->pfbMemory;
707 vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
708 XWDFileHeader *pXWDHeader = pvfb->pXWDHeader;
715 pXWDHeader->header_size = (char *)pvfb->pXWDCmap - (char *)pvfb->pXWDHeader;
719 pXWDHeader->pixmap_depth = pvfb->depth;
720 pXWDHeader->pixmap_height = pXWDHeader->window_height = pvfb->height;
725 pXWDHeader->pixmap_width = pXWDHeader->window_width = pvfb->width;
729 pXWDHeader->pixmap_width = pXWDHeader->window_width = pvfb->paddedWidth;
733 pXWDHeader->bits_per_pixel = pvfb->bitsPerPixel;
734 pXWDHeader->bytes_per_line = pvfb->paddedBytesWidth;
735 pXWDHeader->ncolors = pvfb->ncolors;
753 for (i = 0; i < pvfb->ncolors; i++)
755 pvfb->pXWDCmap[i].pixel = i;
763 for (i = 0; i < pvfb->ncolors; i++)
766 swapl(&pvfb->pXWDCmap[i].pixel, n);
793 vfbScreenInfoPtr pvfb = &vfbScreens[index];
796 pScreen->CloseScreen = pvfb->closeScreen;
811 vfbScreenInfoPtr pvfb = &vfbScreens[index];
825 pvfb->paddedBytesWidth = PixmapBytePad(pvfb->width, pvfb->depth);
826 pvfb->bitsPerPixel = vfbBitsPerPixel(pvfb->depth);
827 if (pvfb->bitsPerPixel >= 8 )
828 pvfb->paddedWidth = pvfb->paddedBytesWidth / (pvfb->bitsPerPixel / 8);
830 pvfb->paddedWidth = pvfb->paddedBytesWidth * 8;
831 pbits = vfbAllocateFramebufferMemory(pvfb);
834 switch (pvfb->depth) {
875 ret = fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height,
876 dpix, dpiy, pvfb->paddedWidth,pvfb->bitsPerPixel);
893 pScreen->blackPixel = pvfb->blackPixel;
894 pScreen->whitePixel = pvfb->whitePixel;
898 miSetZeroLineBias(pScreen, pvfb->lineBias);
900 pvfb->closeScreen = pScreen->CloseScreen;