当前位置: BOLT界面引擎 > 知识库文章 > XGP库使用指南

XGP库使用指南

作者:李亚星 2013-01-29

XLGraphicPlus库,简称XGP,是BOLT引擎的扩展库,主要用以对核心图形库XLGraphic的扩展,支持图片格式转换、多种图片格式支持、保存和加载图片、多种图像处理算法以及对应的lua封装等,是一个功能丰富、强大的扩展库

 

目前XGP包括以下功能(以后会不断扩充)

 

l  图片格式的转换

包括了DDBXLBitmapDIBXLBitmapDDBDIB的相互转换,支持多种色深格式

l  BMP格式的支持

支持从文件和内存流加载bmp格式的图片,支持加载不经过预处理的图片

l  JPG格式的支持

支持从文件和内存流加载JPG格式的图片

l  ICON格式的支持

包括了从文件、内存流、exe/DLL、系统文件类型图标、HICON资源句柄加载icon,支持保存icon到本地文件,支持以XLBitmap形式显示icon

l  cursor格式的支持

支持从文件和内流流加载cursor

l  GIF格式的支持

支持从文件和内存流加载GIF,支持获取GIF的指定帧,遍历GIF所有帧等

l  保存XLBitmap到本地文件

支持保存XLBitmapjpgpngbmp格式的本地文件

l  XLGP_PushXXXXLGP_CheckXXX

支持XLGraphicXLGraphicPlus定义的所有资源类型,此接口族用以把指定类型的资源句柄压入lua栈,或者从lua里面取出来

l  丰富的图形处理算法

暂未对外开放

 

XGP库的初始化和反初始化

XGP依赖XLGraphic.dll,如果想在lua里面使用XGP的接口,还需要依赖XLLuaRuntime环境的默认初始化

 

初始化方法如下

XLGraphicPlusParam plusParam;

XLGP_PrepareGraphicPlusParam(&plusParam);

XLGP_InitGraphicPlus(&plusParam);

 

其中plusParam可以指定是否需要注册到Lua环境,默认是TRUE

如果需要注册到lua环境,那么初始化必须放在XLUE_InitLoader之后;否则只需要保证在XLGraphic初始化之后

 

典型的初始化流程如下:

XLFS_Init();

XLGraphicParam param;

XL_PrepareGraphicParam(&param);

XL_InitGraphicLib(&param);

 

XLUE_InitLoader(NULL);

 

XLGraphicPlusParam plusParam;

XLGP_PrepareGraphicPlusParam(&plusParam);

XLGP_InitGraphicPlus(&plusParam);

 

反初始化方法如下

XLGP_UnInitGraphicPlus();

需要保证XGP的反初始化流程在XLGraphic反初始化之前

 

典型的反初始化流程如下:

XLUE_Uninit(NULL);

XLUE_UninitLuaHost(NULL);

XLGP_UnInitGraphicPlus();

XL_UnInitGraphicLib();

XLUE_UninitHandleMap(NULL);

XLFS_Uninit();

 

BOLT主模块对XGP的依赖

XLUEXGP是隐式依赖,当xlue使用到如下功能时候:

l  SeqImageObject并且指定了gif资源

l  bitmap资源,指定了icon格式的资源

l  配置了cursor类型资源

l  配置了gif类型资源

l  RealObjectWebBrowseObjectFlashObject调用了GetWindowBitmap

l  调用了XAR的关于gifcursor的相关接口,比如CreateGif

如果当前进程没有加载XGP库,那么xlue会尝试XLGraphicPlus.dll,如果加载成功,那么会使用XGP来完成上述功能;否则上述操作会失败。隐式加载成功后,引擎会在XLUE_Uninit时候进行XGP库的反初始化

 

由于隐式依赖下,XGP的加载时机是不确定的,所以如果你的产品确定要使用到XGP库的功能,那么最好按照上述的加载流程,在初始化的时候进行加载。

 

迅雷公司 版权所有 Copyright 2003-2010 Thunder Inc.All Rights Reserved. 意见反馈:xl7doc@xunlei.com