QISLIB Revision History
This page contains notes on the release history and revisions made to QISLIB.
QISLIB v2.94.1 Linux64 08/17/2016Builds Updated on Linux
Core components built on RHEL5 (some older still on RHEL4) Tested on RHEL5, 6 and 7.
QISLIB v2.94.1 Windows 64 08/10/2015Fix error 6 while opening large files
This version of QisLib fixes a bug that caused an error (code -6) while opening extremely large GDSII files.
QISLIB v2.91h Windows 64 02/06/2015More C# Sample Code
At the request of customers using C#, added C# sample code to illustrate the use of QSTOR and Get_Vector call back functions.
QISLIB v2.91f Windows 64 01/30/2015New C# Sample Code
At the request of customers using C#, added a sample calling application written in C# to illustrate how C# can be used to call QISLIB (which has a C/C++ based API) Applies to Windows version only.
QISLIB v2.91a Windows 64 08/23/2014New Windows Installer
New Windows installer which addresses frequent delay issues during installation caused by interaction with other open programs.
QISLIB v2.91 Windows 64 08/20/2014TiffExtract
Updated the TiffExtract GUI and source code example to add support for both GDSII and OASIS and to improve reports of file statistics.
QISLIB v2.852 Windows 64 and Linux 09/10/2013New Option: QisBoolOptions_SetPartUnion
The newly added setting: QisBoolOptions_SetPartUnion can be used to control:
a) If convexing is multi-threaded or not
b) If the thread partition lines are visible in the output data or not
This allows the client program to choose better performance at the cost of possibility of thin rectangles or cleaner output polygons at the cost of performance overhead.
Note: this only applies when the QISBool license is enabled.
QISLIB v2.851 W64 and Linux 09/9/2013Corrected a memory footprint bug
Fix for an increase in memory footprint which occurs after multiple runs of the functions UnionMT and BinaryMT.
New API Function: QisBoolOptions_SetPartDirectionControl
the client can now the direction of striping (butting edges) for functions: QisBool_UnionMT, QisBool_BinaryMT
+ void QisBoolOptions_SetPartDirectionControl(const double XToYRatio, void* BooleanHandle);
XToYRatio Ratio of Width of the input data set to the Height to be used as a threshold. As long as actual ratio for a specified input data set is less than this value; the input data set will be partitioned into a set of horizontal stripes stacked vertically. If the actual ratio is greater than the threshold, the data set will be partitioned into vertical stripes stacked horizontally. BooleanHandle QisBool instance handle.
To control the direction of Butting edges during Boolean Operations
Set Leonov Output Mode to
Use XToYRatio = 1000.0 for forced horizontal striping.
Use XToYRatio = 0.001 for forced vertical striping.
Default value is 1.5
Use before QisBool_UnionMT and QisBool_BinaryMT only.
QisBoolOptions_Reset will reset this setting to the default value of 1.5
When used alongside QisBoolOptions_SetLeonovOutput(eLEONOV_OUT_BUTTING, Handle) and Convexing (in-X or Full) the butting edges are going to be horizontal or vertical depending on the value of the ratio.
If the data set contains very long and narrow polygons in the same direction as the stripes, this could result in thinly-sliced (along the direction of the stripes) polygons.
QISLIB v2.85 Windows 64 08/28/2013QisBool Changes
A number of fixes and ehancements to the Boolean have been made.Bug Fix
a call to QisBoolOptions_Reset caused QisBool_UnionMT to run single-threaded. Fixed.Enhancement in Boolean
QisBoolOptions_SetConvexOutput + QisBool_UnionMT is now multi-threadedEnhancement in Boolean Throughput
Unless the user intentionally sets
Right angled corners for very small (less than 10 DBU) sizing values caused a crash in QisBool_UnionMTFor a scenario like (4) QisBoolOptions_SetRoundCorners MUST be called before QisBoolOptions_SetSizing and QisBoolOptions_SetSizingMode
These changes affect the QISLIB library functions (not the QISBool library functions)Bug Fix: Dropped Data
Very tiny geometries missing or dropped when the co-ordinates in DBU are close to sizeof(int)/ 2. This has been fixed.Enhancement in Built-In Rasterizer
For 64bit QISLIB, the built in rasterizer (QisLib_GetHiresImage) is now capable of generating bitmaps larger than 2GB
QISLIB v2.821 11/12/2012Update Linux Binaries
The binaries in this package were built with the following Linux environment:
GNU glibc 2.12
Linux Kernel 2.6.32-131.6.1.el6.x86_64
All the binaries in this package (including the utility and licensing programs) have been built as 64bit. We are no longer releasing 32 bit versions of QISLIB/QISBOOL.
QISLIB v2.82 10/22/2012More Instances Available
The QISBOOL simultaneous instance limit has been raised from 64 to 256.
QISLIB v2.81 4/23/2012New Function to Ignore Text Entities on Loading
A new function,
_QIS_ON load text data _QIS_OFF do not load text data
Must be called prior to QisLib_OpenGDSII or QisLib_OpenOASIS
Cell Extents Computation
Improved cell extents calculation for cells with paths along the cell's bounding box. The new extents calculation is more precise and takes into account the path width and path end cap.The extents would not be exact only in cases where a path vertex bends no-orthogonally and the vertex lies at the extents of the cell.File name with space(s)
QisLib_OpenOASIS now works correctly for file names (or paths) containing spaces. Previously, it returned an error code (-4).QISBOOL Convex Function
QisBool_UnionMT and QisBool_BinaryMT now support the QisBoolOptions_SetConvexOutput.
QISLIB v2.783 1/4/2012New Function QFract_SetFracture
Added a new function to the QFract API that allows the caller to control whether to fracture polygons or simply unionize them without fracturing.
void QFract_SetFracture(const int onOff); onOff 0 polygons are unionized but NOT fractured. onOff 1 polygons are fractured.
QISLIB v2.761 2/24/2011Windows Imcompatibility 64bit
This version of the library resolves an incompatibility between Win64 STL Iterators and Win32 which was responsible for a crash.
QISLIB v2.751 12/06/2010Linux Binary Update
The QisLib and Qfract 64 bit binaries have been compiled with GCC 3.4.6 on a workstation running RH 3.4.3-9.EL4 Kernel 2.6.9-5.ELsmp and work as expected in the environment.
QISLIB v2.75 11/29/2010Update Linux Binaries to include QFRACT
The latest QISLIB release for all Linux versions with QFRACT (trapezoid fracturing) support.
The 'runtimefiles' directory contains the qis and qfract libraries, while the 'includefiles' directory contains the qislib and qfract header files.
QISLIB v2.72 5/21/2010QISLIB Windows64 supports VS2008
The latest QISLIB release on Windows64 is compatible with VS2005 and VS2008.
QISLIB v2.72 4/7/2010Major Release
This is the most significant release since v2.61.Performance Enhancement
Earlier versions searched for structure references in the current window and disregarded the display filter settings. This meant that when showing the home view even references to cells too small to view were processed -- greatly slowing the search down.
QISLIB now takes into account display filter settings; much faster when the window is for a full view. GDSII and OASIS performance is equal.Compression Support
Opens GDSII files that are zipped or gzipped. (Does this actually do this directly or does it create a temporary uncompressed file on disk? Programmer's notes are not clear.)Ignore User Specified Cells on Open/Load
A new function,
Prior to this version, if reference markers (for display output) were turned on, then markers appeared both on each cell insertion point and on each text insertion point. Users requested that these be separately controllable.
Two new functions provide independent control.
QisLib_SetReferenceOnlyMarker(int onoff) onoff 1 reference markers will be turned on for cell references only. onoff 0 display of cell references depends on value of QisLib_SetReferenceMarker QisLib_SetTextMarker(int onoff) onoff 1 markers will be turned on for text only. onoff 0 the setting depends on QisLib_SetReferenceMarker.
The preexisting function,
Memory Usage Optimization
The memory footprint is now reduced to less than half of the previous versions. An average of 10% to 20% of the GDSII file size can be expected.
A new version of the load memory map, v1.03, is needed for this version. Older versions of load memory maps will not be used and will be recreated with a new version.
Delete and UnDelete Vector Error Fixed
Previous versions would not return an error code of -3 as documented when
To clarify, the user can only Delete and UnDelete vector data when the entire database has been loaded into memory - not when the entity database is left on disk. Prior to this version the user did not get the appropriate error message when attempting to delete/undelete while entity was on disk.Bug Fix: OASIS Array References Missing Data
A bug in processing OASIS array references (number of rows and columns were reversed) resulted in dropped data. This has been fixed.
QISLIB v2.69 Linux 2/11/2010Bug Fix: Drawing Crash
Fixed a bug causing the drawing to crash when the file is loaded into memory. Observed on RHE3 Linux 32.
QISLIB v2.68 Linux1/29/2010Major Memory Usage Optimization
Old Function Call
int return = QisLib_InitLib(programDir, . . .);
New Function Call
int return = QisLib_InitLib(programPath, . . .);
If this change is not reflected in your QisLib client program's source code, you will get a license error (-3).
QISLIB v2.641 Windows 32bit VS6.0 and Windows 64bit VS 2005 (4/9/2009)
The new QIS Library version is v184.108.40.206 (Apr 03, 2009).
The QIS Library API has not changed since the last release v220.127.116.11 except for some new functions added to it in light of our work with OpenAccess, KLA Care Area Wizard and the QckPlugin API. Therefore, existing QIS Library customers should not have any issues using the new library.
The current QIS Library on Windows is now coherent with it's UNIX/Linux version that it being employed in Qckvu3.
Open_OASIS bug on Windows64 has now been fixed. QIS Library can open oasis files without any crashes.
The GDSII extraction bug has been fixed. Previously extracted GDSII files contained multiple copies of each polygon.
QISLIB v2.61 Windows XP64 (2/14/2008)Windows XP 64 bit support
QISLIB for XP64 bit is now available. This version will handle multiGB files, something the 32 bit version is not able to do.
QISLIB v2.61 (10/12/2007)Faster OpenGDSII
Faster OpenGDSII for small GDSII file without any penalty for larger GDSII files.
The new QisLib product number has changed and hence none of these will work with the old licenses.
New licenses will have to be shipped with these packages.
This package is single threaded. Special wrappers are needed for multi threading operation.
Small memory leak caused the program to crash after thousands of open GDSII file. This has been fixed.
QISLIB v2.602 (07/24/2007)New PDF manual
This package includes a complete and easy-to-use PDF Documentation.
This package includes four demo programs that the user can build on their own machine. These demo programs
illustrate some of the basic and most important functionalities of the QIS Library.
This package fixes the issues that our Windows customers reported.
QISLIB v2.60 (06/14/2007)New Function - QisLib_SetProcessEvents
While QIS is busy doing something (e.g. opening a file, drawing, getting
vectors, saving to a file, etc.), QIS would process any events for the
program so the program will be responsive to user input. e.g. User
clicking stop during a redraw.
To open GDSII scan and dbload memory maps directly without the original GDSII file.New Function - QisLib_SetDrawWindowID
Use this function to give QIS the program's drawing area and QIS would
draw directly to this drawing area when the Redraw or ZoomHome function
New callback mechanism to report asynchronous security errors and allow the user to handle them appropriately.New Function Parameter - QisLib_InitLib
Redraw and ZoomHome have a ClearScreen parameter to control whether
QIS would clear the screen before redraw or not. This parameter is
only used if SetDrawWindowID is on.
The behavior of various functions including OpenGDSII, OpenOASIS and OpenMemoryMaps has been changed while a file open is already in progress. Calling these functions while a file open is in progress would do nothing, an error code would be returned to indicate this situation.Invalid pImageSize Returned for Redraw and ZoomHome
Previous versions of QIS would return a wrong pImageSize when the Redraw or ZoomHome functions are called, thus the program might use invalid bytes in the ImageBuffer and get a wrong image. This has been fixed.
QISLIB v2.60beta1 (03/26/2007)USB Key support
This version supports USB Key licensing.Opening and Saving File Progress Function
Opening and Saving File Progress Function - QisLib_SetProgressMessageCallback.
0, no error -3, license error -4, colfill.pat is missing from the program's directory -5, out of system resource, fill pattern bitmaps cannot be created (Windows only) -6, gdsfont.shx is missing from the program's directory To get a detail error message, call QisLib_GetErrorMsgQFract v1.00 - Trapezoid fracture
First complete release of QFract. This version of QFract output polygons are all trapezoids.QFract_Init Function Returns Different Codes and Error Messages
QFract_Init now returns 0 for success, -1 for internal database error, -2 for licensing error. In the case of -2, QisLib_GetErrorMsg can be called to get the detail error message for the licensing error.QFract_GetFracture Function Returns Different Codes and Error Messages
0 no error -1 license db error -2 license error, QisLib_GetErrorMsg can be called to get the detail error message for the licensing error -3 data collection memory error -4 data collection error -5 error/warning, there are open, illegal or unfractured polygons QFract_GetErrorCoords can be called to get the coordinates and layer:datatype of the error verticesNew Fracturing Error Function - QFract_GetErrorCoords
While fracturing, when there are illegal polygons (e.g. self intersecting),
open polygons or polygons that cannot be fractured, in the specified
window area, previous version of QFract would stop the fracturing and
return an error with no detail information.
Added QFract_GetVersion to get a version and date string. QFract version is separate from QIS version.
QISLIB v2.60Alpha2 (03/16/2007)First Windows DLL version
This is the first release of the Windows QIS library software. Here are a few preliminary release notes:
ARTWORK CONVERSION SOFTWARE, INC. Company Profile
417 Ingalls St., Santa Cruz, CA 95060 Tel (831) 426-6163 Fax 426-2824 email: firstname.lastname@example.org