L_SetMemoryThresholds

# include“l_bitmap.h”

L_LTKRN_APIL_INTL_SetMemoryThresholds (nTiledThreshold、nMaxConvSize nTileSize、nConvTiles nConvBuffers, uFlags);

设置位图分配的内存限制。

参数

L_INTnTiledThreshold

最少的空闲内存允许分配所需的常规的位图(默认0)。如果空闲内存的数量低于这个阈值,所有位图将作为平铺的分配。唯一的例外是当位图的大小小于瓷砖大小在这种情况下,位图将在常规内存分配。

值小于100是不允许的。

如果这个参数是:

将忽略此参数uFlags不包含MEM_TILEDTHRESHOLD。

L_SSIZE_TnMaxConvSize

传统的位图的最大大小(默认是0 x7fffffff)。尺寸比这个大的位图将作为平铺的分配。

如果这个参数是:

值小于100是不允许的。

如果uFlags这个参数是忽略不包含MEM_MAXCONVSIZE。

L_SSIZE_TnTileSize

瓷砖的尺寸为平铺的位图(默认值0),传递一个值小于nMaxConvSize

所有位图大小小于nTileSize将作为传统的分配。(平铺的位图的大小小于nTileSize只能由小瓦,相当于传统的位图)。

如果nTileSize是0,那么LEADTOOLS将挑选瓷砖的默认大小。(目前是16 mb)

瓷砖将小于这个值,并将一个完整的行数。没有行将瓷砖之间的分裂。

值小于0是不允许的。

如果uFlags这个参数是忽略不包含MEM_TILESIZE。

L_INTnConvTiles

这是使用平铺的图像时使用。它代表的最大瓦数,将驻留在常规内存。瓷砖不驻留在常规内存将磁盘上。(默认是100 =所有瓷砖都在内存中)

如果该值为:

值小于-100是不允许的。

将忽略此参数uFlags不包含MEM_CONVTILES。

L_INTnConvBuffers

这是用在处理磁盘的瓷砖瓷砖图像。它代表了传统的缓冲内存缓存磁盘的瓷砖。交换缓冲区将大大提高访问这些磁盘块。默认值为1(一个交换缓冲区将被用于缓存的磁盘块)。

该参数指定应该使用多少缓冲区:

是有用的有多个交换缓冲区,当你有一个算法,不断地上下读取数据。通常,在一个方向上读取数据(从上到下或从下到上)在这种情况下,一个交换缓冲区就足够了。同样,如果你只查看图像的某一部分,你可能会受益于有足够的交换缓冲区缓存图像的可见部分(或位图地区)。

缓冲区是动态的:当数据被读取/写入磁盘的瓷砖,创建一个缓存缓冲区(如果允许有足够的内存)。如果缓存缓冲区的位图的最大数量已经达到,最后使用缓存缓冲区瓷砖将被删除,用于新瓷砖。

L_UINTuFlags

标志的组合表明,阈值参数是有效的。旗帜只能或者艾德一起改变一些旗帜,或者你可以通过MEM_ALL改变所有的旗帜。可能的值是:

价值 意义
MEM_TILEDTHRESHOLD [0 x0001] nTiledThreshold是有效的。
MEM_MAXCONVSIZE [0 x0002] nMaxConvSize是有效的
MEM_TILESIZE [0 x0004] nTileSize是有效的
MEM_CONVTILES [0 x0008] nConvTiles是有效的
MEM_CONVBUFFERS [0 x0010] nConvBuffers是有效的。
MEM_ALL [0 x001f]所有参数是有效的。您不需要或与其他旗帜

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

这些都是全局设置,适用于当前线程。他们将适用于位图中创建这个线程调用这个函数。

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

L_INT SetMemoryThresholdsExample (L_VOID){L_INT nRet;/ *分配平铺的位图时75%以上的计算机内存,或位图大于100 mb。* /nRet = L_SetMemoryThresholds (-25, 100 * 1024 * 1024, 0, 0, 0, MEM_TILEDTHRESHOLD | MEM_MAXCONVSIZE);如果(nRet ! =成功)返回nRet;返回成功;}
LEADTOOLS光栅成像C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。