版本下载

点此下载
  1. 1.LayoutObject增加limit属性和对应的lua接口
  2. 2.RichEditObject增加GetSelectCharFormat接口
  3. 3.完善跨进程flash的自定义光标处理
  4. 4.HostWnd增加GetWindowBitmap接口
  5. 5.XLUE.dll新增多个C接口
  6. 6.修复了freetype字体渲染,在某些未安装显卡驱动的系统上导致部分字体花屏的bug
  7. 7.完善LayoutObject的SetLimitChild实现
  8. 8.LayoutObject的SetAlpha和SetEnable增加递归设置参数
  9. ......

详细更新列表如下:

1.         LayoutObject增加limit属性和对应的lua接口

该属性是limitchild的配套属性;可以控制元对象是否受父对象的limitchild属性限制;默认为true
增加这个属性后,增加了limitchild的自由度,如果想添加一个不受parent的限制的对象进去,之前只能重新安排该对象的位置,现在就很轻松了,直接关闭该对象的limit属性即可
                  
                   LayoutObject新增两个接口:
                   Void SetLimit(bool limit)
                   Bool GetLimit()
 
2.         RichEditObject增加GetSelectCharFormat接口
该接口可以用来获取RichEdit里面当前选中文本的cfm格式,其中文本和对象格式有所不同,详细内容参见在线文档
 
3.         完善跨进程flash的自定义光标处理
4.         HostWnd增加GetWindowBitmap接口
该接口可以获取当前窗口的实时渲染位图,这里需要注意的是,该函数返回的位图不可修改
 
5.         XLUE.dll新增多个C接口
包括获取窗口位图的XLUE_GetWindowBitmap接口,另外还包括一些列获取资源的接口
 
6.         修复了freetype字体渲染,在某些未安装显卡驱动的系统上导致部分字体花屏的bug
 
7.         完善LayoutObjectSetLimitChild实现
之前该方法在对象创建后,动态调用有可能会出现刷新的bug,本版本这块做了完善处理,确保所涉及对象都有机会刷新
 
8.         LayoutObjectSetAlphaSetEnable增加递归设置参数
增加第二个可选参数(默认为false),用来指示是否对下面所有子对象递归设置该属性,方便在动画和初始化时候做整体性处理
新的接口如下:
Void SetAlpha(unsigned char alpha, bool isRecursive)
Void SetEnable(bool enable, bool isRecursive)
 
9.         Flash进程外服务器增加拉起时间间隔限制
为了避免在系统极卡或者资源不够的情况下,短时间内拉起多个进程外服务器,增加了尝试拉起进程外服务器的最小时间间隔限制
 
10.     xlueops增加新的基于宿主进程的监测机制
避免在某些情况下,导致宿主进程退出后,进程外服务器无法退出的bug
 
11.     修复核心render一处由于错误框异步导致的崩溃
12.     修复XL_AdjustBitmapColor接口一个bug
修复了该接口的SAdjust上溢或者下溢导致的bug
 
13.     优化xml内存结构,减少内存开销
14.     修复LuaGetStyle在没有定义style情况下可能崩溃的bug
15.     RichEditObject支持shift+导航键进行选中操作
Shift+方向键   前后左右选中
Shift+home       选中光标位置前半行
Shift+end          选中光标位置后半行
Shift+pageup   选中光标位置起上一view
Shift+pagedown       选中光标位置起下一view
 
16.     LayoutObject增加动态设置focusstrategy的接口
接口原型如下:
SetFocusStrategy(string strategy) 可取值 autofuzzy
String GetFocusStrategy()
 
17.     调整RichEditObjecthomeend按键逻辑
Home键导航由之前的导航到所有内容首部,调整为导航到当前光标所在行的行首
End键导航由之前的导航到所有内容尾部,调整为导航到当前光标所在行的行尾
 
18.     XLIPC增加XLIPC_AsynAcceptSession接口
该接口用以异步监听来自客户进程的连接,可以和XLIPC_AcceptSession在不同情况下使用
 
