Lines Matching refs:pSrc

111 void CrMBltImgRect(const CR_BLITTER_IMG *pSrc, const RTPOINT *pSrcDataPoint, bool fSrcInvert, const RTRECT *pCopyRect, CR_BLITTER_IMG *pDst)
117 Assert(srcX < (int32_t)pSrc->width);
118 Assert(srcY < (int32_t)pSrc->height);
127 uint8_t *pu8Src = ((uint8_t*)pSrc->pvData) + pSrc->pitch * (!fSrcInvert ? srcY : pSrc->height - srcY - 1) + srcX * 4;
130 crMBltMem(pu8Src, fSrcInvert ? -((int32_t)pSrc->pitch) : (int32_t)pSrc->pitch, pu8Dst, pDst->pitch, pCopyRect->xRight - pCopyRect->xLeft, pCopyRect->yBottom - pCopyRect->yTop);
133 void CrMBltImg(const CR_BLITTER_IMG *pSrc, const RTPOINT *pPos, uint32_t cRects, const RTRECT *pRects, CR_BLITTER_IMG *pDst)
139 RestrictSrcRect.xRight = pSrc->width;
140 RestrictSrcRect.yBottom = pSrc->height;
160 CrMBltImgRect(pSrc, pPos, false, &Intersection, pDst);
166 void CrMBltImgRectScaled(const CR_BLITTER_IMG *pSrc, const RTPOINT *pPos, bool fSrcInvert, const RTRECT *pCopyRect, float strX, float strY, CR_BLITTER_IMG *pDst)
195 if (srcX >= pSrc->width)
201 if (srcY >= pSrc->height)
209 Assert(srcX < (int32_t)pSrc->width);
210 Assert(srcY < (int32_t)pSrc->height);
220 if (UnscaledSrcWidth + srcX > pSrc->width)
221 UnscaledSrcWidth = pSrc->width - srcX;
223 if (UnscaledSrcHeight + srcY > pSrc->height)
224 UnscaledSrcHeight = pSrc->height - srcY;
226 uint8_t *pu8Src = ((uint8_t*)pSrc->pvData) + pSrc->pitch * (!fSrcInvert ? srcY : pSrc->height - srcY - 1) + srcX * 4;
232 fSrcInvert ? -((int32_t)pSrc->pitch) : (int32_t)pSrc->pitch,
237 void CrMBltImgScaled(const CR_BLITTER_IMG *pSrc, const RTRECTSIZE *pSrcRectSize, const RTRECT *pDstRect, uint32_t cRects, const RTRECT *pRects, CR_BLITTER_IMG *pDst)
253 ScaledRestrictSrcRect.xRight = CR_FLOAT_RCAST(int32_t, pSrc->width * strX);
254 ScaledRestrictSrcRect.yBottom = CR_FLOAT_RCAST(int32_t, pSrc->height * strY);
276 CrMBltImgRectScaled(pSrc, &Pos, false, &Intersection, strX, strY, pDst);
460 static DECLCALLBACK(int) crBltBlitTexBufImplFbo(PCR_BLITTER pBlitter, const VBOXVR_TEXTURE *pSrc, const RTRECT *paSrcRect, const RTRECTSIZE *pDstSize, const RTRECT *paDstRect, uint32_t cRects, uint32_t fFlags)
464 pBlitter->pDispatch->FramebufferTexture2DEXT(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, pSrc->target, pSrc->hwid, 0);
482 srcY1 = pSrc->height - pSrcRect->yTop;
483 srcY2 = pSrc->height - pSrcRect->yBottom;
724 static DECLCALLBACK(int) crBltBlitTexBufImplDraw2D(PCR_BLITTER pBlitter, const VBOXVR_TEXTURE *pSrc, const RTRECT *paSrcRect, const RTRECTSIZE *pDstSize, const RTRECT *paDstRect, uint32_t cRects, uint32_t fFlags)
727 uint32_t srcHeight = (fFlags & CRBLT_F_INVERT_SRC_YCOORDS) ? pSrc->height : 0;
730 switch (pSrc->target)
734 normalX = pSrc->width;
735 normalY = pSrc->height;
748 crWarning("Unsupported texture target 0x%x", pSrc->target);
753 Assert(pSrc->hwid);
755 pBlitter->pDispatch->BindTexture(pSrc->target, pSrc->hwid);
774 pBlitter->pDispatch->Enable(pSrc->target);
778 pBlitter->pDispatch->Disable(pSrc->target);
802 pBlitter->pDispatch->Enable(pSrc->target);
806 pBlitter->pDispatch->Disable(pSrc->target);
812 pBlitter->pDispatch->BindTexture(pSrc->target, 0);
927 static void crBltBlitTexBuf(PCR_BLITTER pBlitter, const VBOXVR_TEXTURE *pSrc, const RTRECT *paSrcRects, GLenum enmDstBuff, const RTRECTSIZE *pDstSize, const RTRECT *paDstRects, uint32_t cRects, uint32_t fFlags)
937 pBlitter->pfnBlt(pBlitter, pSrc, paSrcRects, pDstSize, paDstRects, cRects, fFlags);
941 ? CrGlslProgUseNoAlpha(pBlitter->pGlslCache, pSrc->target)
942 : CrGlslProgUseGenNoAlpha(&pBlitter->LocalGlslCache, pSrc->target);
947 pBlitter->pfnBlt(pBlitter, pSrc, paSrcRects, pDstSize, paDstRects, cRects, fFlags);
953 crBltBlitTexBufImplDraw2D(pBlitter, pSrc, paSrcRects, pDstSize, paDstRects, cRects, fFlags);
968 void CrBltBlitTexMural(PCR_BLITTER pBlitter, bool fBb, const VBOXVR_TEXTURE *pSrc, const RTRECT *paSrcRects, const RTRECT *paDstRects, uint32_t cRects, uint32_t fFlags)
984 crBltBlitTexBuf(pBlitter, pSrc, paSrcRects, fBb ? GL_BACK : GL_FRONT, &DstSize, paDstRects, cRects, fFlags);
990 void CrBltBlitTexTex(PCR_BLITTER pBlitter, const VBOXVR_TEXTURE *pSrc, const RTRECT *pSrcRect, const VBOXVR_TEXTURE *pDst, const RTRECT *pDstRect, uint32_t cRects, uint32_t fFlags)
1009 crBltBlitTexBuf(pBlitter, pSrc, pSrcRect, GL_DRAW_FRAMEBUFFER, &DstSize, pDstRect, cRects, fFlags);
1028 static int crBltImgInitBaseForTex(const VBOXVR_TEXTURE *pSrc, CR_BLITTER_IMG *pDst, GLenum enmFormat)
1040 uint32_t pitch = ((bpp * pSrc->width) + 7) >> 3;
1041 uint32_t cbData = pitch * pSrc->height;
1044 pDst->width = pSrc->width;
1045 pDst->height = pSrc->height;
1051 static int crBltImgCreateForTex(const VBOXVR_TEXTURE *pSrc, CR_BLITTER_IMG *pDst, GLenum enmFormat)
1053 int rc = crBltImgInitBaseForTex(pSrc, pDst, enmFormat);
1080 VBOXBLITTERDECL(int) CrBltImgGetTex(PCR_BLITTER pBlitter, const VBOXVR_TEXTURE *pSrc, GLenum enmFormat, CR_BLITTER_IMG *pDst)
1088 int rc = crBltImgCreateForTex(pSrc, pDst, enmFormat);
1094 pBlitter->pDispatch->BindTexture(pSrc->target, pSrc->hwid);
1099 pBlitter->pDispatch->GetTexLevelParameteriv(pSrc->target, 0, GL_TEXTURE_WIDTH, &width);
1100 pBlitter->pDispatch->GetTexLevelParameteriv(pSrc->target, 0, GL_TEXTURE_HEIGHT, &height);
1101 pBlitter->pDispatch->GetTexLevelParameteriv(pSrc->target, 0, GL_TEXTURE_DEPTH, &depth);
1103 Assert(width == pSrc->width);
1104 Assert(height == pSrc->height);
1105 // Assert(depth == pSrc->depth);
1109 pBlitter->pDispatch->GetTexImage(pSrc->target, 0, enmFormat, GL_UNSIGNED_BYTE, pDst->pvData);
1111 pBlitter->pDispatch->BindTexture(pSrc->target, 0);