Lines Matching +full:composite +full:- +full:in
6 * Copyright (c) 2002-2003 Torrey T. Lyons. All Rights Reserved.
11 * to deal in the Software without restriction, including without limitation
16 * The above copyright notice and this permission notice shall be included in
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 * DEALINGS IN THE SOFTWARE.
27 * Except as contained in this notice, the name(s) of the above copyright
28 * holders shall not be used in advertising or otherwise to promote the sale,
29 * use or other dealings in this Software without prior written authorization.
33 #include <dix-config.h>
54 /* In milliseconds */
85 pPix = (*pScreen->GetScreenPixmap) (pScreen); in RootlessUpdateScreenPixmap()
87 pPix = (*pScreen->CreatePixmap) (pScreen, 0, 0, pScreen->rootDepth, 0); in RootlessUpdateScreenPixmap()
88 (*pScreen->SetScreenPixmap) (pPix); in RootlessUpdateScreenPixmap()
91 rowbytes = PixmapBytePad(pScreen->width, pScreen->rootDepth); in RootlessUpdateScreenPixmap()
93 if (s->pixmap_data_size < rowbytes) { in RootlessUpdateScreenPixmap()
94 free(s->pixmap_data); in RootlessUpdateScreenPixmap()
96 s->pixmap_data_size = rowbytes; in RootlessUpdateScreenPixmap()
97 s->pixmap_data = malloc(s->pixmap_data_size); in RootlessUpdateScreenPixmap()
98 if (s->pixmap_data == NULL) in RootlessUpdateScreenPixmap()
101 memset(s->pixmap_data, 0xFF, s->pixmap_data_size); in RootlessUpdateScreenPixmap()
103 pScreen->ModifyPixmapHeader(pPix, pScreen->width, pScreen->height, in RootlessUpdateScreenPixmap()
104 pScreen->rootDepth, in RootlessUpdateScreenPixmap()
105 BitsPerPixel(pScreen->rootDepth), in RootlessUpdateScreenPixmap()
106 0, s->pixmap_data); in RootlessUpdateScreenPixmap()
109 pPix->devKind = 0; in RootlessUpdateScreenPixmap()
125 if (pScreen->CreateScreenResources != NULL) in RootlessCreateScreenResources()
126 ret = (*pScreen->CreateScreenResources) (pScreen); in RootlessCreateScreenResources()
148 pScreen->CloseScreen = s->CloseScreen; in RootlessCloseScreen()
150 if (s->pixmap_data != NULL) { in RootlessCloseScreen()
151 free(s->pixmap_data); in RootlessCloseScreen()
152 s->pixmap_data = NULL; in RootlessCloseScreen()
153 s->pixmap_data_size = 0; in RootlessCloseScreen()
157 return pScreen->CloseScreen(pScreen); in RootlessCloseScreen()
164 ScreenPtr pScreen = pDrawable->pScreen; in RootlessGetImage()
168 if (pDrawable->type == DRAWABLE_WINDOW) { in RootlessGetImage()
184 /* Clip to top-level window bounds. */ in RootlessGetImage()
189 x0 = pDrawable->x + sx; in RootlessGetImage()
190 y0 = pDrawable->y + sy; in RootlessGetImage()
194 x0 = max(x0, winRec->x); in RootlessGetImage()
195 y0 = max(y0, winRec->y); in RootlessGetImage()
196 x1 = min(x1, winRec->x + winRec->width); in RootlessGetImage()
197 y1 = min(y1, winRec->y + winRec->height); in RootlessGetImage()
199 sx = x0 - pDrawable->x; in RootlessGetImage()
200 sy = y0 - pDrawable->y; in RootlessGetImage()
201 w = x1 - x0; in RootlessGetImage()
202 h = y1 - y0; in RootlessGetImage()
208 pScreen->GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); in RootlessGetImage()
225 SCREEN_UNWRAP(pDrawable->pScreen, SourceValidate); in RootlessSourceValidate()
226 if (pDrawable->type == DRAWABLE_WINDOW) { in RootlessSourceValidate()
231 if (pDrawable->pScreen->SourceValidate) { in RootlessSourceValidate()
232 pDrawable->pScreen->SourceValidate(pDrawable, x, y, w, h, in RootlessSourceValidate()
235 SCREEN_WRAP(pDrawable->pScreen, SourceValidate); in RootlessSourceValidate()
243 ScreenPtr pScreen = pDst->pDrawable->pScreen; in RootlessComposite()
248 maskWin = (pMask->pDrawable && in RootlessComposite()
249 pMask->pDrawable->type == in RootlessComposite()
250 DRAWABLE_WINDOW) ? (WindowPtr) pMask->pDrawable : NULL; in RootlessComposite()
252 srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ? in RootlessComposite()
253 (WindowPtr) pSrc->pDrawable : NULL; in RootlessComposite()
254 dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ? in RootlessComposite()
255 (WindowPtr) pDst->pDrawable : NULL; in RootlessComposite()
257 // SCREEN_UNWRAP(ps, Composite); in RootlessComposite()
258 ps->Composite = SCREENREC(pScreen)->Composite; in RootlessComposite()
267 ps->Composite(op, pSrc, pMask, pDst, in RootlessComposite()
274 ps->Composite = RootlessComposite; in RootlessComposite()
275 // SCREEN_WRAP(ps, Composite); in RootlessComposite()
283 ScreenPtr pScreen = pDst->pDrawable->pScreen; in RootlessGlyphs()
290 srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ? in RootlessGlyphs()
291 (WindowPtr) pSrc->pDrawable : NULL; in RootlessGlyphs()
292 dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ? in RootlessGlyphs()
293 (WindowPtr) pDst->pDrawable : NULL; in RootlessGlyphs()
301 ps->Glyphs = SCREENREC(pScreen)->Glyphs; in RootlessGlyphs()
302 ps->Glyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, glyphs); in RootlessGlyphs()
303 ps->Glyphs = RootlessGlyphs; in RootlessGlyphs()
310 while (nlist--) { in RootlessGlyphs()
311 x += list->xOff; in RootlessGlyphs()
312 y += list->yOff; in RootlessGlyphs()
313 n = list->len; in RootlessGlyphs()
316 inefficient. So compute the union of all glyphs in a list in RootlessGlyphs()
324 box.x1 = x - glyph->info.x; in RootlessGlyphs()
325 box.y1 = y - glyph->info.y; in RootlessGlyphs()
326 box.x2 = box.x1 + glyph->info.width; in RootlessGlyphs()
327 box.y2 = box.y1 + glyph->info.height; in RootlessGlyphs()
329 x += glyph->info.xOff; in RootlessGlyphs()
330 y += glyph->info.yOff; in RootlessGlyphs()
332 while (--n > 0) { in RootlessGlyphs()
337 x1 = x - glyph->info.x; in RootlessGlyphs()
338 y1 = y - glyph->info.y; in RootlessGlyphs()
339 x2 = x1 + glyph->info.width; in RootlessGlyphs()
340 y2 = y1 + glyph->info.height; in RootlessGlyphs()
347 x += glyph->info.xOff; in RootlessGlyphs()
348 y += glyph->info.yOff; in RootlessGlyphs()
360 * ValidateTree is modified in two ways:
361 * - top-level windows don't clip each other
362 * - windows aren't clipped against root.
370 ScreenPtr pScreen = pParent->drawable.pScreen; in RootlessValidateTree()
382 result = pScreen->ValidateTree(pParent, pChild, kind); in RootlessValidateTree()
395 * top-level windows.
403 ScreenPtr pScreen = pWin->drawable.pScreen; in RootlessMarkOverlappedWindows()
410 // root - mark nothing in RootlessMarkOverlappedWindows()
415 // not top-level window - mark normally in RootlessMarkOverlappedWindows()
416 result = pScreen->MarkOverlappedWindows(pWin, pFirst, ppLayerWin); in RootlessMarkOverlappedWindows()
419 //top-level window - mark children ONLY - NO overlaps with sibs (?) in RootlessMarkOverlappedWindows()
424 MarkWindowProcPtr MarkWindow = pScreen->MarkWindow; in RootlessMarkOverlappedWindows()
438 if (pChild->viewable) { in RootlessMarkOverlappedWindows()
439 if (RegionBroken(&pChild->winSize)) in RootlessMarkOverlappedWindows()
441 if (RegionBroken(&pChild->borderSize)) in RootlessMarkOverlappedWindows()
444 if (pChild->firstChild) { in RootlessMarkOverlappedWindows()
445 pChild = pChild->firstChild; in RootlessMarkOverlappedWindows()
449 while (!pChild->nextSib && (pChild != pWin)) in RootlessMarkOverlappedWindows()
450 pChild = pChild->parent; in RootlessMarkOverlappedWindows()
453 pChild = pChild->nextSib; in RootlessMarkOverlappedWindows()
458 (*MarkWindow) (pWin->parent); in RootlessMarkOverlappedWindows()
473 if (!pWin->realized) in expose_1()
476 pWin->drawable.pScreen->PaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND); in expose_1()
478 /* FIXME: comments in windowstr.h indicate that borderClip doesn't in expose_1()
482 miSendExposures(pWin, &pWin->borderClip, in expose_1()
483 pWin->drawable.x, pWin->drawable.y); in expose_1()
485 for (pChild = pWin->firstChild; pChild != NULL; pChild = pChild->nextSib) in expose_1()
492 expose_1(pScreen->root); in RootlessScreenExpose()
500 return s->colormap; in RootlessGetColormap()
506 ScreenPtr pScreen = pMap->pScreen; in RootlessInstallColormap()
511 if (s->colormap != pMap) { in RootlessInstallColormap()
512 s->colormap = pMap; in RootlessInstallColormap()
513 s->colormap_changed = TRUE; in RootlessInstallColormap()
517 pScreen->InstallColormap(pMap); in RootlessInstallColormap()
525 ScreenPtr pScreen = pMap->pScreen; in RootlessUninstallColormap()
530 if (s->colormap == pMap) in RootlessUninstallColormap()
531 s->colormap = NULL; in RootlessUninstallColormap()
533 pScreen->UninstallColormap(pMap); in RootlessUninstallColormap()
541 ScreenPtr pScreen = pMap->pScreen; in RootlessStoreColors()
546 if (s->colormap == pMap && ndef > 0) { in RootlessStoreColors()
547 s->colormap_changed = TRUE; in RootlessStoreColors()
551 pScreen->StoreColors(pMap, ndef, pdef); in RootlessStoreColors()
561 if (!screenRec->redisplay_queued) { in RootlessRedisplayCallback()
564 screenRec->redisplay_timer_set = FALSE; in RootlessRedisplayCallback()
568 screenRec->redisplay_queued = FALSE; in RootlessRedisplayCallback()
571 screenRec->redisplay_expired = TRUE; in RootlessRedisplayCallback()
589 screenRec->redisplay_queued = TRUE; in RootlessQueueRedisplay()
591 if (screenRec->redisplay_timer_set) in RootlessQueueRedisplay()
594 screenRec->redisplay_timer = TimerSet(screenRec->redisplay_timer, in RootlessQueueRedisplay()
597 screenRec->redisplay_timer_set = TRUE; in RootlessQueueRedisplay()
611 if (screenRec->redisplay_expired) { in RootlessBlockHandler()
612 screenRec->redisplay_expired = FALSE; in RootlessBlockHandler()
645 s->pixmap_data = NULL; in RootlessAllocatePrivates()
646 s->pixmap_data_size = 0; in RootlessAllocatePrivates()
648 s->redisplay_timer = NULL; in RootlessAllocatePrivates()
649 s->redisplay_timer_set = FALSE; in RootlessAllocatePrivates()
660 if (pScreen->a) { \ in RootlessWrap()
661 s->a = pScreen->a; \ in RootlessWrap()
664 s->a = NULL; \ in RootlessWrap()
666 pScreen->a = Rootless##a in RootlessWrap()
695 // Composite and Glyphs don't use normal screen wrapping in RootlessWrap()
698 s->Composite = ps->Composite; in RootlessWrap()
699 ps->Composite = RootlessComposite; in RootlessWrap()
700 s->Glyphs = ps->Glyphs; in RootlessWrap()
701 ps->Glyphs = RootlessGlyphs; in RootlessWrap()
724 s->imp = procs; in RootlessInit()
725 s->colormap = NULL; in RootlessInit()
726 s->redisplay_expired = FALSE; in RootlessInit()