Lines Matching defs:pvfb
160 freeScreenInfo(vfbScreenInfoPtr pvfb)
165 if (-1 == unlink(pvfb->mmap_file)) {
168 pvfb->mmap_file, strerror(errno));
178 if (-1 == shmdt((char *) pvfb->pXWDHeader)) {
189 free(pvfb->pXWDHeader);
491 vfbAllocateMmappedFramebuffer(vfbScreenInfoPtr pvfb)
497 snprintf(pvfb->mmap_file, sizeof(pvfb->mmap_file), "%s/Xvfb_screen%d",
498 pfbdir, (int) (pvfb - vfbScreens));
499 if (-1 == (pvfb->mmap_fd = open(pvfb->mmap_file, O_CREAT | O_RDWR, 0666))) {
501 ErrorF("open %s failed, %s", pvfb->mmap_file, strerror(errno));
509 currentFileSize < pvfb->sizeInBytes;
512 pvfb->sizeInBytes - currentFileSize);
513 if (-1 == write(pvfb->mmap_fd, dummyBuffer, writeThisTime)) {
515 ErrorF("write %s failed, %s", pvfb->mmap_file, strerror(errno));
522 pvfb->pXWDHeader = (XWDFileHeader *) mmap((caddr_t) NULL, pvfb->sizeInBytes,
525 pvfb->mmap_fd, 0);
526 if (-1 == (long) pvfb->pXWDHeader) {
528 ErrorF("mmap %s failed, %s", pvfb->mmap_file, strerror(errno));
529 pvfb->pXWDHeader = NULL;
535 pvfb->pXWDHeader = NULL;
542 vfbAllocateSharedMemoryFramebuffer(vfbScreenInfoPtr pvfb)
546 pvfb->shmid = shmget(IPC_PRIVATE, pvfb->sizeInBytes, IPC_CREAT | 0777);
547 if (pvfb->shmid < 0) {
549 ErrorF("shmget %d bytes failed, %s", pvfb->sizeInBytes,
556 pvfb->pXWDHeader = (XWDFileHeader *) shmat(pvfb->shmid, 0, 0);
557 if (-1 == (long) pvfb->pXWDHeader) {
560 pvfb->pXWDHeader = NULL;
564 ErrorF("screen %d shmid %d\n", (int) (pvfb - vfbScreens), pvfb->shmid);
569 vfbAllocateFramebufferMemory(vfbScreenInfoPtr pvfb)
571 if (pvfb->pfbMemory)
572 return pvfb->pfbMemory; /* already done */
574 pvfb->sizeInBytes = pvfb->paddedBytesWidth * pvfb->height;
582 if (pvfb->depth <= 10) { /* single index colormaps */
583 pvfb->ncolors = 1 << pvfb->depth;
586 int nplanes_per_color_component = pvfb->depth / 3;
588 if (pvfb->depth % 3)
590 pvfb->ncolors = 1 << nplanes_per_color_component;
595 pvfb->sizeInBytes += SIZEOF(XWDheader) + XWD_WINDOW_NAME_LEN +
596 pvfb->ncolors * SIZEOF(XWDColor);
598 pvfb->pXWDHeader = NULL;
602 vfbAllocateMmappedFramebuffer(pvfb);
611 vfbAllocateSharedMemoryFramebuffer(pvfb);
619 pvfb->pXWDHeader = (XWDFileHeader *) malloc(pvfb->sizeInBytes);
623 if (pvfb->pXWDHeader) {
624 pvfb->pXWDCmap = (XWDColor *) ((char *) pvfb->pXWDHeader
627 pvfb->pfbMemory = (char *) (pvfb->pXWDCmap + pvfb->ncolors);
629 return pvfb->pfbMemory;
638 vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
639 XWDFileHeader *pXWDHeader = pvfb->pXWDHeader;
647 (char *) pvfb->pXWDCmap - (char *) pvfb->pXWDHeader;
651 pXWDHeader->pixmap_depth = pvfb->depth;
652 pXWDHeader->pixmap_height = pXWDHeader->window_height = pvfb->height;
657 pXWDHeader->pixmap_width = pXWDHeader->window_width = pvfb->width;
661 pXWDHeader->pixmap_width = pXWDHeader->window_width = pvfb->paddedWidth;
665 pXWDHeader->bits_per_pixel = pvfb->bitsPerPixel;
666 pXWDHeader->bytes_per_line = pvfb->paddedBytesWidth;
667 pXWDHeader->ncolors = pvfb->ncolors;
685 for (i = 0; i < pvfb->ncolors; i++) {
686 pvfb->pXWDCmap[i].pixel = i;
693 for (i = 0; i < pvfb->ncolors; i++) {
694 swapl(&pvfb->pXWDCmap[i].pixel);
719 vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
721 pScreen->CloseScreen = pvfb->closeScreen;
861 vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
872 pvfb->paddedBytesWidth = PixmapBytePad(pvfb->width, pvfb->depth);
873 pvfb->bitsPerPixel = vfbBitsPerPixel(pvfb->depth);
874 if (pvfb->bitsPerPixel >= 8)
875 pvfb->paddedWidth = pvfb->paddedBytesWidth / (pvfb->bitsPerPixel / 8);
877 pvfb->paddedWidth = pvfb->paddedBytesWidth * 8;
878 pbits = vfbAllocateFramebufferMemory(pvfb);
882 switch (pvfb->depth) {
923 ret = fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height,
924 dpix, dpiy, pvfb->paddedWidth, pvfb->bitsPerPixel);
941 pScreen->blackPixel = pvfb->blackPixel;
942 pScreen->whitePixel = pvfb->whitePixel;
946 miSetZeroLineBias(pScreen, pvfb->lineBias);
948 pvfb->closeScreen = pScreen->CloseScreen;