xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

winmisc.c (2675B)


      1 /*
      2  *Copyright (C) 2001-2004 Harold L Hunt II All Rights Reserved.
      3  *
      4  *Permission is hereby granted, free of charge, to any person obtaining
      5  * a copy of this software and associated documentation files (the
      6  *"Software"), to deal in the Software without restriction, including
      7  *without limitation the rights to use, copy, modify, merge, publish,
      8  *distribute, sublicense, and/or sell copies of the Software, and to
      9  *permit persons to whom the Software is furnished to do so, subject to
     10  *the following conditions:
     11  *
     12  *The above copyright notice and this permission notice shall be
     13  *included in all copies or substantial portions of the Software.
     14  *
     15  *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     16  *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     17  *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     18  *NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE FOR
     19  *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
     20  *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
     21  *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     22  *
     23  *Except as contained in this notice, the name of Harold L Hunt II
     24  *shall not be used in advertising or otherwise to promote the sale, use
     25  *or other dealings in this Software without prior written authorization
     26  *from Harold L Hunt II.
     27  *
     28  * Authors:	Harold L Hunt II
     29  */
     30 
     31 #ifdef HAVE_XWIN_CONFIG_H
     32 #include <xwin-config.h>
     33 #endif
     34 #include "win.h"
     35 
     36 /*
     37  * Count the number of one bits in a color mask.
     38  */
     39 
     40 CARD8
     41 winCountBits(DWORD dw)
     42 {
     43     DWORD dwBits = 0;
     44 
     45     while (dw) {
     46         dwBits += (dw & 1);
     47         dw >>= 1;
     48     }
     49 
     50     return dwBits;
     51 }
     52 
     53 /*
     54  * Modify the screen pixmap to point to the new framebuffer address
     55  */
     56 
     57 Bool
     58 winUpdateFBPointer(ScreenPtr pScreen, void *pbits)
     59 {
     60     winScreenPriv(pScreen);
     61     winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
     62 
     63     /* Location of shadow framebuffer has changed */
     64     pScreenInfo->pfb = pbits;
     65 
     66     /* Update the screen pixmap */
     67     if (!(*pScreen->ModifyPixmapHeader) (pScreen->devPrivate,
     68                                          pScreen->width,
     69                                          pScreen->height,
     70                                          pScreen->rootDepth,
     71                                          BitsPerPixel(pScreen->rootDepth),
     72                                          PixmapBytePad(pScreenInfo->dwStride,
     73                                                        pScreenInfo->dwBPP),
     74                                          pScreenInfo->pfb)) {
     75         FatalError("winUpdateFramebufferPointer - Failed modifying "
     76                    "screen pixmap\n");
     77     }
     78 
     79     return TRUE;
     80 }