19.     修复AsynManager由于小概率情况下,消息重入导致崩溃
20.     图形库修复一个位图越界bug(光影魔术手反馈)
21.     完善元对象的非主动焦点导航策略
之前在一些情况下,会导致不可获取焦点的对象也获得焦点,本版本已经调整策略
 
22.     修复图形库的DrawLine一处内存越界导致的崩溃
23.     修复windowlessflashframelimit在特定情况下无效的bug
 
24.     调整资源事件系统,支持动态切换xar的资源包SelectResPackage
由于BOLT引擎对外开放后,有很多产品反馈需要动态切换资源包以实现高级换肤,引擎自始就支持动态切换资源包,但是由于资源事件的缘故导致切换都很多问题;本版本对这块进行了较大的调整,可以动态切换资源包了
 
25.     WindowlessFlashObject增加LoadMovieEx接口,支持加载xar里面的文件(迅雷8需求)
该接口和LoadMovie一致,支持从xar包里面加载flash,这里需要注意的是,由于flash并未提供直接接口,此调用可能会导致写磁盘文件,在远程flash模式下可以忽略,但是如果是本地模式,那么需要考虑性能。
 
26.     强化HostwndBringWindowToBack方法
该方法最早设置可以把窗口调整到指定窗口的后面(也即改变窗口的zorder),现在新增支持调整窗口到指定的zorder,支持下面四种字符串参数:
Bottom 调整窗口到最底层
Top 调整窗口到最上面
Topmost 调整窗口为topmost
NoTopMost 调整窗口到所有非topmost窗口上面
 
27.     对象树在失去焦点后,通过调用SetFocusObject可以改变最后失去焦点对象
接到过多个产品反馈,对象树再次获取焦点后,会自动把焦点设置到上次失焦最后所在的对象。这个特性在使用中多有不便,关键是没有入口来控制下次设置焦点时候的首个焦点对象。所以本版本做了修正,在对象树失去焦点期间调用SetFocusObject,那么下次对象树再获取焦点时候,焦点会设置到这个对象上面
 
28.     修复模板id为空可能导致的崩溃
29.     修复元对象在开启limitchild属性,位置改变后导致子对象无法正常刷新的bug
30.     完善联动窗口的zorder检测和调整算法
新的算法效率更高
 
31.     Hostwnd增加bottommost属性
该属性可以在xml里面静态配置
<bottommost>1<bottommost>
 
也可以通过hostwnd接口来动态设置:
Void SetBottomMost(bool isBottomost)
Bool GetBottomMost()
 
该属性开启后,窗口会自动置底,直到关闭属性,需要特别注意的是,该属性和topmost属性是互斥的,不可以同时设置,否则会失败并在日志版出现错误框提示
 
32.     修复直接设置资源值,但是某些情况没有解除资源事件的bug
bug修复涉及所有的资源类型
 
33.     规范、优化hostwnd的初始化流程
34.     强化同步窗口管理器的位置同步功能
之前的位置同步,只可以跟随目标窗口的左上角,本版本可以指定跟随目标窗口的四个角中的任意一个
使用方式如下:
 
