- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For example, function
LINETOAREX
result = LINETOAREX (loc(fx), loc(fy), loc(tx) loc(ty), loc(C), loc(S), cnt)
fx | (Input) INTEGER(2). From x viewport coordinate array. |
fy | (Input) INTEGER(2). From y viewport coordinate array. |
tx | (Input) INTEGER(2). To x viewport coordinate array. |
ty | (Input) INTEGER(2). To y viewport coordinate array. |
C | (Input) INTEGER(4). Color array. |
S | (Input) INTEGER(4). Style array. |
cnt | (Input) INTEGER(4). Length of each coordinate array; also the length of the color array and style array. All of the arrays should be the same size. |
in file ifqwin.f90,
INTERFACE
INTEGER(2) FUNCTION LINETOAREX(PFX,PFY, PTX, PTY, PC, PS, COUNT)
!DEC$ ATTRIBUTES DEFAULT :: LINETOAREX
INTEGER(4) PFX,PFY, PTX, PTY, PC, PS, COUNT
!DEC$ ATTRIBUTES DECORATE, C, ALIAS:"_linetoarrayex" :: LINETOAREX
END FUNCTION
END INTERFACE
for x64, the red part is incorrect
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
OK LINETOAREX is an Intel creation it is not a thin wrapper to sdk graphic functions but one woudl assume under the lid it makes a series of sdk calls for some other C library.
There is a bug as the OP describes. The intel help show it passed with loc(var), the Intel interface does not reflect that. One can seen why despite being wrong it will still work. In X64 it will not down to the different address sizes. A throwback. Passing without loc will give an error as you will be passing arrays to a scaler so the compile will show and error (which you can set an option for it to ignore).
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
when PARALLEL implement, moveto and lineto together have to run asynchronously
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
see the call
result = LINETOAREX (loc(fx), loc(fy), loc(tx) loc(ty), loc(C), loc(S), cnt)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
the call usage is from the help document. when compilered , warning #6075: The data type of the actual argument does not match the definition. [LOC]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In Intel Visual Fortran Composer XE 2013 with Visual Studio 2008, it works fine in 32-bit and fails in 64-bit
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is very strange that the pragram can run successfully when compilered with optimization options on.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
OK LINETOAREX is an Intel creation it is not a thin wrapper to sdk graphic functions but one woudl assume under the lid it makes a series of sdk calls for some other C library.
There is a bug as the OP describes. The intel help show it passed with loc(var), the Intel interface does not reflect that. One can seen why despite being wrong it will still work. In X64 it will not down to the different address sizes. A throwback. Passing without loc will give an error as you will be passing arrays to a scaler so the compile will show and error (which you can set an option for it to ignore).

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page