本文整理匯總了C++中GET_NEXT_PHYSDEV函數的典型用法代碼示例。如果您正苦於以下問題:C++ GET_NEXT_PHYSDEV函數的具體用法?C++ GET_NEXT_PHYSDEV怎麽用?C++ GET_NEXT_PHYSDEV使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了GET_NEXT_PHYSDEV函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: windrv_SetDeviceClipping
static void windrv_SetDeviceClipping( PHYSDEV dev, HRGN rgn )
{
dev = GET_NEXT_PHYSDEV( dev, pSetDeviceClipping );
dev->funcs->pSetDeviceClipping( dev, rgn );
/* also forward to the graphics driver for the OpenGL case */
if (dev->funcs == &dib_driver)
{
dev = GET_NEXT_PHYSDEV( dev, pSetDeviceClipping );
dev->funcs->pSetDeviceClipping( dev, rgn );
}
}
示例2: EMFDRV_ExtSelectClipRgn
INT EMFDRV_ExtSelectClipRgn( PHYSDEV dev, HRGN hrgn, INT mode )
{
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pExtSelectClipRgn );
EMREXTSELECTCLIPRGN *emr;
DWORD size, rgnsize;
BOOL ret;
if (!hrgn)
{
if (mode != RGN_COPY) return ERROR;
rgnsize = 0;
}
else rgnsize = GetRegionData( hrgn, 0, NULL );
size = rgnsize + offsetof(EMREXTSELECTCLIPRGN,RgnData);
emr = HeapAlloc( GetProcessHeap(), 0, size );
if (rgnsize) GetRegionData( hrgn, rgnsize, (RGNDATA *)&emr->RgnData );
emr->emr.iType = EMR_EXTSELECTCLIPRGN;
emr->emr.nSize = size;
emr->cbRgnData = rgnsize;
emr->iMode = mode;
ret = EMFDRV_WriteRecord( dev, &emr->emr );
HeapFree( GetProcessHeap(), 0, emr );
return ret ? next->funcs->pExtSelectClipRgn( next, hrgn, mode ) : ERROR;
}
示例3: windrv_GetImage
static DWORD windrv_GetImage( PHYSDEV dev, BITMAPINFO *info,
struct gdi_image_bits *bits, struct bitblt_coords *src )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
DWORD ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pGetImage );
ret = dev->funcs->pGetImage( dev, info, bits, src );
/* don't return alpha if original surface doesn't support it */
if (info->bmiHeader.biBitCount == 32 &&
info->bmiHeader.biCompression == BI_RGB &&
physdev->dibdrv->dib.compression == BI_BITFIELDS)
{
DWORD *colors = (DWORD *)info->bmiColors;
colors[0] = 0xff0000;
colors[1] = 0x00ff00;
colors[2] = 0x0000ff;
info->bmiHeader.biCompression = BI_BITFIELDS;
}
if (!bits->is_copy)
{
/* use the freeing callback to unlock the surface */
assert( !bits->free );
bits->free = unlock_bits_surface;
bits->param = physdev->surface;
}
else unlock_surface( physdev->surface );
return ret;
}
示例4: dibdrv_SelectBrush
/***********************************************************************
* dibdrv_SelectBrush
*/
HBRUSH CDECL dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
{
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSelectBrush );
dibdrv_physdev *pdev = get_dibdrv_pdev(dev);
LOGBRUSH logbrush;
TRACE("(%p, %p)\n", dev, hbrush);
if (!GetObjectW( hbrush, sizeof(logbrush), &logbrush )) return 0;
if (hbrush == GetStockObject( DC_BRUSH ))
logbrush.lbColor = GetDCBrushColor( dev->hdc );
pdev->brush_style = logbrush.lbStyle;
pdev->defer |= DEFER_BRUSH;
free_pattern_brush( pdev );
switch(logbrush.lbStyle)
{
case BS_SOLID:
pdev->brush_color = pdev->dib.funcs->colorref_to_pixel(&pdev->dib, logbrush.lbColor);
calc_and_xor_masks(GetROP2(dev->hdc), pdev->brush_color, &pdev->brush_and, &pdev->brush_xor);
pdev->brush_rects = solid_brush;
pdev->defer &= ~DEFER_BRUSH;
break;
case BS_NULL:
pdev->brush_rects = null_brush;
pdev->defer &= ~DEFER_BRUSH;
break;
case BS_DIBPATTERN:
{
BITMAPINFOHEADER *bi = GlobalLock((HGLOBAL)logbrush.lbHatch);
dib_info orig_dib;
if(!bi) return NULL;
if(init_dib_info_from_packed(&orig_dib, bi, LOWORD(logbrush.lbColor)))
{
copy_dib_color_info(&pdev->brush_dib, &pdev->dib);
if(convert_dib(&pdev->brush_dib, &orig_dib))
{
pdev->brush_rects = pattern_brush;
pdev->defer &= ~DEFER_BRUSH;
}
free_dib_info(&orig_dib, FALSE);
}
GlobalUnlock((HGLOBAL)logbrush.lbHatch);
break;
}
default:
break;
}
return next->funcs->pSelectBrush( next, hbrush );
}
示例5: dibdrv_SetTextColor
/***********************************************************************
* dibdrv_SetTextColor
*/
static COLORREF dibdrv_SetTextColor( PHYSDEV dev, COLORREF color )
{
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetTextColor );
dibdrv_physdev *pdev = get_dibdrv_pdev(dev);
pdev->text_color = get_pixel_color( pdev, color, TRUE );
update_aa_ranges( pdev );
return next->funcs->pSetTextColor( next, color );
}
示例6: EMFDRV_SetMapMode
INT EMFDRV_SetMapMode( PHYSDEV dev, INT mode )
{
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetMapMode );
EMRSETMAPMODE emr;
emr.emr.iType = EMR_SETMAPMODE;
emr.emr.nSize = sizeof(emr);
emr.iMode = mode;
if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0;
return next->funcs->pSetMapMode( next, mode );
}
示例7: windrv_Polyline
static BOOL windrv_Polyline( PHYSDEV dev, const POINT *points, INT count )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pPolyline );
ret = dev->funcs->pPolyline( dev, points, count );
unlock_surface( physdev->surface );
return ret;
}
示例8: windrv_PaintRgn
static BOOL windrv_PaintRgn( PHYSDEV dev, HRGN rgn )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pPaintRgn );
ret = dev->funcs->pPaintRgn( dev, rgn );
unlock_surface( physdev->surface );
return ret;
}
示例9: windrv_SetPixel
static COLORREF windrv_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
COLORREF ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pSetPixel );
ret = dev->funcs->pSetPixel( dev, x, y, color );
unlock_surface( physdev->surface );
return ret;
}
示例10: windrv_PolyPolygon
static BOOL windrv_PolyPolygon( PHYSDEV dev, const POINT *points, const INT *counts, UINT polygons )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pPolyPolygon );
ret = dev->funcs->pPolyPolygon( dev, points, counts, polygons );
unlock_surface( physdev->surface );
return ret;
}
示例11: windrv_Rectangle
static BOOL windrv_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT bottom )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pRectangle );
ret = dev->funcs->pRectangle( dev, left, top, right, bottom );
unlock_surface( physdev->surface );
return ret;
}
示例12: windrv_ExtFloodFill
static BOOL windrv_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT type )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pExtFloodFill );
ret = dev->funcs->pExtFloodFill( dev, x, y, color, type );
unlock_surface( physdev->surface );
return ret;
}
示例13: windrv_PatBlt
static BOOL windrv_PatBlt( PHYSDEV dev, struct bitblt_coords *dst, DWORD rop )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pPatBlt );
ret = dev->funcs->pPatBlt( dev, dst, rop );
unlock_surface( physdev->surface );
return ret;
}
示例14: windrv_LineTo
static BOOL windrv_LineTo( PHYSDEV dev, INT x, INT y )
{
struct windrv_physdev *physdev = get_windrv_physdev( dev );
BOOL ret;
lock_surface( physdev->surface );
dev = GET_NEXT_PHYSDEV( dev, pLineTo );
ret = dev->funcs->pLineTo( dev, x, y );
unlock_surface( physdev->surface );
return ret;
}
示例15: EMFDRV_SetWorldTransform
BOOL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform)
{
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWorldTransform );
EMRSETWORLDTRANSFORM emr;
emr.emr.iType = EMR_SETWORLDTRANSFORM;
emr.emr.nSize = sizeof(emr);
emr.xform = *xform;
if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
return next->funcs->pSetWorldTransform( next, xform );
}