self:AddSyncWnd(syncWnd:GetWndHandle(), {"position", positionmask={"left", "bottom"}}
 
可以使用positionmask来指定位置同步的跟踪坐标,水平方向可以指定 left,和  right,默认left;垂直方向可以指定top bottom,默认top
 
35.     修复Modalhostwnd在某些情况下使用输入法无法输入中文等非英文字符的bug
bug主要是由于进程是基于ansi而非unicode,并且提前注册了ansi版本的窗口类导致的,本版本对这种情况对进行特殊处理,确保输入法输入的符合字符可以正常显示
 
36.     强化图形库XL_ClipSubBindBitmap的参数检测
如果剪裁区域无效或者超出了位图的有效区域,那么会剪裁失败,返回NULL,避免返回错误值导致的崩溃
 
37.     修复SeqImageObjectGetGif无法返回的bug
之前版本由于内部实现上的问题,GetGif总是返回nil,本版本已经修复
 
38.     修复GDI文本绘制在某些情况下导致文本被截断的bug
 
39.     控件自定义事件功能扩展,返回值默认增加handledcallnext
这两个返回值是为了和内置事件保持一致,并且对事件有更强可控性而增加的。这两个返回值会附加在用户自定义返回基础上,不需要显式定义,并且完全兼容之前的版本。其中handled默认值是falsecallnext默认值是truehandled会作为最后一个返回值返回给事件触发者FireExtEvent,而callnext是事件管理器内部使用的,用以控制是否调用下一个事件监听者
 
40.     hostwnd的可接收HWND的相关接口功能扩展
hostwnd有很多接口可以接收一个hwnd参数,而很多时候用户传入的是hostwnd对象,从本版本起所有这种接口都做了修正,可以同时接收hwndhostwnd对象本身,内部会智能提取参数并转换
涉及到的接口有:
CreateSetParentDoModalSetPositionByWindowSetDragImageFromWindowAddSyncWndRemoveSyncWndBringWindowToFrontBringWindowToBackTrackPopupMenuAddMsgFilterCenter
 
41.     事件系统的RemoveListener功能扩展
可以指定cookie=-1,来移除对应事件中的所有listener
 
42.     修复hostwnd动态设置topmost可能失效的bug
43.     修复richeditobj在销毁时候,有可能重入导致的崩溃
44.     修复hostwnd在调整mask zorder时候,可能导致窗口置底的bug
45.     修复hostwnd的累积无效渲染区域,在有些情况下可能超出渲染闭包的bug
 
46.     XLFSIO不再对路径有@$符号限制
由于历史原因,@$做成了挂载机制的保留字,而如果xar路径里面存在@$符号的话,会导致xar加载失败。现在XLFSIO内部增加了路径智能分析方法,可以自动识别@$保留字,还是正常路径里面的符号,从而避免加载失败
 
47.     增加全局文本HOOK机制
hook机制可以用来做多语言,可以直接使用C接口,也可以使用对应的lua封装,有多语言需求的产品可以考虑使用
 
48.     修复EditObjectSetBknColor对颜色转换出错的bug
bug主要由于系统颜色colorref不支持alpha通道,从而导致在alpha值不为0的情况下,颜色显示不正常
 
49.     XLLuaRuntime.dll在日志版本增加严格检测机制
开启严格检测,可以及时排除不规范、不正确的lua使用(主要是lua封装),避免经常性的导致luaruntime的崩溃,这个会有详细的说明
 
50.     由于有些产品更换资源包的需求,XAR新增加IsResPackageExist接口,用来判断指定的资源包存不存在
接口原型如下:
bool IsResPackageExist(const char* resPackageID)
 
51.     ImageObject增加动态设置和获取Antialiaslua接口
接口原型如下:
void SetAntialias(int value)
int GetAntialias()
 
52.     SeqImageObject增加支持拉伸、反走样和对齐(ImageObject一致),增加对应的属性和lua接口
新增的属性和接口和ImageObject的相同,包括:
属性:drawmodehalignvalignhalign
接口:SetDrawModeGetDrawModeSetHAlignGetHAlignSetVAlignGetVAlignSetAntialiasGetAntialias
 
53.     ModalHostWndwin32下的窗口class统一修正为XLUEModalHostWnd
这个属于内部的细节,为了统一和方便辨识窗口是否为引擎的hostwnd。如果现在有产品依赖这个细节,需要注意下可能涉及到的问题。
 
54.     修复图形库一处mask可能导致的崩溃
55.     核心逻辑修正:规范并统一UIObject的移除逻辑
现在对象不管从对象树移除还是未绑定删除,都会遵循统一逻辑,对移除重入也做了更精细的判定。  原则上本改动是兼容之前的版本,但是毕竟是统一了一些小概率的逻辑分支,所以还是有可能出现少数不兼容,所以需要大家注意一下
 
56.     核心逻辑优化:优化资源查找体系,确保跨xar引用资源,资源事件挂接准确
对资源查找体系做了较大的调整,精简了代码。新的查找体系可以逆向追踪资源来源,确保可以挂接正确的资源事件
 
57.     资源解析在日志版强化错误提示
现在bitmaptexture等资源配置的一些历史悠久的错误会被提示出来了,各产品收到后需要进行相关修改
 
58.     XLUE增加XLUE_SetTextObjectDefaultTextType接口,用以指定TextObject的默认渲染后端
TextObject 默认使用freetype,通过此接口可以修改为gdi;该接口需要在引擎初始化时候调用
 
59.     强化光标策略:objecthostwnd在设置不同光标id后,会立即刷新系统光标
 
60.     MenuHostWnd启用自锁逻辑,避免在TrackPopupMenu过程中同步删除可能导致的崩溃
该崩溃会在TrackPopupMenu过程中,调用FinalClear接口强制清除导致出现,本版本已修正
 
61.     完善hostwndvisible同步策略
避免在OnCreate事件里面同步修改窗口visible后,可能导致实窗口无法同步的bug
 
62.     修正MaskObject大小改变后,mask区域可能无法更新的bug
 
63.     objtreetemplateobjecttemplate模版在解析过程中启用自锁和多重判断逻辑,避免事件重入可能导致的崩溃或者逻辑错误
 
64.     MaskObjectSetMaskPosition支持设置表达式
LayoutObjectSetObjPos一样,可以接收基于字符串的表达式和整型值了
 
65.     修复RectangleObject等对象,在使用所在位置矩形的右边线和下边线时候,刷新可能出错的bug
bug在迅雷8使用焦点虚线框时候,有极小概率会出现。
 
66.     修正旋转动画中心点选择不正确修正
67.     修正SetCentrePointModelua接口错误
68.     修复RichEditObjectviewrect大小为0时候,可能导致的崩溃
69.     修复LuaBitmap在绘制文本时候,格式设置无效的bug
70.     修复maskobjectSetMaskPositionGetMaskPosition的无法在lua正常调用的bug
71.     hostwnd的同步窗口管理器,在日志版强制开启重复窗口检测
也即是多次调用AddSyncWnd传入同一个hwnd,现在会弹出错误提示,方便检错
 
72.     修复图形库一处纹理绘制可能导致越界的bug
73.     修复统计系统一处对象计数bug
74.     xar增加AddResPackage接口,支持外挂资源包(426版本更新)
接口原型如下:
bool AddResPackage(string packageName, string packageFile)
packageName就是资源包的名字,这个可以使用xarSelectResPackage来加载;需要注意的是,如果指定名字的资源包已经在xar内置资源包里面存在,那么SelectResPackage会优先使用内置资源包
packageFile是外部资源包的完整路径,支持zip和文件夹两种形式
 
75.     respackage的名字默认使用load名字,而不是resource.cfg里面配置的名字
这也就意味这对于内置资源包,会使用资源包的文件名(zip格式)或者文件夹名(文件夹格式)
对于外挂资源包,会使用AddResPackage时候指定的名字
 
76.     核心改动:完善光标策略(432版本更新)
之前的光标策略在对象重叠情况下可能出先闪烁现象,新版本修正了策略,使其更完善,这个接下来会有详细的邮件说明
 
77.     实窗口对象的GetWindowBitmap增加print模式
该模式可以用以获取被遮盖住的窗口的图片,使用GetWindowBitmap({“print”})调用即可
 
78.     修复EditObject在绘制时候,覆盖背景的透明度的bug
79.     修复光标绘制可能导致的zorder错误
该错误可能导致光标所在兑现被覆盖,但是光标没有被覆盖和剪裁的错误;修正后策略是光标会跟随所属对象显示,包括zorder也保持一致
 
80.     bitmap创建增加最大大小检测,避免在错误参数情况下导致的内存溢出
版本历程:
1.1.0.332   >   1.1.0.340   >   1.2.0.382   >   1.2.0.386   >   1.2.0.436   >   1.5.0.468