comparison src/video/os2fslib/SDL_os2fslib.c @ 2735:204be4fc2726

Final merge of Google Summer of Code 2008 work... Port SDL 1.3 to the Nintendo DS by Darren Alton, mentored by Sam Lantinga
author Sam Lantinga <slouken@libsdl.org>
date Wed, 27 Aug 2008 15:10:03 +0000
parents c121d94672cb
children 99210400e8b9
comparison
equal deleted inserted replaced
2734:dd25eabe441c 2735:204be4fc2726
438 // Only switch between fullscreen and back if it's not 438 // Only switch between fullscreen and back if it's not
439 // a resizable mode! 439 // a resizable mode!
440 if ((!pVideo->hidden->pSDLSurface) || 440 if ((!pVideo->hidden->pSDLSurface) ||
441 ((pVideo->hidden->pSDLSurface) 441 ((pVideo->hidden->pSDLSurface)
442 && 442 &&
443 ((pVideo->hidden->pSDLSurface-> 443 ((pVideo->hidden->
444 flags & SDL_RESIZABLE) == 0))) 444 pSDLSurface->flags & SDL_RESIZABLE) == 0)))
445 FSLib_ToggleFSMode(hwnd, !FSLib_QueryFSMode(hwnd)); 445 FSLib_ToggleFSMode(hwnd, !FSLib_QueryFSMode(hwnd));
446 #ifdef DEBUG_BUILD 446 #ifdef DEBUG_BUILD
447 else 447 else
448 printf(" Resizable mode, so discarding ALT+HOME!\n"); 448 printf(" Resizable mode, so discarding ALT+HOME!\n");
449 fflush(stdout); 449 fflush(stdout);
550 } else 550 } else
551 #endif 551 #endif
552 { 552 {
553 553
554 iXScaleError = 554 iXScaleError =
555 (pVideo->hidden->SrcBufferDesc. 555 (pVideo->hidden->SrcBufferDesc.uiXResolution -
556 uiXResolution - 1) / swp.cx; 556 1) / swp.cx;
557 iYScaleError = 557 iYScaleError =
558 (pVideo->hidden->SrcBufferDesc. 558 (pVideo->hidden->SrcBufferDesc.uiYResolution -
559 uiYResolution - 1) / swp.cy; 559 1) / swp.cy;
560 if (iXScaleError < 0) 560 if (iXScaleError < 0)
561 iXScaleError = 0; 561 iXScaleError = 0;
562 if (iYScaleError < 0) 562 if (iYScaleError < 0)
563 iYScaleError = 0; 563 iYScaleError = 0;
564 iXScaleError2 = 564 iXScaleError2 =
575 iYScaleError2 = 0; 575 iYScaleError2 = 0;
576 576
577 iTop = 577 iTop =
578 (swp.cy - 578 (swp.cy -
579 rcl.yTop) * 579 rcl.yTop) *
580 pVideo->hidden->SrcBufferDesc. 580 pVideo->hidden->SrcBufferDesc.uiYResolution /
581 uiYResolution / swp.cy - iYScaleError; 581 swp.cy - iYScaleError;
582 iLeft = 582 iLeft =
583 rcl.xLeft * 583 rcl.xLeft *
584 pVideo->hidden->SrcBufferDesc. 584 pVideo->hidden->SrcBufferDesc.uiXResolution /
585 uiXResolution / swp.cx - iXScaleError; 585 swp.cx - iXScaleError;
586 iWidth = 586 iWidth =
587 ((rcl.xRight - 587 ((rcl.xRight -
588 rcl.xLeft) * 588 rcl.xLeft) *
589 pVideo->hidden->SrcBufferDesc. 589 pVideo->hidden->SrcBufferDesc.uiXResolution +
590 uiXResolution + swp.cx - 1) / swp.cx + 590 swp.cx - 1) / swp.cx + 2 * iXScaleError;
591 2 * iXScaleError;
592 iHeight = 591 iHeight =
593 ((rcl.yTop - 592 ((rcl.yTop -
594 rcl.yBottom) * 593 rcl.yBottom) *
595 pVideo->hidden->SrcBufferDesc. 594 pVideo->hidden->SrcBufferDesc.uiYResolution +
596 uiYResolution + swp.cy - 1) / swp.cy + 595 swp.cy - 1) / swp.cy + 2 * iYScaleError;
597 2 * iYScaleError;
598 596
599 iWidth += iXScaleError2; 597 iWidth += iXScaleError2;
600 iHeight += iYScaleError2; 598 iHeight += iYScaleError2;
601 599
602 if (iTop < 0) 600 if (iTop < 0)
604 if (iLeft < 0) 602 if (iLeft < 0)
605 iLeft = 0; 603 iLeft = 0;
606 if (iTop + iHeight > 604 if (iTop + iHeight >
607 pVideo->hidden->SrcBufferDesc.uiYResolution) 605 pVideo->hidden->SrcBufferDesc.uiYResolution)
608 iHeight = 606 iHeight =
609 pVideo->hidden->SrcBufferDesc. 607 pVideo->hidden->SrcBufferDesc.uiYResolution -
610 uiYResolution - iTop; 608 iTop;
611 if (iLeft + iWidth > 609 if (iLeft + iWidth >
612 pVideo->hidden->SrcBufferDesc.uiXResolution) 610 pVideo->hidden->SrcBufferDesc.uiXResolution)
613 iWidth = 611 iWidth =
614 pVideo->hidden->SrcBufferDesc. 612 pVideo->hidden->SrcBufferDesc.uiXResolution -
615 uiXResolution - iLeft; 613 iLeft;
616 614
617 #ifdef DEBUG_BUILD 615 #ifdef DEBUG_BUILD
618 printf 616 printf
619 ("WM_PAINT : BitBlt: %d %d -> %d %d (Buf %d x %d)\n", 617 ("WM_PAINT : BitBlt: %d %d -> %d %d (Buf %d x %d)\n",
620 iTop, iLeft, iWidth, iHeight, 618 iTop, iLeft, iWidth, iHeight,
621 pVideo->hidden->SrcBufferDesc. 619 pVideo->hidden->SrcBufferDesc.uiXResolution,
622 uiXResolution,
623 pVideo->hidden->SrcBufferDesc.uiYResolution); 620 pVideo->hidden->SrcBufferDesc.uiYResolution);
624 fflush(stdout); 621 fflush(stdout);
625 #endif 622 #endif
626 623
627 FSLIB_BITBLT(hwnd, 624 FSLIB_BITBLT(hwnd,
691 // the window is resizable and the source buffer size is the 688 // the window is resizable and the source buffer size is the
692 // same as the destination buffer size! 689 // same as the destination buffer size!
693 WinQueryWindowPos(hwnd, &swp); 690 WinQueryWindowPos(hwnd, &swp);
694 if ((!pVideo->hidden->pSDLSurface) || 691 if ((!pVideo->hidden->pSDLSurface) ||
695 ((pVideo->hidden->pSDLSurface) && 692 ((pVideo->hidden->pSDLSurface) &&
696 (pVideo->hidden->pSDLSurface-> 693 (pVideo->hidden->
697 flags & SDL_RESIZABLE) 694 pSDLSurface->flags & SDL_RESIZABLE)
698 && 695 &&
699 ((swp.cx != 696 ((swp.cx !=
700 pVideo->hidden->SrcBufferDesc. 697 pVideo->hidden->
701 uiXResolution) 698 SrcBufferDesc.uiXResolution)
702 || (swp.cy != 699 || (swp.cy !=
703 pVideo->hidden-> 700 pVideo->hidden->SrcBufferDesc.
704 SrcBufferDesc.uiYResolution)) 701 uiYResolution))
705 && (!FSLib_QueryFSMode(hwnd)))) { 702 && (!FSLib_QueryFSMode(hwnd)))) {
706 // Resizable surface and in resizing! 703 // Resizable surface and in resizing!
707 // So, don't blit now! 704 // So, don't blit now!
708 #ifdef DEBUG_BUILD 705 #ifdef DEBUG_BUILD
709 printf 706 printf
716 #ifdef DEBUG_BUILD 713 #ifdef DEBUG_BUILD
717 printf("WM_FSLIBNOTIFICATION : Blitting!\n"); 714 printf("WM_FSLIBNOTIFICATION : Blitting!\n");
718 fflush(stdout); 715 fflush(stdout);
719 #endif 716 #endif
720 FSLIB_BITBLT(hwnd, 717 FSLIB_BITBLT(hwnd,
721 pVideo->hidden-> 718 pVideo->hidden->pchSrcBuffer, 0,
722 pchSrcBuffer, 0,
723 0, 719 0,
724 pVideo->hidden-> 720 pVideo->hidden->
725 SrcBufferDesc. 721 SrcBufferDesc.uiXResolution,
726 uiXResolution, 722 pVideo->hidden->SrcBufferDesc.
727 pVideo->hidden-> 723 uiYResolution);
728 SrcBufferDesc.uiYResolution);
729 } 724 }
730 } 725 }
731 #ifdef DEBUG_BUILD 726 #ifdef DEBUG_BUILD
732 else 727 else
733 printf 728 printf
771 // Center the mouse to the middle of the window! 766 // Center the mouse to the middle of the window!
772 WinQueryWindowPos(pVideo->hidden->hwndClient, 767 WinQueryWindowPos(pVideo->hidden->hwndClient,
773 &swpClient); 768 &swpClient);
774 ptl.x = 0; 769 ptl.x = 0;
775 ptl.y = 0; 770 ptl.y = 0;
776 WinMapWindowPoints(pVideo->hidden-> 771 WinMapWindowPoints(pVideo->hidden->hwndClient,
777 hwndClient, HWND_DESKTOP, &ptl, 1); 772 HWND_DESKTOP, &ptl, 1);
778 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */ 773 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */
779 WinSetPointerPos(HWND_DESKTOP, 774 WinSetPointerPos(HWND_DESKTOP,
780 ptl.x + swpClient.cx / 2, 775 ptl.x + swpClient.cx / 2,
781 ptl.y + swpClient.cy / 2); 776 ptl.y + swpClient.cy / 2);
782 } 777 }
823 // Center the mouse to the middle of the window! 818 // Center the mouse to the middle of the window!
824 WinQueryWindowPos(pVideo->hidden->hwndClient, 819 WinQueryWindowPos(pVideo->hidden->hwndClient,
825 &swpClient); 820 &swpClient);
826 ptl.x = 0; 821 ptl.x = 0;
827 ptl.y = 0; 822 ptl.y = 0;
828 WinMapWindowPoints(pVideo->hidden-> 823 WinMapWindowPoints(pVideo->hidden->hwndClient,
829 hwndClient, HWND_DESKTOP, &ptl, 1); 824 HWND_DESKTOP, &ptl, 1);
830 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */ 825 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */
831 WinSetPointerPos(HWND_DESKTOP, 826 WinSetPointerPos(HWND_DESKTOP,
832 ptl.x + swpClient.cx / 2, 827 ptl.x + swpClient.cx / 2,
833 ptl.y + swpClient.cy / 2); 828 ptl.y + swpClient.cy / 2);
834 } 829 }
865 // Center the mouse to the middle of the window! 860 // Center the mouse to the middle of the window!
866 WinQueryWindowPos(pVideo->hidden->hwndClient, 861 WinQueryWindowPos(pVideo->hidden->hwndClient,
867 &swpClient); 862 &swpClient);
868 ptl.x = 0; 863 ptl.x = 0;
869 ptl.y = 0; 864 ptl.y = 0;
870 WinMapWindowPoints(pVideo->hidden-> 865 WinMapWindowPoints(pVideo->hidden->hwndClient,
871 hwndClient, HWND_DESKTOP, &ptl, 1); 866 HWND_DESKTOP, &ptl, 1);
872 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */ 867 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */
873 WinSetPointerPos(HWND_DESKTOP, 868 WinSetPointerPos(HWND_DESKTOP,
874 ptl.x + swpClient.cx / 2, 869 ptl.x + swpClient.cx / 2,
875 ptl.y + swpClient.cy / 2); 870 ptl.y + swpClient.cy / 2);
876 } 871 }
908 // Center the mouse to the middle of the window! 903 // Center the mouse to the middle of the window!
909 WinQueryWindowPos(pVideo->hidden->hwndClient, 904 WinQueryWindowPos(pVideo->hidden->hwndClient,
910 &swpClient); 905 &swpClient);
911 ptl.x = 0; 906 ptl.x = 0;
912 ptl.y = 0; 907 ptl.y = 0;
913 WinMapWindowPoints(pVideo->hidden-> 908 WinMapWindowPoints(pVideo->hidden->hwndClient,
914 hwndClient, HWND_DESKTOP, &ptl, 1); 909 HWND_DESKTOP, &ptl, 1);
915 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */ 910 pVideo->hidden->iSkipWMMOUSEMOVE++; /* Don't take next WM_MOUSEMOVE into account! */
916 WinSetPointerPos(HWND_DESKTOP, 911 WinSetPointerPos(HWND_DESKTOP,
917 ptl.x + swpClient.cx / 2, 912 ptl.x + swpClient.cx / 2,
918 ptl.y + swpClient.cy / 2); 913 ptl.y + swpClient.cy / 2);
919 } 914 }
1376 memnot(Uint8 * dst, Uint8 * src, int len) 1371 memnot(Uint8 * dst, Uint8 * src, int len)
1377 { 1372 {
1378 while (len-- > 0) 1373 while (len-- > 0)
1379 *dst++ = ~*src++; 1374 *dst++ = ~*src++;
1380 } 1375 }
1376
1381 static void 1377 static void
1382 memxor(Uint8 * dst, Uint8 * src1, Uint8 * src2, int len) 1378 memxor(Uint8 * dst, Uint8 * src1, Uint8 * src2, int len)
1383 { 1379 {
1384 while (len-- > 0) 1380 while (len-- > 0)
1385 *dst++ = (*src1++) ^ (*src2++); 1381 *dst++ = (*src1++) ^ (*src2++);
1633 static int 1629 static int
1634 os2fslib_AllocHWSurface(_THIS, SDL_Surface * surface) 1630 os2fslib_AllocHWSurface(_THIS, SDL_Surface * surface)
1635 { 1631 {
1636 return (-1); 1632 return (-1);
1637 } 1633 }
1634
1638 static void 1635 static void
1639 os2fslib_FreeHWSurface(_THIS, SDL_Surface * surface) 1636 os2fslib_FreeHWSurface(_THIS, SDL_Surface * surface)
1640 { 1637 {
1641 return; 1638 return;
1642 } 1639 }
2503 2500
2504 // Create new software surface! 2501 // Create new software surface!
2505 pResult = SDL_CreateRGBSurface(SDL_SWSURFACE, 2502 pResult = SDL_CreateRGBSurface(SDL_SWSURFACE,
2506 pModeInfoFound->uiXResolution, 2503 pModeInfoFound->uiXResolution,
2507 pModeInfoFound->uiYResolution, 2504 pModeInfoFound->uiYResolution,
2508 pModeInfoFound->uiBPP, 2505 pModeInfoFound->uiBPP, ((unsigned int)
2509 ((unsigned int) pModeInfoFound-> 2506 pModeInfoFound->
2510 PixelFormat. 2507 PixelFormat.
2511 ucRedMask) << pModeInfoFound-> 2508 ucRedMask)
2512 PixelFormat.ucRedPosition, 2509 << pModeInfoFound->PixelFormat.
2513 ((unsigned int) pModeInfoFound-> 2510 ucRedPosition, ((unsigned int)
2514 PixelFormat. 2511 pModeInfoFound->
2515 ucGreenMask) << pModeInfoFound-> 2512 PixelFormat.
2516 PixelFormat.ucGreenPosition, 2513 ucGreenMask)
2517 ((unsigned int) pModeInfoFound-> 2514 << pModeInfoFound->PixelFormat.
2518 PixelFormat. 2515 ucGreenPosition, ((unsigned int)
2519 ucBlueMask) << pModeInfoFound-> 2516 pModeInfoFound->
2520 PixelFormat.ucBluePosition, 2517 PixelFormat.
2521 ((unsigned int) pModeInfoFound-> 2518 ucBlueMask)
2522 PixelFormat. 2519 << pModeInfoFound->PixelFormat.
2523 ucAlphaMask) << pModeInfoFound-> 2520 ucBluePosition, ((unsigned int)
2524 PixelFormat.ucAlphaPosition); 2521 pModeInfoFound->
2522 PixelFormat.
2523 ucAlphaMask)
2524 << pModeInfoFound->PixelFormat.
2525 ucAlphaPosition);
2525 2526
2526 if (pResult == NULL) { 2527 if (pResult == NULL) {
2527 DosReleaseMutexSem(_this->hidden->hmtxUseSrcBuffer); 2528 DosReleaseMutexSem(_this->hidden->hmtxUseSrcBuffer);
2528 SDL_OutOfMemory(); 2529 SDL_OutOfMemory();
2529 return NULL; 2530 return NULL;
2533 fflush(stdout); 2534 fflush(stdout);
2534 #endif 2535 #endif
2535 2536
2536 // Adjust pixel format mask! 2537 // Adjust pixel format mask!
2537 pResult->format->Rmask = 2538 pResult->format->Rmask =
2538 ((unsigned int) pModeInfoFound->PixelFormat. 2539 ((unsigned int) pModeInfoFound->
2539 ucRedMask) << pModeInfoFound->PixelFormat.ucRedPosition; 2540 PixelFormat.ucRedMask) << pModeInfoFound->PixelFormat.
2541 ucRedPosition;
2540 pResult->format->Rshift = pModeInfoFound->PixelFormat.ucRedPosition; 2542 pResult->format->Rshift = pModeInfoFound->PixelFormat.ucRedPosition;
2541 pResult->format->Rloss = pModeInfoFound->PixelFormat.ucRedAdjust; 2543 pResult->format->Rloss = pModeInfoFound->PixelFormat.ucRedAdjust;
2542 pResult->format->Gmask = 2544 pResult->format->Gmask =
2543 ((unsigned int) pModeInfoFound->PixelFormat. 2545 ((unsigned int) pModeInfoFound->
2544 ucGreenMask) << pModeInfoFound->PixelFormat.ucGreenPosition; 2546 PixelFormat.ucGreenMask) << pModeInfoFound->PixelFormat.
2547 ucGreenPosition;
2545 pResult->format->Gshift = pModeInfoFound->PixelFormat.ucGreenPosition; 2548 pResult->format->Gshift = pModeInfoFound->PixelFormat.ucGreenPosition;
2546 pResult->format->Gloss = pModeInfoFound->PixelFormat.ucGreenAdjust; 2549 pResult->format->Gloss = pModeInfoFound->PixelFormat.ucGreenAdjust;
2547 pResult->format->Bmask = 2550 pResult->format->Bmask =
2548 ((unsigned int) pModeInfoFound->PixelFormat. 2551 ((unsigned int) pModeInfoFound->
2549 ucBlueMask) << pModeInfoFound->PixelFormat.ucBluePosition; 2552 PixelFormat.ucBlueMask) << pModeInfoFound->PixelFormat.
2553 ucBluePosition;
2550 pResult->format->Bshift = pModeInfoFound->PixelFormat.ucBluePosition; 2554 pResult->format->Bshift = pModeInfoFound->PixelFormat.ucBluePosition;
2551 pResult->format->Bloss = pModeInfoFound->PixelFormat.ucBlueAdjust; 2555 pResult->format->Bloss = pModeInfoFound->PixelFormat.ucBlueAdjust;
2552 pResult->format->Amask = 2556 pResult->format->Amask =
2553 ((unsigned int) pModeInfoFound->PixelFormat. 2557 ((unsigned int) pModeInfoFound->
2554 ucAlphaMask) << pModeInfoFound->PixelFormat.ucAlphaPosition; 2558 PixelFormat.ucAlphaMask) << pModeInfoFound->PixelFormat.
2559 ucAlphaPosition;
2555 pResult->format->Ashift = pModeInfoFound->PixelFormat.ucAlphaPosition; 2560 pResult->format->Ashift = pModeInfoFound->PixelFormat.ucAlphaPosition;
2556 pResult->format->Aloss = pModeInfoFound->PixelFormat.ucAlphaAdjust; 2561 pResult->format->Aloss = pModeInfoFound->PixelFormat.ucAlphaAdjust;
2557 2562
2558 #ifdef REPORT_EMPTY_ALPHA_MASK 2563 #ifdef REPORT_EMPTY_ALPHA_MASK
2559 pResult->format->Amask = 2564 pResult->format->Amask =
2736 iPlace = -1; 2741 iPlace = -1;
2737 iNumOfSlots = 1; // Count the last NULL too! 2742 iNumOfSlots = 1; // Count the last NULL too!
2738 for (i = 0; _this->hidden->pListModesResult[i]; i++) { 2743 for (i = 0; _this->hidden->pListModesResult[i]; i++) {
2739 iNumOfSlots++; 2744 iNumOfSlots++;
2740 if (iPlace == -1) { 2745 if (iPlace == -1) {
2741 if ((_this->hidden-> 2746 if ((_this->hidden->pListModesResult[i]->w *
2742 pListModesResult[i]->w * 2747 _this->hidden->pListModesResult[i]->h) <
2743 _this->hidden->
2744 pListModesResult[i]->h) <
2745 (pRect->w * pRect->h)) { 2748 (pRect->w * pRect->h)) {
2746 iPlace = i; 2749 iPlace = i;
2747 } 2750 }
2748 } 2751 }
2749 } 2752 }
2752 2755
2753 #ifdef DEBUG_BUILD 2756 #ifdef DEBUG_BUILD
2754 // printf("!!! From %d slots, it will be at %d\n", iNumOfSlots, iPlace); 2757 // printf("!!! From %d slots, it will be at %d\n", iNumOfSlots, iPlace);
2755 #endif 2758 #endif
2756 2759
2757 pNewList = 2760 pNewList = (SDL_Rect **)
2758 (SDL_Rect **) SDL_realloc(_this-> 2761 SDL_realloc(_this->hidden->pListModesResult,
2759 hidden-> 2762 (iNumOfSlots +
2760 pListModesResult, 2763 1) * sizeof(SDL_Rect *));
2761 (iNumOfSlots
2762 +
2763 1) *
2764 sizeof(SDL_Rect *));
2765 if (pNewList) { 2764 if (pNewList) {
2766 for (i = iNumOfSlots; i > iPlace; i--) 2765 for (i = iNumOfSlots; i > iPlace; i--)
2767 pNewList[i] = pNewList[i - 1]; 2766 pNewList[i] = pNewList[i - 1];
2768 pNewList[iPlace] = pRect; 2767 pNewList[iPlace] = pRect;
2769 _this->hidden->pListModesResult = pNewList; 2768 _this->hidden->pListModesResult = pNewList;
2814 /* Determine the screen depth */ 2813 /* Determine the screen depth */
2815 vformat->BitsPerPixel = pDesktopMode->uiBPP; 2814 vformat->BitsPerPixel = pDesktopMode->uiBPP;
2816 vformat->BytesPerPixel = (vformat->BitsPerPixel + 7) / 8; 2815 vformat->BytesPerPixel = (vformat->BitsPerPixel + 7) / 8;
2817 2816
2818 vformat->Rmask = 2817 vformat->Rmask =
2819 ((unsigned int) pDesktopMode->PixelFormat.ucRedMask) << pDesktopMode-> 2818 ((unsigned int) pDesktopMode->PixelFormat.
2820 PixelFormat.ucRedPosition; 2819 ucRedMask) << pDesktopMode->PixelFormat.ucRedPosition;
2821 vformat->Rshift = pDesktopMode->PixelFormat.ucRedPosition; 2820 vformat->Rshift = pDesktopMode->PixelFormat.ucRedPosition;
2822 vformat->Rloss = pDesktopMode->PixelFormat.ucRedAdjust; 2821 vformat->Rloss = pDesktopMode->PixelFormat.ucRedAdjust;
2823 vformat->Gmask = 2822 vformat->Gmask =
2824 ((unsigned int) pDesktopMode->PixelFormat. 2823 ((unsigned int) pDesktopMode->
2825 ucGreenMask) << pDesktopMode->PixelFormat.ucGreenPosition; 2824 PixelFormat.ucGreenMask) << pDesktopMode->PixelFormat.
2825 ucGreenPosition;
2826 vformat->Gshift = pDesktopMode->PixelFormat.ucGreenPosition; 2826 vformat->Gshift = pDesktopMode->PixelFormat.ucGreenPosition;
2827 vformat->Gloss = pDesktopMode->PixelFormat.ucGreenAdjust; 2827 vformat->Gloss = pDesktopMode->PixelFormat.ucGreenAdjust;
2828 vformat->Bmask = 2828 vformat->Bmask =
2829 ((unsigned int) pDesktopMode->PixelFormat. 2829 ((unsigned int) pDesktopMode->
2830 ucBlueMask) << pDesktopMode->PixelFormat.ucBluePosition; 2830 PixelFormat.ucBlueMask) << pDesktopMode->PixelFormat.ucBluePosition;
2831 vformat->Bshift = pDesktopMode->PixelFormat.ucBluePosition; 2831 vformat->Bshift = pDesktopMode->PixelFormat.ucBluePosition;
2832 vformat->Bloss = pDesktopMode->PixelFormat.ucBlueAdjust; 2832 vformat->Bloss = pDesktopMode->PixelFormat.ucBlueAdjust;
2833 vformat->Amask = 2833 vformat->Amask =
2834 ((unsigned int) pDesktopMode->PixelFormat. 2834 ((unsigned int) pDesktopMode->
2835 ucAlphaMask) << pDesktopMode->PixelFormat.ucAlphaPosition; 2835 PixelFormat.ucAlphaMask) << pDesktopMode->PixelFormat.
2836 ucAlphaPosition;
2836 vformat->Ashift = pDesktopMode->PixelFormat.ucAlphaPosition; 2837 vformat->Ashift = pDesktopMode->PixelFormat.ucAlphaPosition;
2837 vformat->Aloss = pDesktopMode->PixelFormat.ucAlphaAdjust; 2838 vformat->Aloss = pDesktopMode->PixelFormat.ucAlphaAdjust;
2838 2839
2839 #ifdef REPORT_EMPTY_ALPHA_MASK 2840 #ifdef REPORT_EMPTY_ALPHA_MASK
2840 vformat->Amask = vformat->Ashift = vformat->Aloss = 0; 2841 vformat->Amask = vformat->Ashift = vformat->Aloss = 0;
2935 SDL_memcpy(&(_this->hidden->SrcBufferDesc), 2936 SDL_memcpy(&(_this->hidden->SrcBufferDesc),
2936 _this->hidden->pAvailableFSLibVideoModes, 2937 _this->hidden->pAvailableFSLibVideoModes,
2937 sizeof(_this->hidden->SrcBufferDesc)); 2938 sizeof(_this->hidden->SrcBufferDesc));
2938 // Allocate new video buffer! 2939 // Allocate new video buffer!
2939 _this->hidden->pchSrcBuffer = 2940 _this->hidden->pchSrcBuffer =
2940 (char *) SDL_malloc(_this->hidden->pAvailableFSLibVideoModes-> 2941 (char *) SDL_malloc(_this->hidden->
2941 uiScanLineSize * 2942 pAvailableFSLibVideoModes->uiScanLineSize *
2942 _this->hidden->pAvailableFSLibVideoModes-> 2943 _this->hidden->
2943 uiYResolution); 2944 pAvailableFSLibVideoModes->uiYResolution);
2944 if (!_this->hidden->pchSrcBuffer) { 2945 if (!_this->hidden->pchSrcBuffer) {
2945 #ifdef DEBUG_BUILD 2946 #ifdef DEBUG_BUILD
2946 printf 2947 printf
2947 ("[os2fslib_VideoInit] : Yikes, not enough memory for new video buffer!\n"); 2948 ("[os2fslib_VideoInit] : Yikes, not enough memory for new video buffer!\n");
2948 fflush(stdout); 2949 fflush(stdout);