这篇教程C++ DMX_GET_PICT_PRIV函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中DMX_GET_PICT_PRIV函数的典型用法代码示例。如果您正苦于以下问题:C++ DMX_GET_PICT_PRIV函数的具体用法?C++ DMX_GET_PICT_PRIV怎么用?C++ DMX_GET_PICT_PRIV使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了DMX_GET_PICT_PRIV函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: dmxDestroyPictureClip/** Destroy the picture's list of clip rectangles. */voiddmxDestroyPictureClip(PicturePtr pPicture){ ScreenPtr pScreen = pPicture->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); DMX_UNWRAP(DestroyPictureClip, dmxScreen, ps);#if 1 if (ps->DestroyPictureClip) ps->DestroyPictureClip(pPicture);#endif /* Destroy picture clip rects on back-end server */ if (pPictPriv->pict) { XRenderSetPictureClipRectangles(dmxScreen->beDisplay, pPictPriv->pict, 0, 0, NULL, 0); dmxSync(dmxScreen, FALSE); } else { /* FIXME: Handle destroying clip region when offscreen */ } DMX_WRAP(DestroyPictureClip, dmxDestroyPictureClip, dmxScreen, ps);}
开发者ID:Agnesa,项目名称:xserver,代码行数:27,
示例2: dmxCompositeRects/** Fill a rectangle on the appropriate screen by combining the color * with the dest picture in the area specified by the list of * rectangles. For a complete description see the protocol document of * the RENDER library. */voiddmxCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor * color, int nRect, xRectangle *rects){ ScreenPtr pScreen = pDst->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pDst); DMX_UNWRAP(CompositeRects, dmxScreen, ps);#if 0 if (ps->CompositeRects) ps->CompositeRects(op, pDst, color, nRect, rects);#endif /* CompositeRects on back-end server */ if (pPictPriv->pict) { XRenderFillRectangles(dmxScreen->beDisplay, op, pPictPriv->pict, (XRenderColor *) color, (XRectangle *) rects, nRect); dmxSync(dmxScreen, FALSE); } DMX_WRAP(CompositeRects, dmxCompositeRects, dmxScreen, ps);}
开发者ID:Agnesa,项目名称:xserver,代码行数:32,
示例3: dmxProcRenderSetPictureFilter/** Set the picture filter on each screen. */static intdmxProcRenderSetPictureFilter(ClientPtr client){ DMXScreenInfo *dmxScreen; PicturePtr pPicture; dmxPictPrivPtr pPictPriv; char *filter; XFixed *params; int nparams; REQUEST(xRenderSetPictureFilterReq); REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq); VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess); /* For the following to work with PanoramiX, it assumes that Render * wraps the ProcRenderVector after dmxRenderInit has been called. */ dmxScreen = &dmxScreens[pPicture->pDrawable->pScreen->myNum]; pPictPriv = DMX_GET_PICT_PRIV(pPicture); if (pPictPriv->pict) { filter = (char *) (stuff + 1); params = (XFixed *) (filter + ((stuff->nbytes + 3) & ~3)); nparams = ((XFixed *) stuff + client->req_len) - params; XRenderSetPictureFilter(dmxScreen->beDisplay, pPictPriv->pict, filter, params, nparams); dmxSync(dmxScreen, FALSE); } return dmxSaveRenderVector[stuff->renderReqType] (client);}
开发者ID:Agnesa,项目名称:xserver,代码行数:34,
示例4: dmxChangePictureClip/** Change the picture's list of clip rectangles. */int dmxChangePictureClip(PicturePtr pPicture, int clipType, pointer value, int n){ ScreenPtr pScreen = pPicture->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); DMX_UNWRAP(ChangePictureClip, dmxScreen, ps);#if 1 if (ps->ChangePictureClip) ps->ChangePictureClip(pPicture, clipType, value, n);#endif /* Change picture clip rects on back-end server */ if (pPictPriv->pict) { /* The clip has already been changed into a region by the mi * routine called above. */ if (pPicture->clientClip) { RegionPtr pClip = pPicture->clientClip; BoxPtr pBox = REGION_RECTS(pClip); int nBox = REGION_NUM_RECTS(pClip); XRectangle *pRects; XRectangle *pRect; int nRects; nRects = nBox; pRects = pRect = xalloc(nRects * sizeof(*pRect)); while (nBox--) { pRect->x = pBox->x1; pRect->y = pBox->y1; pRect->width = pBox->x2 - pBox->x1; pRect->height = pBox->y2 - pBox->y1; pBox++; pRect++; } XRenderSetPictureClipRectangles(dmxScreen->beDisplay, pPictPriv->pict, 0, 0, pRects, nRects); xfree(pRects); } else { XRenderSetPictureClipRectangles(dmxScreen->beDisplay, pPictPriv->pict, 0, 0, NULL, 0); } dmxSync(dmxScreen, FALSE); } else { /* FIXME: Handle saving clip region when offscreen */ } DMX_WRAP(ChangePictureClip, dmxChangePictureClip, dmxScreen, ps); return Success;}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:60,
示例5: dmxComposite/** Composite a picture on the appropriate screen by combining the * specified rectangle of the transformed src and mask operands with * the specified rectangle of the dst using op as the compositing * operator. For a complete description see the protocol document of * the RENDER library. */void dmxComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height){ ScreenPtr pScreen = pDst->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pSrcPriv = DMX_GET_PICT_PRIV(pSrc); dmxPictPrivPtr pMaskPriv = NULL; dmxPictPrivPtr pDstPriv = DMX_GET_PICT_PRIV(pDst); if (pMask) pMaskPriv = DMX_GET_PICT_PRIV(pMask); DMX_UNWRAP(Composite, dmxScreen, ps);#if 0 if (ps->Composite) ps->Composite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, yDst, width, height);#endif /* Composite on back-end server */ if (pSrcPriv->pict && pDstPriv->pict && ((pMaskPriv && pMaskPriv->pict) || !pMaskPriv)) { XRenderComposite(dmxScreen->beDisplay, op, pSrcPriv->pict, pMaskPriv ? pMaskPriv->pict : None, pDstPriv->pict, xSrc, ySrc, xMask, yMask, xDst, yDst, width, height); dmxSync(dmxScreen, FALSE); } DMX_WRAP(Composite, dmxComposite, dmxScreen, ps);}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:47,
示例6: dmxBECreatePicture/** Create /a pPicture on the backend. */int dmxBECreatePicture(PicturePtr pPicture){ dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); /* Create picutre on BE */ pPictPriv->pict = dmxDoCreatePicture(pPicture); /* Flush changes to the backend server */ dmxValidatePicture(pPicture, (1 << (CPLastBit+1)) - 1); return Success;}
开发者ID:fenghaitao,项目名称:xserver-with-gl-accelerated-xephyr,代码行数:13,
示例7: dmxTriFan/** Composite a triangle fan on the appropriate screen. For a complete * description see the protocol document of the RENDER library. */void dmxTriFan(CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int npoint, xPointFixed *points){ ScreenPtr pScreen = pDst->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pSrcPriv = DMX_GET_PICT_PRIV(pSrc); dmxPictPrivPtr pDstPriv = DMX_GET_PICT_PRIV(pDst); DMX_UNWRAP(TriFan, dmxScreen, ps);#if 0 if (ps->TriFan) ps->TriFan(op, pSrc, pDst, maskFormat, xSrc, ySrc, npoint, *points);#endif /* Draw trapezoids on back-end server */ if (pDstPriv->pict) { XRenderPictFormat *pFormat; pFormat = dmxFindFormat(dmxScreen, maskFormat); if (!pFormat) { /* FIXME: Error! */ } XRenderCompositeTriFan(dmxScreen->beDisplay, op, pSrcPriv->pict, pDstPriv->pict, pFormat, xSrc, ySrc, (XPointFixed *)points, npoint); dmxSync(dmxScreen, FALSE); } DMX_WRAP(TriFan, dmxTriFan, dmxScreen, ps);}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:41,
示例8: dmxBEFreePicture/** Destroy /a pPicture on the back-end server. */Bool dmxBEFreePicture(PicturePtr pPicture){ ScreenPtr pScreen = pPicture->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); if (pPictPriv->pict) { XRenderFreePicture(dmxScreen->beDisplay, pPictPriv->pict); pPictPriv->pict = (Picture)0; return TRUE; } return FALSE;}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:15,
示例9: dmxCreatePictureList/** Create a list of pictures. This function is called by * dmxCreateAndRealizeWindow() during the lazy window creation * realization process. It creates the entire list of pictures that * are associated with the given window. */void dmxCreatePictureList(WindowPtr pWindow){ PicturePtr pPicture = GetPictureWindow(pWindow); while (pPicture) { dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); /* Create the picture for this window */ pPictPriv->pict = dmxDoCreatePicture(pPicture); /* ValidatePicture takes care of the state changes */ pPicture = pPicture->pNext; }}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:19,
示例10: dmxChangePicture/** Change the attributes of the pictures. If the picture has not yet * been created due to lazy window creation, save the mask so that it * can be used to appropriately initialize the picture's attributes * when it is created later. */void dmxChangePicture(PicturePtr pPicture, Mask mask){ ScreenPtr pScreen = pPicture->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); DMX_UNWRAP(ChangePicture, dmxScreen, ps);#if 1 if (ps->ChangePicture) ps->ChangePicture(pPicture, mask);#endif /* Picture attribute changes are handled in ValidatePicture */ pPictPriv->savedMask |= mask; DMX_WRAP(ChangePicture, dmxChangePicture, dmxScreen, ps);}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:22,
示例11: dmxCreatePicture/** Create a picture. This function handles the CreatePicture * unwrapping/wrapping and calls dmxDoCreatePicture to actually create * the picture on the appropriate screen. */int dmxCreatePicture(PicturePtr pPicture){ ScreenPtr pScreen = pPicture->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); int ret = Success; DMX_UNWRAP(CreatePicture, dmxScreen, ps);#if 1 if (ps->CreatePicture) ret = ps->CreatePicture(pPicture);#endif /* Create picture on back-end server */ pPictPriv->pict = dmxDoCreatePicture(pPicture); pPictPriv->savedMask = 0; DMX_WRAP(CreatePicture, dmxCreatePicture, dmxScreen, ps); return ret;}
开发者ID:Magister,项目名称:x11rdp_xorg71,代码行数:25,
示例12: dmxProcRenderSetPictureTransform/** Set the picture transform on each screen. */static intdmxProcRenderSetPictureTransform(ClientPtr client){ DMXScreenInfo *dmxScreen; PicturePtr pPicture; dmxPictPrivPtr pPictPriv; XTransform xform; REQUEST(xRenderSetPictureTransformReq); REQUEST_SIZE_MATCH(xRenderSetPictureTransformReq); VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess); /* For the following to work with PanoramiX, it assumes that Render * wraps the ProcRenderVector after dmxRenderInit has been called. */ dmxScreen = &dmxScreens[pPicture->pDrawable->pScreen->myNum]; pPictPriv = DMX_GET_PICT_PRIV(pPicture); if (pPictPriv->pict) { xform.matrix[0][0] = stuff->transform.matrix11; xform.matrix[0][1] = stuff->transform.matrix12; xform.matrix[0][2] = stuff->transform.matrix13; xform.matrix[1][0] = stuff->transform.matrix21; xform.matrix[1][1] = stuff->transform.matrix22; xform.matrix[1][2] = stuff->transform.matrix23; xform.matrix[2][0] = stuff->transform.matrix31; xform.matrix[2][1] = stuff->transform.matrix32; xform.matrix[2][2] = stuff->transform.matrix33; XRenderSetPictureTransform(dmxScreen->beDisplay, pPictPriv->pict, &xform); dmxSync(dmxScreen, FALSE); } return dmxSaveRenderVector[stuff->renderReqType] (client);}
开发者ID:Agnesa,项目名称:xserver,代码行数:38,
示例13: dmxProcRenderCompositeGlyphs/** Composite glyphs on each screen into the requested picture. If * either the src or dest picture has not been allocated due to lazy * window creation, this request will gracefully return. */static intdmxProcRenderCompositeGlyphs(ClientPtr client){ int ret; REQUEST(xRenderCompositeGlyphsReq); ret = dmxSaveRenderVector[stuff->renderReqType] (client); /* For the following to work with PanoramiX, it assumes that Render * wraps the ProcRenderVector after dmxRenderInit has been called. */ if (ret == Success) { PicturePtr pSrc; dmxPictPrivPtr pSrcPriv; PicturePtr pDst; dmxPictPrivPtr pDstPriv; PictFormatPtr pFmt; XRenderPictFormat *pFormat; int size; int scrnNum; DMXScreenInfo *dmxScreen; CARD8 *buffer; CARD8 *end; int space; int nglyph; char *glyphs; char *curGlyph; xGlyphElt *elt; int nelt; XGlyphElt8 *elts; XGlyphElt8 *curElt; GlyphSetPtr glyphSet; dmxGlyphPrivPtr glyphPriv; dixLookupResourceByType((pointer *) &pSrc, stuff->src, PictureType, client, DixReadAccess); pSrcPriv = DMX_GET_PICT_PRIV(pSrc); if (!pSrcPriv->pict) return ret; dixLookupResourceByType((pointer *) &pDst, stuff->dst, PictureType, client, DixWriteAccess); pDstPriv = DMX_GET_PICT_PRIV(pDst); if (!pDstPriv->pict) return ret; scrnNum = pDst->pDrawable->pScreen->myNum; dmxScreen = &dmxScreens[scrnNum]; /* Note: If the back-end display has been detached, then it * should not be possible to reach here since the pSrcPriv->pict * and pDstPriv->pict will have already been set to 0. */ if (!dmxScreen->beDisplay) return ret; if (stuff->maskFormat) dixLookupResourceByType((pointer *) &pFmt, stuff->maskFormat, PictFormatType, client, DixReadAccess); else pFmt = NULL; pFormat = dmxFindFormat(dmxScreen, pFmt); switch (stuff->renderReqType) { case X_RenderCompositeGlyphs8: size = sizeof(CARD8); break; case X_RenderCompositeGlyphs16: size = sizeof(CARD16); break; case X_RenderCompositeGlyphs32: size = sizeof(CARD32); break; default: return BadPictOp; /* Can't happen */ } buffer = (CARD8 *) (stuff + 1); end = (CARD8 *) stuff + (stuff->length << 2); nelt = 0; nglyph = 0; while (buffer + sizeof(xGlyphElt) < end) { elt = (xGlyphElt *) buffer; buffer += sizeof(xGlyphElt); if (elt->len == 0xff) {//.........这里部分代码省略.........
开发者ID:Agnesa,项目名称:xserver,代码行数:101,
示例14: dmxValidatePicture/** Validate the picture's attributes before rendering to it. Update * any picture attributes that have been changed by one of the higher * layers. */voiddmxValidatePicture(PicturePtr pPicture, Mask mask){ ScreenPtr pScreen = pPicture->pDrawable->pScreen; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PictureScreenPtr ps = GetPictureScreen(pScreen); dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); DMX_UNWRAP(ValidatePicture, dmxScreen, ps); /* Change picture attributes on back-end server */ if (pPictPriv->pict) { XRenderPictureAttributes attribs; if (mask & CPRepeat) { attribs.repeat = pPicture->repeatType; } if (mask & CPAlphaMap) { if (pPicture->alphaMap) { dmxPictPrivPtr pAlphaPriv; pAlphaPriv = DMX_GET_PICT_PRIV(pPicture->alphaMap); if (pAlphaPriv->pict) { attribs.alpha_map = pAlphaPriv->pict; } else { /* FIXME: alpha picture drawable has not been created?? */ return; /* or should this be: attribs.alpha_map = None; */ } } else { attribs.alpha_map = None; } } if (mask & CPAlphaXOrigin) attribs.alpha_x_origin = pPicture->alphaOrigin.x; if (mask & CPAlphaYOrigin) attribs.alpha_y_origin = pPicture->alphaOrigin.y; if (mask & CPClipXOrigin) attribs.clip_x_origin = pPicture->clipOrigin.x; if (mask & CPClipYOrigin) attribs.clip_y_origin = pPicture->clipOrigin.y; if (mask & CPClipMask) mask &= ~CPClipMask; /* Handled in ChangePictureClip */ if (mask & CPGraphicsExposure) attribs.graphics_exposures = pPicture->graphicsExposures; if (mask & CPSubwindowMode) attribs.subwindow_mode = pPicture->subWindowMode; if (mask & CPPolyEdge) attribs.poly_edge = pPicture->polyEdge; if (mask & CPPolyMode) attribs.poly_mode = pPicture->polyMode; if (mask & CPComponentAlpha) attribs.component_alpha = pPicture->componentAlpha; XRenderChangePicture(dmxScreen->beDisplay, pPictPriv->pict, mask, &attribs); dmxSync(dmxScreen, FALSE); } else { pPictPriv->savedMask |= mask; }#if 1 if (ps->ValidatePicture) ps->ValidatePicture(pPicture, mask);#endif DMX_WRAP(ValidatePicture, dmxValidatePicture, dmxScreen, ps);}
开发者ID:Agnesa,项目名称:xserver,代码行数:73,
注:本文中的DMX_GET_PICT_PRIV函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ DM_LOG函数代码示例 C++ DMWARN函数代码示例 |