⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gfxlib.c

📁 IBM source for pallas/vulcan/vesta
💻 C
📖 第 1 页 / 共 2 页
字号:
    parm.pPalette = pPalette;    parm.uStart = uStart;    parm.uCount = uCount;    return ioctl(fdGfxDev, IOC_GFX_SET_SURFACE_PALETTE, &parm);}int gfx_get_shared_surface(int fdGfxDev){    return ioctl(fdGfxDev, IOC_GFX_GET_SHARED_SURFACE, 0);}int gfx_set_shared_surface(int fdGfxDev, int hSurface){    return ioctl(fdGfxDev, IOC_GFX_SET_SHARED_SURFACE, hSurface);}int gfx_get_surface_display_parm(int fdGfxDev, int hSurface, GFX_SURFACE_DISPLAY_T *pParm){    pParm->hSurface = hSurface;    return ioctl(fdGfxDev, IOC_GFX_GET_SURFACE_DISP_PARM, pParm);}int gfx_set_surface_display_parm(int fdGfxDev, int hSurface, GFX_SURFACE_DISPLAY_T *pParm){    pParm->hSurface = hSurface;    return ioctl(fdGfxDev, IOC_GFX_SET_SURFACE_DISP_PARM, pParm);}int gfx_get_screen_info(int fdGfxDev, GFX_SCREEN_INFO_T *pInfo){    return ioctl(fdGfxDev, IOC_GFX_GET_SCREEN_INFO, pInfo);}int gfx_set_screen_info(int fdGfxDev, GFX_SCREEN_INFO_T *pInfo){    return ioctl(fdGfxDev, IOC_GFX_SET_SCREEN_INFO, pInfo);}int gfx_move_cursor(int fdGfxDev, int x, int y){    GFX_COORDINATE_T parm;    parm.nCursorX = x;    parm.nCursorY = y;    return ioctl(fdGfxDev, IOC_GFX_MOVE_CURSOR, &parm);}int gfx_report_cursor(int fdGfxDev, int *x, int *y){    GFX_COORDINATE_T parm;    if(ioctl(fdGfxDev, IOC_GFX_MOVE_CURSOR, &parm) >= 0)    {        if(x) *x = parm.nCursorX;        if(y) *y = parm.nCursorY;        return 0;    }    else return -1;}int gfx_set_cursor_attributes(int fdGfxDev, int hCursorSurface, UINT uIndex, GFX_CURSOR_ATTRIBUTE_T attr){    GFX_CURSOR_ATTRUBUTE_PARM_T parm;    parm.attr = attr;    parm.hCursor = hCursorSurface;    parm.uIndex = uIndex;    return ioctl(fdGfxDev, IOC_GFX_SET_CURSOR_ATTRIBUTE, &parm);}int gfx_set_display_attr(int fdGfxDev, GFX_DISPLAY_CONTROL_T control, UINT uattr){    GFX_DISPLAY_CONTROL_PARM_T parm;    parm.parm = control;    parm.uAttr = uattr;    return ioctl(fdGfxDev, IOC_GFX_SET_DISPLAY_CONTROL, &parm);}int gfx_get_display_attr(int fdGfxDev, GFX_DISPLAY_CONTROL_T control, UINT *puattr){    GFX_DISPLAY_CONTROL_PARM_T parm;    parm.parm = control;    if(ioctl(fdGfxDev, IOC_GFX_GET_DISPLAY_CONTROL, &parm) >= 0)    {        if(puattr) *puattr = parm.uAttr;        return 0;    }    return -1;}int gfx_set_display_device_attr(int fdGfxDev,  GFX_VISUAL_DEVICE_ID_T graphDev, GFX_VISUAL_DEVICE_CONTROL_T control,  UINT uattr){    GFX_VISUAL_DEVICE_CONTROL_PARM_T parm;    parm.graphDev = graphDev;    parm.cntl = control;    parm.uAttr = uattr;    return ioctl(fdGfxDev, IOC_GFX_SET_VISUAL_DEVICE_CONTROL, &parm);}int gfx_get_display_device_attr(int fdGfxDev,  GFX_VISUAL_DEVICE_ID_T graphDev, GFX_VISUAL_DEVICE_CONTROL_T control,  UINT *puattr){    GFX_VISUAL_DEVICE_CONTROL_PARM_T parm;    parm.graphDev = graphDev;    parm.cntl = control;    if(ioctl(fdGfxDev, IOC_GFX_GET_VISUAL_DEVICE_CONTROL, &parm) >= 0)    {        if(puattr) *puattr = parm.uAttr;        return 0;    }    return -1;}int gfx_wait_for_engine(int fdGfxDev, int nTimeout){    return ioctl(fdGfxDev, IOC_GFX_WAIT_FOR_COMPLETE, nTimeout);}int gfx_reset_engine(int fdGfxDev){    return ioctl(fdGfxDev, IOC_GFX_RESET_ENGINE, 0);}int gfx_set_engine_mode(int fdGfxDev, int sync_mode){    return ioctl(fdGfxDev, IOC_GFX_SET_ENGINE_MODE, sync_mode);}int gfx_get_engine_mode(int fdGfxDev){    return ioctl(fdGfxDev, IOC_GFX_GET_ENGINE_MODE, 0);}int gfx_set_surface_clip_rect(int fdGfxDev, int hSurface, GFX_RECT_T *pClip){    GFX_SET_CLIP_PARM_T parm;    parm.hSurface = hSurface;    if(pClip)  parm.rect = *pClip;    else    {        parm.rect.x1 = 0;        parm.rect.y1 = 0;        parm.rect.x2 = 1<<(sizeof(int)*8 - 2);  // large enough        parm.rect.y2 = 1<<(sizeof(int)*8 - 2);  // large enough    }    if(ioctl(fdGfxDev, IOC_GFX_SET_SURFACE_CLIP_RECT, &parm) < 0)       return -1;    if(pClip) *pClip = parm.rect;    return 0;}INT gfx_bitBLT(int fdGfxDev, int hDes, INT nDesX, INT nDesY,                UINT uWidth, UINT uHeight,                int hSrc,  INT nSrcX,  INT nSrcY,                ALPHA_SELECT *pAlphaSelect, char enableGammaCorrection){    GFX_BITBLT_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.hSrcSurface = hSrc;    parm.uSrcX = nSrcX;    parm.uSrcY = nSrcY;    if(pAlphaSelect)        parm.alphaSelect = *pAlphaSelect;    else    {        parm.alphaSelect.globalAlphaValue = 0;        parm.alphaSelect.storedAlphaSelect = GFX_DEST_ALPHA_FROM_SOURCE;    }    parm.enableGammaCorrection = enableGammaCorrection;    return ioctl(fdGfxDev, IOC_GFX_BITBLT, &parm);}INT gfx_advancedBitBLT(int fdGfxDev, int hDes, INT nDesX, INT nDesY,            UINT uWidth, UINT uHeight,            int hSrc, INT nSrcX, INT nSrcY,            int hMask, INT nMaskX, INT nMaskY,            GFX_ROP_CODE_T ROP,            char enablePixelBitMask, UINT32 uPixelBitMask,            ALPHA_SELECT *pAlphaSelect){    GFX_ADV_BITBLT_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.hSrcSurface = hSrc;    parm.uSrcX = nSrcX;    parm.uSrcY = nSrcY;    parm.hMaskSurface = hMask;    parm.uMaskX = nMaskX;    parm.uMaskY = nMaskY;    parm.ROP = ROP;    parm.enablePixelBitMask = enablePixelBitMask;    parm.uPixelBitMask = uPixelBitMask;    if(pAlphaSelect)        parm.alphaSelect = *pAlphaSelect;    else    {        parm.alphaSelect.globalAlphaValue = 0;        parm.alphaSelect.storedAlphaSelect = GFX_DEST_ALPHA_FROM_SOURCE;    }    return ioctl(fdGfxDev, IOC_GFX_ADV_BITBLT, &parm);}INT gfx_fillBLT(int fdGfxDev, int hDes, INT nDesX, INT nDesY,            UINT uWidth, UINT uHeight, UINT32 uFillColor){    GFX_FILLBLT_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.uFillColor = uFillColor;    return ioctl(fdGfxDev, IOC_GFX_FILLBLT, &parm);}INT gfx_advancedFillBLT(int fdGfxDev, int hDes, INT nDesX, INT nDesY,            UINT uWidth, UINT uHeight, UINT32 uFillColor, /* formatted in the dest format color if rgb, index if clut */            int hMask, INT nMaskX, INT nMaskY,            GFX_ROP_CODE_T ROP, char transparencyEnable,    //             UINT32 uBackGroundColor, char enablePixelBitMask, UINT32 uPixelBitMask){    GFX_ADV_FILLBLT_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.uFillColor = uFillColor;    parm.hMaskSurface = hMask;    parm.uMaskX = nMaskX;    parm.uMaskY = nMaskY;    parm.ROP = ROP;    parm.transparencyEnable = transparencyEnable;    parm.uBackGroundColor = uBackGroundColor;    parm.enablePixelBitMask = enablePixelBitMask;    parm.uPixelBitMask = uPixelBitMask;    return ioctl(fdGfxDev, IOC_GFX_ADV_FILLBLT, &parm);}INT gfx_blend(int fdGfxDev, int hDes, INT nDesX, INT nDesY,                UINT uWidth, UINT uHeight,                int hSrc, INT nSrcX, INT nSrcY,                ALPHA_BLEND_SELECT *pBlendSelect){    GFX_BLEND_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.hSrcSurface = hSrc;    parm.uSrcX = nSrcX;    parm.uSrcY = nSrcY;    if(pBlendSelect)        parm.blendSelect = *pBlendSelect;    else    {        parm.blendSelect.globalAlphaValue = 0x80;        parm.blendSelect.blendInputSelect = GFX_BLEND_ALPHA_FROM_SOURCE;        parm.blendSelect.storedAlphaSelect = GFX_DEST_ALPHA_FROM_DESTINATION;    }    return ioctl(fdGfxDev, IOC_GFX_BLEND, &parm);}INT gfx_advancedBlend(int fdGfxDev, int hDes, INT nDesX, INT nDesY,                UINT uWidth, UINT uHeight,                int hSrc, INT nSrcX, INT nSrcY,                int hAlpha, INT nAlphaX, INT nAlphaY,                ALPHA_BLEND_SELECT *pBlendSelect){    GFX_ADV_BLEND_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.hSrcSurface = hSrc;    parm.uSrcX = nSrcX;    parm.uSrcY = nSrcY;    parm.hAlphaSurface = hAlpha;    parm.uAlphaX = nAlphaX;    parm.uAlphaY = nAlphaY;    if(pBlendSelect)        parm.blendSelect = *pBlendSelect;    else    {        parm.blendSelect.globalAlphaValue = 0x80;        parm.blendSelect.blendInputSelect = GFX_BLEND_ALPHA_FROM_PATTERN;        parm.blendSelect.storedAlphaSelect = GFX_DEST_ALPHA_FROM_DESTINATION;    }    return ioctl(fdGfxDev, IOC_GFX_ADV_BLEND, &parm);}INT gfx_colorKey(int fdGfxDev, int hDes, INT nDesX, INT nDesY,                UINT uWidth, UINT uHeight,                int hSrc, INT nSrcX, INT nSrcY,                COLOR_KEY_SELECT *pColorKeySelect, ALPHA_SELECT *pAlphaSelect){    GFX_COLORKEY_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = nDesX;    parm.uDesY = nDesY;    parm.uWidth = uWidth;    parm.uHeight = uHeight;    parm.hSrcSurface = hSrc;    parm.uSrcX = nSrcX;    parm.uSrcY = nSrcY;    parm.colorKeySelect = *pColorKeySelect;    if(pAlphaSelect)        parm.alphaSelect = *pAlphaSelect;    else    {        parm.alphaSelect.globalAlphaValue = 0;        parm.alphaSelect.storedAlphaSelect = GFX_DEST_ALPHA_FROM_SOURCE;    }    return ioctl(fdGfxDev, IOC_GFX_COLORKEY, &parm);}INT gfx_resize(int fdGfxDev, int hDes, UINT uDesX, UINT uDesY, UINT uDesWidth, UINT uDesHeight,            int hSrc, UINT uSrcX, UINT uSrcY, UINT uSrcWidth, UINT uSrcHeight,            BYTE destAlpha, char enableGammaCorrection){    GFX_RESIZE_PARM_T   parm;    parm.hDesSurface = hDes;    parm.uDesX = uDesX;    parm.uDesY = uDesY;    parm.uDesWidth = uDesWidth;    parm.uDesHeight = uDesHeight;    parm.hSrcSurface = hSrc;    parm.uSrcX = uSrcX;    parm.uSrcY = uSrcY;    parm.uSrcWidth = uSrcWidth;    parm.uSrcHeight = uSrcHeight;    parm.destAlpha = destAlpha;    parm.enableGammaCorrection = enableGammaCorrection;    return ioctl(fdGfxDev, IOC_GFX_RESIZE, &parm);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -