From: <and...@us...> - 2008-09-09 13:50:05
|
Revision: 8761 http://plplot.svn.sourceforge.net/plplot/?rev=8761&view=rev Author: andrewross Date: 2008-09-09 13:50:14 +0000 (Tue, 09 Sep 2008) Log Message: ----------- Add PLDLLIMPEXP macro to drivers.h Fix function in plplotP.h which requires exporting for some drivers. Fix duplicate definition of USINGPLDLL in tclAPI.c Modified Paths: -------------- trunk/bindings/tcl/tclAPI.c trunk/include/drivers.h trunk/include/plplotP.h Modified: trunk/bindings/tcl/tclAPI.c =================================================================== --- trunk/bindings/tcl/tclAPI.c 2008-09-09 12:51:18 UTC (rev 8760) +++ trunk/bindings/tcl/tclAPI.c 2008-09-09 13:50:14 UTC (rev 8761) @@ -31,7 +31,6 @@ driver, in principle. */ -#define USINGPLDLL #include "plplotP.h" #include "pltcl.h" #ifndef __WIN32__ Modified: trunk/include/drivers.h =================================================================== --- trunk/include/drivers.h 2008-09-09 12:51:18 UTC (rev 8760) +++ trunk/include/drivers.h 2008-09-09 13:50:14 UTC (rev 8761) @@ -34,68 +34,68 @@ extern "C" { #endif -void plD_dispatch_init_mac8 ( PLDispatchTable *pdt ); -void plD_dispatch_init_mac1 ( PLDispatchTable *pdt ); -void plD_dispatch_init_aqt ( PLDispatchTable *pdt ); -void plD_dispatch_init_nx ( PLDispatchTable *pdt ); -void plD_dispatch_init_os2 ( PLDispatchTable *pdt ); -void plD_dispatch_init_xw ( PLDispatchTable *pdt ); -void plD_dispatch_init_gcw ( PLDispatchTable *pdt ); -void plD_dispatch_init_gnome ( PLDispatchTable *pdt ); -void plD_dispatch_init_tk ( PLDispatchTable *pdt ); -void plD_dispatch_init_vga ( PLDispatchTable *pdt ); -void plD_dispatch_init_mgr ( PLDispatchTable *pdt ); -void plD_dispatch_init_win3 ( PLDispatchTable *pdt ); -void plD_dispatch_init_vga ( PLDispatchTable *pdt ); -void plD_dispatch_init_vga ( PLDispatchTable *pdt ); -void plD_dispatch_init_vga ( PLDispatchTable *pdt ); -void plD_dispatch_init_tiff ( PLDispatchTable *pdt ); -void plD_dispatch_init_jpg ( PLDispatchTable *pdt ); -void plD_dispatch_init_jpeg ( PLDispatchTable *pdt ); -void plD_dispatch_init_bmp ( PLDispatchTable *pdt ); -void plD_dispatch_init_vga ( PLDispatchTable *pdt ); -void plD_dispatch_init_xterm ( PLDispatchTable *pdt ); -void plD_dispatch_init_tekt ( PLDispatchTable *pdt ); -void plD_dispatch_init_tek4107t ( PLDispatchTable *pdt ); -void plD_dispatch_init_mskermit ( PLDispatchTable *pdt ); -void plD_dispatch_init_versaterm( PLDispatchTable *pdt ); -void plD_dispatch_init_vlt ( PLDispatchTable *pdt ); -void plD_dispatch_init_conex ( PLDispatchTable *pdt ); -void plD_dispatch_init_dg ( PLDispatchTable *pdt ); -void plD_dispatch_init_plm ( PLDispatchTable *pdt ); -void plD_dispatch_init_tekf ( PLDispatchTable *pdt ); -void plD_dispatch_init_tek4107f ( PLDispatchTable *pdt ); -void plD_dispatch_init_psm ( PLDispatchTable *pdt ); -void plD_dispatch_init_psc ( PLDispatchTable *pdt ); -void plD_dispatch_init_xfig ( PLDispatchTable *pdt ); -void plD_dispatch_init_ljiip ( PLDispatchTable *pdt ); -void plD_dispatch_init_ljii ( PLDispatchTable *pdt ); -void plD_dispatch_init_hp7470 ( PLDispatchTable *pdt ); -void plD_dispatch_init_hp7580 ( PLDispatchTable *pdt ); -void plD_dispatch_init_hpgl ( PLDispatchTable *pdt ); -void plD_dispatch_init_imp ( PLDispatchTable *pdt ); -void plD_dispatch_init_pbm ( PLDispatchTable *pdt ); -void plD_dispatch_init_png ( PLDispatchTable *pdt ); -void plD_dispatch_init_gif ( PLDispatchTable *pdt ); -void plD_dispatch_init_cgm ( PLDispatchTable *pdt ); -void plD_dispatch_init_null ( PLDispatchTable *pdt ); -void plD_dispatch_init_tkwin ( PLDispatchTable *pdt ); -void plD_dispatch_init_pstex ( PLDispatchTable *pdt ); -void plD_dispatch_init_psttfc ( PLDispatchTable *pdt ); -void plD_dispatch_init_psttfm ( PLDispatchTable *pdt ); -void plD_dispatch_init_ntk ( PLDispatchTable *pdt ); -void plD_dispatch_init_mem ( PLDispatchTable *pdt ); -void plD_dispatch_init_wingcc ( PLDispatchTable *pdt ); -void plD_dispatch_init_wxwidgets ( PLDispatchTable *pdt ); -void plD_dispatch_init_svg ( PLDispatchTable *pdt ); -void plD_dispatch_init_pdf ( PLDispatchTable *pdt ); -void plD_dispatch_init_xcairo ( PLDispatchTable *pdt ); -void plD_dispatch_init_pdfcairo ( PLDispatchTable *pdt ); -void plD_dispatch_init_pscairo ( PLDispatchTable *pdt ); -void plD_dispatch_init_svgcairo ( PLDispatchTable *pdt ); -void plD_dispatch_init_pngcairo ( PLDispatchTable *pdt ); -void plD_dispatch_init_memcairo ( PLDispatchTable *pdt ); -void plD_dispatch_init_extcairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_mac8 ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_mac1 ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_aqt ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_nx ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_os2 ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_xw ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_gcw ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_gnome ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tk ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_vga ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_mgr ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_win3 ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_vga ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_vga ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_vga ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tiff ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_jpg ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_jpeg ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_bmp ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_vga ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_xterm ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tekt ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tek4107t ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_mskermit ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_versaterm( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_vlt ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_conex ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_dg ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_plm ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tekf ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tek4107f ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_psm ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_psc ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_xfig ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_ljiip ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_ljii ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_hp7470 ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_hp7580 ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_hpgl ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_imp ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_pbm ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_png ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_gif ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_cgm ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_null ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_tkwin ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_pstex ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_psttfc ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_psttfm ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_ntk ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_mem ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_wingcc ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_wxwidgets ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_svg ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_pdf ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_xcairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_pdfcairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_pscairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_svgcairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_pngcairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_memcairo ( PLDispatchTable *pdt ); +PLDLLIMPEXP void plD_dispatch_init_extcairo ( PLDispatchTable *pdt ); /* Prototypes for plot buffer calls. */ Modified: trunk/include/plplotP.h =================================================================== --- trunk/include/plplotP.h 2008-09-09 12:51:18 UTC (rev 8760) +++ trunk/include/plplotP.h 2008-09-09 13:50:14 UTC (rev 8761) @@ -870,7 +870,7 @@ /* Returns the rotation and shear angle and stride from a plplot transformation matrix */ -void +PLDLLIMPEXP void plRotationShear(PLFLT *xFormMatrix, PLFLT *rotation, PLFLT *shear, PLFLT *stride); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-09-10 06:54:44
|
Revision: 8762 http://plplot.svn.sourceforge.net/plplot/?rev=8762&view=rev Author: jbauck Date: 2008-09-10 06:54:55 +0000 (Wed, 10 Sep 2008) Log Message: ----------- Miscellaneous small changes to Ada stuff. Modified Paths: -------------- trunk/bindings/ada/plplot.adb.cmake trunk/bindings/ada/plplot.ads.cmake trunk/bindings/ada/plplot_traditional.adb.cmake trunk/bindings/ada/plplot_traditional.ads.cmake trunk/examples/ada/x21a.adb.cmake trunk/examples/ada/xthick21a.adb.cmake Modified: trunk/bindings/ada/plplot.adb.cmake =================================================================== --- trunk/bindings/ada/plplot.adb.cmake 2008-09-09 13:50:14 UTC (rev 8761) +++ trunk/bindings/ada/plplot.adb.cmake 2008-09-10 06:54:55 UTC (rev 8762) @@ -54,22 +54,22 @@ -- When asked to draw white lines on black background, do it. -- This is the default. - procedure Draw_White_On_Black is + procedure Draw_On_Black is begin Set_One_Color_Map_0(Black, 0, 0 , 0); Set_One_Color_Map_0(White, 255, 255, 255); - end Draw_White_On_Black; + end Draw_On_Black; -- When asked to draw black lines on white background, reverse black and white. -- This might look better on anti-aliased displays. -- fix this Darken some colors which have low contrast on white background, e.g. Yellow. -- fix this Make a version that draws on white and converts _all_ colors to black for publications. - procedure Draw_Black_On_White is + procedure Draw_On_White is begin Set_One_Color_Map_0(Black, 255, 255, 255); Set_One_Color_Map_0(White, 0, 0, 0); - end Draw_Black_On_White; + end Draw_On_White; -- Set default pen width. Docs don't say, so I'll make it 1. Modified: trunk/bindings/ada/plplot.ads.cmake =================================================================== --- trunk/bindings/ada/plplot.ads.cmake 2008-09-09 13:50:14 UTC (rev 8761) +++ trunk/bindings/ada/plplot.ads.cmake 2008-09-10 06:54:55 UTC (rev 8762) @@ -322,12 +322,12 @@ -- When asked to draw white lines on black background, do it. -- This is the default. - procedure Draw_White_On_Black; + procedure Draw_On_Black; -- When asked to draw black lines on white background, reverse black and white. -- This might look better on anti-aliased displays. - procedure Draw_Black_On_White; + procedure Draw_On_White; -- Plotter for up to five x-y pairs and settable axis style, plot @@ -719,7 +719,6 @@ -- Draws a contour plot from data in f(nx,ny). Is just a front-end to plfcont, -- with a particular choice for f2eval and f2eval_data. - -- plcont procedure Contour_Plot (z : Real_Matrix; Modified: trunk/bindings/ada/plplot_traditional.adb.cmake =================================================================== --- trunk/bindings/ada/plplot_traditional.adb.cmake 2008-09-09 13:50:14 UTC (rev 8761) +++ trunk/bindings/ada/plplot_traditional.adb.cmake 2008-09-10 06:54:55 UTC (rev 8762) @@ -53,22 +53,22 @@ -- When asked to draw white lines on black background, do it. -- This is the default. - procedure Draw_White_On_Black is + procedure Draw_On_Black is begin plscol0(Black, 0, 0 , 0); plscol0(White, 255, 255, 255); - end Draw_White_On_Black; + end Draw_On_Black; -- When asked to draw black lines on white background, reverse black and white. -- This might look better on anti-aliased displays. -- fix this Darken some colors which have low contrast on white background, e.g. Yellow. -- fix this Make a version that draws on white and converts _all_ colors to black for publications. - procedure Draw_Black_On_White is + procedure Draw_On_White is begin plscol0(Black, 255, 255, 255); plscol0(White, 0, 0, 0); - end Draw_Black_On_White; + end Draw_On_White; -- Set default pen width. Docs don't say, so I'll make it 1. Modified: trunk/bindings/ada/plplot_traditional.ads.cmake =================================================================== --- trunk/bindings/ada/plplot_traditional.ads.cmake 2008-09-09 13:50:14 UTC (rev 8761) +++ trunk/bindings/ada/plplot_traditional.ads.cmake 2008-09-10 06:54:55 UTC (rev 8762) @@ -321,12 +321,12 @@ -- When asked to draw white lines on black background, do it. -- This is the default. - procedure Draw_White_On_Black; + procedure Draw_On_Black; -- When asked to draw black lines on white background, reverse black and white. -- This might look better on anti-aliased displays. - procedure Draw_Black_On_White; + procedure Draw_On_White; -- Plotter for up to five x-y pairs and settable axis style, plot @@ -704,7 +704,6 @@ -- Draws a contour plot from data in f(nx,ny). Is just a front-end to plfcont, -- with a particular choice for f2eval and f2eval_data. - -- plcont procedure plcont (z : Real_Matrix; Modified: trunk/examples/ada/x21a.adb.cmake =================================================================== --- trunk/examples/ada/x21a.adb.cmake 2008-09-09 13:50:14 UTC (rev 8761) +++ trunk/examples/ada/x21a.adb.cmake 2008-09-10 06:54:55 UTC (rev 8762) @@ -20,14 +20,10 @@ -- along with PLplot; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --- Ada note: This example relies on a random number generator go make up some --- data so there is no possibility of getting exact agreement at the Postscript --- level with the C example as has been the standard in other examples. --- Therefore, a couple of shortcuts have been used such as not actually using --- the times reported by the calls to a clock which are then (in the C example) --- used to create some labels (the time differences are all 0 ms anyway). --- Also, there is some sort of edge effect anomlies in the Cubic Spline --- Approximation plots. +-- Ada note: This example originally used Ada's random number generator, but in +-- order to make Postscript results that are identical to the C version, a +-- PLplot-specific random number generator was substituted. The original Ada +-- generator lines are left in as comments for reference. with Ada.Numerics, @@ -36,7 +32,6 @@ Ada.Strings, Ada.Strings.Fixed, Ada.Calendar, - GNAT.Calendar.Time_IO, System, PLplot_Traditional, PLplot_Auxiliary; Modified: trunk/examples/ada/xthick21a.adb.cmake =================================================================== --- trunk/examples/ada/xthick21a.adb.cmake 2008-09-09 13:50:14 UTC (rev 8761) +++ trunk/examples/ada/xthick21a.adb.cmake 2008-09-10 06:54:55 UTC (rev 8762) @@ -20,14 +20,10 @@ -- along with PLplot; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --- Ada note: This example relies on a random number generator go make up some --- data so there is no possibility of getting exact agreement at the Postscript --- level with the C example as has been the standard in other examples. --- Therefore, a couple of shortcuts have been used such as not actually using --- the times reported by the calls to a clock which are then (in the C example) --- used to create some labels (the time differences are all 0 ms anyway). --- Also, there is some sort of edge effect anomlies in the Cubic Spline --- Approximation plots. +-- Ada note: This example originally used Ada's random number generator, but in +-- order to make Postscript results that are identical to the C version, a +-- PLplot-specific random number generator was substituted. The original Ada +-- generator lines are left in as comments for reference. with Ada.Numerics, @@ -36,7 +32,6 @@ Ada.Strings, Ada.Strings.Fixed, Ada.Calendar, - GNAT.Calendar.Time_IO, System, PLplot, PLplot_Auxiliary; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-09-10 07:23:58
|
Revision: 8763 http://plplot.svn.sourceforge.net/plplot/?rev=8763&view=rev Author: jbauck Date: 2008-09-10 07:24:07 +0000 (Wed, 10 Sep 2008) Log Message: ----------- Add documentation for the Ada bindings. Added Paths: ----------- trunk/bindings/ada/README trunk/bindings/ada/README.pdf trunk/bindings/ada/README.rtf trunk/doc/docbook/src/ada.xml Added: trunk/bindings/ada/README =================================================================== --- trunk/bindings/ada/README (rev 0) +++ trunk/bindings/ada/README 2008-09-10 07:24:07 UTC (rev 8763) @@ -0,0 +1,653 @@ +Ada Bindings for the PLplot Plotting Package + +1 About the This Document + This document describes the Ada bindings to the PLplot + technical plotting software, how to obtain the necessary software + components, and how to use them together. +2 Overview + The Ada bindings for PLplot provide a way for Ada programmers + to access the powerful PLplot technical plotting facilities directly + from Ada programs while working completely in Ada—the Ada programmer + never needs to know or worry that PLplot itself is written in another + language. + There are a thin binding and two thick bindings provided. The + thin binding presents the application programming interface (API) in + a form very similar to the C API, although in 100% Ada. The thick + bindings present the API in a form to which Ada programmers will be + more accustomed and add some ease-of-use features. It is expected + that the thick bindings will be preferred. +3 About PLplot + PLplot is a general purpose technical plotting package that + can be accessed directly by the user's own program without first + writing the data to be plotted to disk. The package is marked by + speed, convenience, breadth, and flexibility. + The PLplot project is one of the most active on SourceForge, + typically in the 99th percentile for activity. + The following is taken from the PLplot web site at + plplot.sourceforge.net <http://plplot.sourceforge.net/>: + "PLplot is a library of functions that are useful for making + scientific plots. + "PLplot can be used from within compiled languages such as C, + C++, FORTRAN and Java, and interactively from interpreted languages + such as Octave, Python, Perl and Tcl. + "The PLplot library can be used to create standard x-y plots, + semilog plots, log-log plots, contour plots, 3D surface plots, mesh + plots, bar charts and pie charts. Multiple graphs (of the same or + different sizes) may be placed on a single page with multiple lines + in each graph. + "A variety of output file devices such as Postscript, png, + jpeg and others, as well as interactive devices such as xwin, tk, + xterm and Tektronics devices are supported. New devices can be easily + added by writing a small number of device dependent routines. + "There are almost 2000 characters in the extended character + set. This includes four different fonts, the Greek alphabet and a + host of mathematical, musical, and other symbols. Some devices + supports its own way of dealing with text, such as the Postscript + driver, or the png and jpeg drivers that uses the Freetype library." +4 The Bindings + The bindings are a re-expression and extension of the + C-language API and as such are a kind of abstract layer between the + user's code and the PLplot binary library. Additionally, there are a + few capabilities not in the official API but nonetheless which are + available to the C programmer which are included in the bindings and + thus are directly available to the Ada programmer. + The thin binding is a layer between the thick bindings and + the underlying C code. It is mainly a programming convenience for the + developer of the bindings; this is a common implementation for + foreign language bindings and for the most part, the user can ignore + it. + There are two thick bindings provided for the convenience of + the user. Either may be used and they both provide exactly the same + functionality. The thick bindings are the user's main concern with + programming for PLplot. + 4.1 Thin Binding + The thin binding, in the files plplotthin.ads and + plplotthin.adb, is mostly a direct and obvious mapping of the + C application programming interface (API) to Ada. Thus, for + example, where a C program such as plcol0 requires a single + integer argument, there is a corresponding Ada program also + called plcol0 which also requires a single integer argument. + (plcol0 happens to set the drawing color using a number which + is associated with a set of colors.) Various constants from + the C API are also included here. Numeric types as defined in + PLplot are associated with numeric types in Ada in the thin + binding by use of Ada's type system. Thus, the thin binding + refers to the PLplot-centric type PLFLT for floating-point + types while the thick binding uses the usual Ada type + Long_Float. + Many of the comments from the C source header file + (similar in purpose to an Ada specification file) have been + retained in the thin binding, even when they are no longer + sensical. These might be pruned at some point to facilitate + reading the Ada source. + Also included in the thin binding are some other + declarations which help the Ada binding to mesh well with C + by emulating certain data structures which are needed in some + rather specialized usages as well as providing certain + subprogram pointer types. + The Ada programmer working with either of the thick + bindings will have to refer to the thin binding relatively + rarely, if ever, and mainly to examine the subroutine pointer + declarations and the several variant record types which are + used mostly for contour and three-dimensional plots. However, + some of these have been subtype-ed or renames-ed in the thick + bindings so even less reference to the thin binding will be + necessary. The goal is to put everything of interest to the + user in the thick bindings and the user need not with the + thin binding. + 4.2 The Thick Bindings + The thick bindings provide most of the information + that the Ada programmer needs. Normally, only one of the two + thick bindings would be used per user program but it should + be possible to include both but that scenario would be + unusual. + There are three main aspects of the thick bindings: + providing an alternative access to the PLplot API, extending + the PLplot functionality with some easy-to-use features, and + overlaying Ada data structures and types. + In the first aspect, the thick bindings provide a + fully Ada interface to the entire PLplot library. Packages + are with-ed and use-d as normal Ada code. Ada arrays can be + passed as usual, not requiring the array length or start or + end indices to be passed separately. All necessary Ada types + are made to match the underlying C types exactly. + The second aspect of the thick bindings is to provide + some simplified ways to get a lot of plotting done with only + one or two subroutine calls. For example, a single call to + Simple_Plot can display from one to five "y's" as a function + of a single "x" with default plot appearances chosen to suit + many situations. Other simple plotters are available for + three-dimensional and contour plots. Manipulating PLplot's + colors is similarly made easy and some default color schemes + are provided. + The third main aspect of the thick binding is to use + Ada data structures and Ada's type system extensively to + reduce the chances of inappropriate actions. For example, Ada + arrays are used throughout (as opposed to C's + pointer-plus-offset-while-carrying-along-the-size-separately + approach). Quantities which have natural range limits are + subtype-d to reflect those constraints. The hope is that + program errors will result in more-familiar Ada compilation + or run-time errors rather than error reports from the PLplot + library or no reports at all. However, there remain a few + instances where the typing could be improved and PLplot + errors will still be reported from time to time. + Both the specification and body for the standard + thick (and thin) binding contain the C subroutine name as a + comment line immediately above the Ada procedure declaration; + this should help in making the associations between "Ada" + names and "PLplot" names. Also, the subroutine-specific + comments from the C API have been retained verbatim. + 4.3 Standard Thick Binding Using Enhanced Names + The distinguishing feature of this thick binding (the + "standard" binding) is to provide more descriptive names for + PLplot subroutines, variables, constants, arguments, and + other objects. Most Ada programmers will be more comfortable + using these names. For example, in the C API as well as the + thin Ada binding and the other thick Ada binding, the + procedure plcol0(1) sets the drawing color to red. In the + standard thick binding, the same thing is accomplished by + writing Set_Color(Red). The Ada program may just as well + write Set_Color(1) since the binding merely sets a constant + Red to be equal to the integer 1. Many such numeric constants + from the C API are given names in this thick binding. These + renamed integers are discussed more fully in Section 7.2. + The disadvantage of this renaming is that it makes + referring to the PLplot documentation somewhat awkward. There + might be, at some time, a utility for easing this problem by + providing an HTML file with links so that a "normal" PLplot + name can be linked to the "Ada" name along with the + appropriate entry in the Ada specification, as well as + another HTML file with links from the "Ada" name directly to + the PLplot web page that documents that name. It might also + be possible to provide an alternate version of the + documentation with the enhanced names used. (The developer of + the bindings has a sed file prepared which makes most of the + subroutine-name substitutions.) However, this thick binding + retains the original C subprogram names as comments + immediately above the function or procedure name in the code + listing so it is relatively easy to locate the relevant item + in the PLplot documentation. + One simple rule applies in reading the PLplot API + documentation: the argument names are in the same order in + Ada as in the PLplot documentation (the names are different) + except that all array lengths are eliminated. The PLplot + documentation, for each subroutine, shows a "redacted" + version which should be correct for Ada as well as other + languages which have proper arrays. + The standard bindings are in the Ada files plplot.ads + and plplot.adb. + 4.4 Thick Binding Using Traditional Names + This thick binding provides exactly the same + functionality as the standard thick binding but retains the + original names as used in the C code and the PLplot + documentation. + The traditional bindings are in the Ada files + plplot_traditional.ads and plplot_traditional.adb. + 4.5 Examples + An important part of the Ada bindings is the examples, + some 30 of which demonstrate how to use many of the features of + the PLplot package. These examples also serve as a testbed for + the bindings in Ada and other languages by checking the + Postscript files that are generated by each example against those + generated by the C versions. These examples have been completely + re-written in Ada (but retain a C flavor in the names that are + given to objects). All of the Ada examples generate exactly the + same Postscript as the C versions, Examples 14 and 17 excepted + since those operate interactively and don't (normally) make + Postscript. Two versions of each example are available, one + calling the standard binding and the other the traditional + binding. (In development, a sed script does almost all of the + conversion automatically.) +5 Obtaining the Software + There are three software components that you will need: an + Ada compiler, the PLplot library, and the Ada bindings. + 5.1 Obtaining an Ada compiler + You will need an Ada compiler in order to use the Ada + PLplot bindings. There are several compilers available. Here, + we will focus on the free, open source compiler that is + included with the GNU Compiler Collection, (gcc) which is at + the center of much of the open source software movement. The + gcc Ada compiler is known as GNAT, for GNU NYU Ada + Translator, where NYU stands for New York University. + (Although GNAT was originally developed at NYU, it has for + many years been developed and supported commercially by + AdaCore with academic and pro versions available.) + Your computer may already have GNAT installed, or you + can download it from gcc.gnu.org <http://gcc.gnu.org/>. + Another route to obtaining GNAT is from the AdaCore page, + libre2.adacore.com <https://libre2.adacore.com/>. There are + versions for many operating systems and processors including + Apple's OS X or its open source version Darwin, Linux, and + Windows. The gcc and AdaCore versions differ in their + licenses. Download the version that you need and follow the + installation instructions. + 5.2 Download and install PLplot + PLplot can be downloaded from the PLplot home page at + sourceforge.net—plplot + <http://sourceforge.net/projects/plplot>. Follow the + installation instructions after downloading. The installation + process is more involved than other open source software and + requires that your computer has cmake installed. OS X users + can try installing PLplot in its entirety from MacPorts but + that activity is not officially supported by the PLplot + developers. The advantage of using MacPorts is that all + installation dependencies are automatically installed for you. + 5.3 Download the Ada bindings to PLplot + The third major software component is the bindings + themselves. Since they are currently included with the PLplot + software itself, there is no need to download them from + another place. + The bindings themselves are six Ada source files + named (using GNAT filename extensions) plplot.ads, + plplot.adb, plplot_traditional.ads, plplot_traditional.adb, + plplothin.ads, plplotthin.adb. There are two additional + files, plplot_auxiliary.ads and plplot_auxililary.adb which + will be discussed later, in Section 9. These can be stored + somewhere on your system's search paths for easy access. +6 How to use the Ada bindings + 6.1 Ada 95 versus Ada 2005 + The bindings will work for either Ada 95 or Ada 2005. + The only difference that concerns PLplot users is that Ada + 2005, in Annex G.3, provides declarations for real-valued + vectors and matrices (along with some other functionality). + These declarations make available type Real_Vector and type + Real_Matrix. + The installation process for PLplot requires you to + select Ada 95 or Ada 2005. After that, the correct bindings + are generated automatically depending on your choice. The + differences are very minor: If Ada 2005, the type + declarations provided according to Annex G.3 are used; if Ada + 95, similar type declarations are provided. For the most + part, you don't need to think about this much. However, see + Section 9, Compilation Notes, if you are using Ada 95 and + need to declare vectors or matrices. The design goal in + either case is to encourage users to use Real_Vector and + Real_Matrix since these are the "official" versions of these + entities as of Ada 2005. Someone using objects based on these + type definitions in Ada 95 in their PLplot programs should + expect their programs to work without modification if they + should switch to Ada 2005. + 6.2 GNAT versus non-GNAT + The bindings were made using the GNAT compiler and + there is a slight dependence on that compiler. Specifically, + the Unrestricted_Access attribute of GNAT was used in making + the function Matrix_To_Pointers in plplotthin.adb and in a + few callbacks. Matrix_To_Pointers is called whenever an Ada + matrix (2D array) is passed to a PLplot subroutine. For more + about Unrestricted_Access attribute, see Implementation + Defined Attributes in the GNAT Reference Manual. This + dependency shouldn't be difficult to remove by either + incorporating the GNAT code which implements it, by following + the TO-DO comment near the function definition in + plplotthin.adb, or by providing the proper aliasing. + Another GNAT dependency is used to parse command line + arguments in a C-like way. + Most of the GNAT dependencies can be found by + searching the source code for "GNAT" and + "Unrestricted_Access." + The GNAT dependence, though slight, will no doubt + frustrate users of other Ada compilers. We welcome comments + from those users, especially comments with specific + suggestions on how to remove any GNAT-specific usages. + 6.3 Sample command line project + It is instructive to present a simple example that + can be compiled and run from the command line. Although this + example is specific to one installation, it should be fairly + straightforward to adapt it to another installation. Toward + that end, it is helpful to understand the PLplot lingo of + "build directory" and "installation directory." + Here is a simple program that will generate a plot of + part of a parabola. + with + PLplot_Auxiliary, + PLplot; + use + PLplot_Auxiliary, + PLplot; + + procedure Simple_Example is + x, y : Real_Vector(-10 .. 10); + begin + for i in x'range loop + x(i) := Long_Float(i); + y(i) := x(i)**2; + end loop; + + Initialize_PLplot; -- Call this only once. + Simple_Plot(x, y); -- Make the plot. + End_PLplot; -- Call this only once. + end Simple_Example; + + Next is a bash script that will compile, bind, and + link it. It is installation-specific in that paths to the + GNAT compiler, PLplot libraries, and BLAS (Basic Linear + Algebra System) and LAPACK (Linear Algebra Package) are + hard-coded. You will have to adjust the paths to fit your + installation. Some Linux installations which have GNAT 4.3 or + later (Ada 2005) pre-installed might have already set the + paths to the BLAS and LAPACK libraries. + (Note that the G.3 Annex of Ada 2005, in the GNAT + version, depends heavily on BLAS and LAPACK. These packages + are tried-and-true packages that are available from several + places in either C or Fortran versions. The present example + is specific to OS X which has them pre-installed.) + + #!/bin/bash + /usr/local/ada-4.3/bin/gnatmake simple_example.adb \ + -aI/usr/local/plplot_build_dir/bindings/ada \ + -aL/usr/local/plplot_build_dir/bindings/ada/CMakeFiles/plplota + dad.dir \ + -largs \ + /usr/local/plplot/lib/libplplotd.dylib \ + /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libblas.dylib \ + /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/liblapack.dylib + + Beware of inadvertent line wraps in the above code. + The resulting binary program can be run by typing + ./simple_example +7 Unique Features of the Ada bindings + The Ada bindings have been augmented with a number of + features that are not present in other languages which work with + PLplot. These features are intended to greatly simplify the use of + PLplot; many users will find that they can do most of their work + using these "Simple" plotters. Also included are facilities for + easily manipulating the PLplot color tables + 7.1 High-level features for simplified plotting + Foreground-background control + Draw_On_Black, Draw_On_White + The default for PLplot is to draw its graphics on a + black background. A white background can be used + instead with Draw_On_White or reset to the original + mode with Draw_On_Black. Each of these manipulates + color map 0 by swapping black and white so that + e.g.with Draw_On_White, formerly white lines on a + black background autotmatically become black lines on + a white background. + Simple Plotters + Several high-level but flexible plotters are + available, and more might be added in the future. It is + expected that many users will find that these high-level + routines are adequate for most of their day-to-day plotting. + Multiplot_Pairs + Plot up to five x-y pairs with easy labeling, + coloring, line width and styles, justification, and + zooming. + Simple_Plot + Plot up to five y's against a single x with easy + labeling and automatic line colors and styles. + Simple_Plot_Log_X + Same as Simple_Plot but with logarithmic x-axis. + Simple_Plot_Log_Y + Same as Simple_Plot but with logarithmic y-axis. + Simple_Plot_Log_XY + Same as Simple_Plot but with logarithmic x- and + y-axes. + Simple_Plot_Pairs + Plot up to five x–y pairs with easy labeling and + automatic line colors and styles. + Single_Plot + Plot a single x–y pair with flexible labels, axis + styles, colors, line width and style, justification, + and zooming. + Simple_Contour + Make a contour plot with labels + Simple_Mesh_3D + Easy 3D mesh plot with labels, zooming, and + perspective controls + Simple_Surface_3D + Easy 3D surface plot with labels, zooming, and + perspective controls + Simple color map manipulations + PLplot provides extensive manipulation and control of + two separate color maps, color map 0 and color map 1. The Ada + binding makes basic manipulations easier and also adds + facilities for making snapshots of color map 0 so that any + state of the map can easlily be restored later. An initial + snapshot is taken when the package is initialized so that the + default color settings can always be restored after having + been changed. + Another set of features lets the user reset the 16 + individual colors in color map 0 after a color definition has + been changed. It is important to note that while + Set_Pen_Color(Red) (plcol0 in the traditional binding) + normally does what it says, Red simply has the value 1. If + the user changes the color map so that 1 corresponds to + another color, then Set_Pen_Color(Red) will draw in that + color instead of red. To always assure that red is drawn even + if the color map has been changed for integer 1, use + Set_Pen_Color(Reset_Red) instead. These 16 "reset" functions + return the appropriate default integer for the specified + color but also reset that slot in the color table so that a + subsequent call such as Set_Pen_Color(Red) will also cause + drawing in red. + Color map 1 also gets a easy-to-use makeover for Ada + users. There are several pre-built color themes that are + useful for quickly making surface and mesh plots, + Color_Themes_For_Map_1_Type. These color themes can be + quickly applied with Quick_Set_Color_Map_1. + Miscellaneous other Ada features include a pre-built + mask function for Shade_Regions that does no masking; perhaps + the most useful purpose is to provide a template for writing + mask functions that do mask. And there is a handy function + for calculating the contour levels for making contour plots. + Color table snapshots + Make_Snapshot_Of_Color_Map_0 + Restore_Snapshot_Of_Color_Map_0 + Restore_Default_Snapshot_Of_Color_Map_0 + Color resetting functions for the 16 colors of color map 0 + Reset_Black, Reset_Red, … Reset_White + Easy manipulation of color map 1 + Pre-built color themes for color map 1: + Color_Themes_For_Map_1_Type + Quick application of pre-built color themes: + Quick_Set_Color_Map_1 + Other features + A pre-built mask function for Shade_Regions that does + no masking: Mask_Function_No_Mask + An easy way to calculate an array of contour levels + for contour plots: Calculate_Contour_Levels + 7.2 Integer-options Given Ada Names + The C version of PLplot uses a number of integers to mean + specific things. Unfortunately, the meaning is lost when it it + consigned to being a mere integer with no name. The Ada binding + partially rectifies this situation by giving names to these + integer constants—the integer can still be used if desired. (A + more complete and safer rectification would use enumerated types.) + Below is a listing of at least the contexts in which + these "re-namings" have been applied. In some cases the entire + range of values is listed, but if there are more than about four + such values for each context, only a sampling is given. + Instances + Colors: Plot_Color_Type + 0 is Black, 1 is Red, etc. + Justification for plots: Justification_Type + User_Justified + Not_Justified + Justified + Justified_Square_Box + Axis styles: Axis_Style_Type + Linear_Major_Grid + Linear_Minor_Grid + etc. + Font styles: Font_Style_Type + Normal_Font + Roman_Font + Italic_Font + Script_Font + Character sets: Character_Set_Type + Standard_Character_Set + Extended_Character_Set + Plot orientation: Orientation_Type + Landscape + Portrait + Modes for parsing command line arguments: Parse_Mode_Type + E.g. PL_PARSE_PARTIAL + Descriptions of map outlines (continents, states, etc.): + Map_Type + Continents + USA_and_States + Continents_and_Countries + USA_States_and_Continents + Various style and view options for 3D and surface plots + E.g. Lines_Parallel_To_X + Kind of gridding algorithm for interpolating 2D data to a + grid: Gridding_Algorithm_Type + E.g. Grid_Bivariate_Cubic_Spline_Approximation + Flags for histogram style + E.g. Histogram_Default + Flags for histogram binning + E.g. Bin_Default + Names for color space models + Hue, Lightness, Saturation: HLS + Red, Green, Blue: RGB + 7.3 One-offs + Convenient string handling for Get_Device_Name + (plgdev in the traditional binding); a function version is + provided that simplifies the string handling associated with + this feature. + Overloaded Set_Line_Style (plstyl in the traditional + binding) with a version that takes a single argument, + Default_Continuous_Line. This replaces the awkward situation + of calling the normal versions of these procedures with + unused arguments simply to set the line style to the default, + continuous, line. + The contour plotter Contour_Plot_Irregular_Data + (plfcont in the traditional binding) is provided for making + contour plots from irregularly spaced data. This feature is + not documented in the PLplot API documentation. +8 Parts That Retain a C Flavor + There remains at least one area in the Ada bindings which is + still affected by the C underpinnings. This might be cleaned up in + future versions. There might be other residual C influence as well. + 8.1 Map-drawing + plmapform as called by Draw_Latitude_Longitude + (plmap) and Draw_Latitude_Longitude (plmeridians) + This is the only place in the PLplot bindings where a + C subprogram calls an Ada subprogram while passing an array. + If the array is unconstrained, there is no guarantee that it + will work because C has no way of telling Ada what offset to + use for the beginning of the array. But passing a constrained + array is acceptable with the downside that the array size + must be fixed within the bindings as being large enough to + handle any situation; currently, it is sized as 0 .. 2000. + See Example 19 for how this is handled in by the user + program. The constrained array is called + Map_Form_Constrained_Array. +9 Known Issues + 9.1 Stripchart labelling + In Example 17, all of the stripchart labels are the + same regardless of the fact that the calling program sets + them to be different. This is likely to affect user programs + in the same manner. + 9.2 Documentation + In numerous places in the documentation, a feature is + listed or described as "C only." Many of these features are + actually available in Ada. For example, in Contour_Plot + (plcont in the traditional binding), the transformation from + array indices to world coordinates is mentioned as "C only" + but is actually available in Ada. +10 Compilation notes + 10.1 Ada 95 Versus Ada 2005 + As discussed in Section 6.1, the bindings are made to + work with Ada 95 but to also take advantage of the Annex G.3 + (vector-matrix) features of Ada 2005. Actually, this + adaptation takes place during the PLplot build process when + DHAVE_ADA_2007=OFF or DHAVE_ADA_2007=ON is chosen; the + appropriate binding source files are generated automatically. + User programs will work with either compiler type without + modification. + 10.2 GNAT Dependence + There is a slight but significant dependence on the + GNAT version of Ada. This is discussed more fully in Section + 6.2 + 10.3 Compiler Warnings + During normal compilation of the Ada bindings, + approximately a dozen warnings are generated, in pairs, of + the following form: + bar.adb:46: warning: type of argument "foo" is unconstrained + array + bar.adb:46: warning: foreign caller must pass bounds + explicitly + These are normal and an unavoidable consequence of some of + the callback routines interacting with the underlying C code. + 10.4 PLplot_Auxiliary + The bindings include files PLplot_Auxiliary.ads and + PLplot_Auxiliary.adb. These files are currently used to + provide a few convenience subprograms that are used in the + examples. However, they are also very tightly associated with + the above-mentioned facility to accommodate either Ada 95 or + Ada 2005 compilers. The current situation is such that if the + user is using an Ada 95 compiler and requires the Real_Vector + or Real_Matrix type definitions, then he/she should with + PLplot_Auxiliary. If in doubt, PLplot_Auxiliary can always be + with-ed without harm. In the future, this confusion might be + removed and the need for PLplot_Auxiliary removed. (However, + user programs that with it should still work without change.) +11 Notes for Apple Macintosh OS X users + The following comments apply to users of Apple Macintosh + computers which run OS X. OS X users may use Apple's free integrated + development environment (IDE) or may prefer other methods such as + using a favorite editor and building from the command line. + OS X users should be aware that an excellent graphical + terminal program is available and is highly recommended. It is called + AquaTerm and is a full Cocoa program with window control. Performing + a cut operation places a PDF of the front window on the clipboard, a + convenience when working with other graphics or word processing + programs. + 11.1 Using Apple's Xcode IDE + The Macintosh Ada community has made a plug-in for + Apple's free Xcode integrated development environment (IDE) + that makes programming Ada in Xcode possible. The plug-in is + included with the compiler that is available at + www.macada.org <http://www.macada.org/>. Since Xcode is based + on gcc, it is possible to work in the various gcc languages + as well as to incorporate binaries such as the PLplot library. + In order to make an Xcode project, drag-and-drop + source files and the PLplot library file to the Groups & + Files pane of an Ada project. There are a few idiosyncrasies + that you may encounter so make sure to contact the very + friendly Macintosh Ada mailing list at www.macada.org + <http://www.macada.org/> or study the FAQ at that same site + if you have any difficulties. + 11.2 A Note on AquaTerm + AquaTerm is a display option available on Macintosh + computers using OS X and is supported by PLplot. It is a + native Cocoa graphics "terminal" that is highly recommended. + All output is antialiased and is easily cut-and-pasted in OS + X's native PDF format. Get it at + sourceforge.net—showfiles.php + <http://sourceforge.net/project/showfiles.php?group_id=39915>. + It can also be installed from either the Fink + www.finkproject.org <http://www.finkproject.org/> or MacPorts + www.macports.org—projects. + <http://www.macports.org/projects.> projects. + 11.3 X11 + Apple supplies the X11 windowing system that is + popular on some other Unix and Linux operations systems as + part of the Developer Tools. All PLplot programs made with + the Ada bindings will run on X11. In fact, some types of + interactivity such as Examples 14 and 17 will not run on + Apple's X11 (as of OS X 10.4 at least) and must be run on X11 + (or some other output device such as TCL/TK). + 11.4 GNAT for OS X + Apple Macintosh users will benefit from a pre-built + version of GNAT that comes packaged using the usual Apple + software installer and is strongly recommended. This compiler + is available for both PowerPC and Intel Macintoshes at + www.macada.org—Welcome.html. + <http://www.macada.org/macada/Welcome.html.>. This site is + traditionally rather confusing but the mailing list is + extremely helpful. The installer also includes an + Ada-specific plug-in for Apple's Xcode IDE which is strongly + recommended if you plan to work on this platform. Xcode is + part of the Developer Tools and is available on the Apple + system disks that also contain the operating system or it can + be downloaded for free from developer.apple.com—xcode + <http://developer.apple.com/tools/xcode/>. + + + Document version dated September 8, 2008 + Author: Jerry Bauck + © 2008 Jerry Bauck + Distributed as part of the PLplot plotting software Property changes on: trunk/bindings/ada/README.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/bindings/ada/README.rtf =================================================================== --- trunk/bindings/ada/README.rtf (rev 0) +++ trunk/bindings/ada/README.rtf 2008-09-10 07:24:07 UTC (rev 8763) @@ -0,0 +1,734 @@ +{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 +{\fonttbl\f0\fswiss\fcharset77 Arial-BoldMT;\f1\fswiss\fcharset77 ArialMT;\f2\fmodern\fcharset77 Courier; +\f3\fswiss\fcharset77 Arial-ItalicMT;\f4\fswiss\fcharset77 Helvetica;\f5\fnil\fcharset77 BitstreamVeraSansMono-Roman; +} +{\colortbl;\red255\green255\blue255;\red0\green0\blue0;} +\pard\ql\qnatural\pardirnatural + +\f0\b\fs32 \cf0 \up0 \nosupersub \ulnone \obliqueness0 \expansion0 Ada Bindings for the PLplot Plotting Package\ + \ +\ +\pard\tx200\li200\fi-200\ql\qnatural\pardirnatural + +\fs28 1 About the This Document\ +\pard\li200\ql\qnatural\pardirnatural + +\f1\b0\fs24 \cf2 This document describes the Ada bindings to the PLplot technical plotting software, how to obtain the necessary software components, and how to use them together.\ +\pard\tx200\li200\fi-200\ql\qnatural\pardirnatural + +\f0\b\fs28 \cf0 2 Overview\ +\pard\li200\ql\qnatural\pardirnatural + +\f1\b0\fs24 \cf2 The Ada bindings for PLplot provide a way for Ada programmers to access the powerful PLplot technical plotting facilities directly from Ada programs while working completely in Ada\'d1the Ada programmer never needs to know or worry that PLplot itself is written in another language.\ + There are a thin binding and two thick bindings provided. The thin binding presents the application programming interface (API) in a form very similar to the C API, although in 100% Ada. The thick bindings present the API in a form to which Ada programmers will be more accustomed and add some ease-of-use features. It is expected that the thick bindings will be preferred.\ +\pard\tx200\li200\fi-200\ql\qnatural\pardirnatural + +\f0\b\fs28 \cf0 3 About PLplot\ +\pard\li200\ql\qnatural\pardirnatural + +\f1\b0\fs24 \cf2 PLplot is a general purpose technical plotting package that can be accessed directly by the user's own program without first writing the data to be plotted to disk. The package is marked by speed, convenience, breadth, and flexibility.\ + The PLplot project is one of the most active on SourceForge, typically in the 99th percentile for activity.\ + The following is taken from the PLplot web site at {\field{\*\fldinst{HYPERLINK "http://plplot.sourceforge.net/"}}{\fldrslt plplot.sourceforge.net}}:\ + "PLplot is a library of functions that are useful for making scientific plots.\ + "PLplot can be used from within compiled languages such as C, C++, FORTRAN and Java, and interactively from interpreted languages such as Octave, Python, Perl and Tcl.\ + "The PLplot library can be used to create standard x-y plots, semilog plots, log-log plots, contour plots, 3D surface plots, mesh plots, bar charts and pie charts. Multiple graphs (of the same or different sizes) may be placed on a single page with multiple lines in each graph.\ + "A variety of output file devices such as Postscript, png, jpeg and others, as well as interactive devices such as xwin, tk, xterm and Tektronics devices are supported. New devices can be easily added by writing a small number of device dependent routines.\ + "There are almost 2000 characters in the extended character set. This includes four different fonts, the Greek alphabet and a host of mathematical, musical, and other symbols. Some devices supports its own way of dealing with text, such as the Postscript driver, or the png and jpeg drivers that uses the Freetype library."\ +\pard\tx200\li200\fi-200\ql\qnatural\pardirnatural + +\f0\b\fs28 \cf0 4 The Bindings\ +\pard\li200\ql\qnatural\pardirnatural +\cf2 +\f1\b0\fs24 The bindings are a re-expression and extension of the C-language API and as such are a kind of abstract layer between the user's code and the PLplot binary library. Additionally, there are a few capabilities not in the official API but nonetheless which are available to the C programmer which are included in the bindings and thus are directly available to the Ada programmer.\ + The thin binding is a layer between the thick bindings and the underlying C code. It is mainly a programming convenience for the developer of the bindings; this is a common implementation for foreign language bindings and for the most part, the user can ignore it.\ + There are two thick bindings provided for the convenience of the user. Either may be used and they both provide exactly the same functionality. The thick bindings are the user's main concern with programming for PLplot.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 4.1 Thin Binding\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 The thin binding, in the files +\f2 plplotthin.ads +\f1 and +\f2 plplotthin.adb +\f1 , is mostly a direct and obvious mapping of the C application programming interface (API) to Ada. Thus, for example, where a C program such as +\f2 plcol0 +\f1 requires a single integer argument, there is a corresponding Ada program also called +\f2 plcol0 +\f1 which also requires a single integer argument. ( +\f2 plcol0 +\f1 happens to set the drawing color using a number which is associated with a set of colors.) Various constants from the C API are also included here. Numeric types as defined in PLplot are associated with numeric types in Ada in the thin binding by use of Ada's type system. Thus, the thin binding refers to the PLplot-centric type +\f2 PLFLT +\f1 for floating-point types while the thick binding uses the usual Ada type +\f2 Long_Float +\f1 .\ + Many of the comments from the C source header file (similar in purpose to an Ada specification file) have been retained in the thin binding, even when they are no longer sensical. These might be pruned at some point to facilitate reading the Ada source.\ + Also included in the thin binding are some other declarations which help the Ada binding to mesh well with C by emulating certain data structures which are needed in some rather specialized usages as well as providing certain subprogram pointer types.\ + The Ada programmer working with either of the thick bindings will have to refer to the thin binding relatively rarely, if ever, and mainly to examine the subroutine pointer declarations and the several variant record types which are used mostly for contour and three-dimensional plots. However, some of these have been +\f2 subtype +\f1 -ed or +\f2 renames +\f1 -ed in the thick bindings so even less reference to the thin binding will be necessary. The goal is to put everything of interest to the user in the thick bindings and the user need not +\f2 with +\f1 the thin binding.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 4.2 The Thick Bindings\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf0 The thick bindings provide most of the information that the Ada programmer needs. Normally, only one of the two thick bindings would be used per user program but it should be possible to include both but that scenario would be unusual.\ + There are three main aspects of the thick bindings: providing an alternative access to the PLplot API, extending the PLplot functionality with some easy-to-use features, and overlaying Ada data structures and types.\ + In the first aspect, the thick bindings provide a fully Ada interface to the entire PLplot library. Packages are +\f2 with +\f1 -ed and +\f2 use +\f1 -d as normal Ada code. Ada arrays can be passed as usual, not requiring the array length or start or end indices to be passed separately. All necessary Ada types are made to match the underlying C types exactly.\ + The second aspect of the thick bindings is to provide some simplified ways to get a lot of plotting done with only one or two subroutine calls. For example, a single call to +\f2 Simple_Plot +\f1 can display from one to five " +\f3\i y +\f1\i0 's" as a function of a single " +\f3\i x +\f1\i0 " with default plot appearances chosen to suit many situations. Other simple plotters are available for three-dimensional and contour plots. Manipulating PLplot's colors is similarly made easy and some default color schemes are provided.\ + The third main aspect of the thick binding is to use Ada data structures and Ada's type system extensively to reduce the chances of inappropriate actions. For example, Ada arrays are used throughout (as opposed to C's pointer-plus-offset-while-carrying-along-the-size-separately approach). Quantities which have natural range limits are +\f2 subtype +\f1 -d to reflect those constraints. The hope is that program errors will result in more-familiar Ada compilation or run-time errors rather than error reports from the PLplot library or no reports at all. However, there remain a few instances where the typing could be improved and PLplot errors will still be reported from time to time.\ + Both the specification and body for the standard thick (and thin) binding contain the C subroutine name as a comment line immediately above the Ada procedure declaration; this should help in making the associations between "Ada" names and "PLplot" names. Also, the subroutine-specific comments from the C API have been retained verbatim.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 4.3 Standard Thick Binding Using Enhanced Names\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 The distinguishing feature of this thick binding (the "standard" binding) is to provide more descriptive names for PLplot subroutines, variables, constants, arguments, and other objects. Most Ada programmers will be more comfortable using these names. For example, in the C API as well as the thin Ada binding and the other thick Ada binding, the procedure +\f2 plcol0(1) +\f1 sets the drawing color to red. In the standard thick binding, the same thing is accomplished by writing +\f2 Set_Color(Red) +\f1 . The Ada program may just as well write +\f2 Set_Color(1) +\f1 since the binding merely sets a constant Red to be equal to the integer 1. Many such numeric constants from the C API are given names in this thick binding. These renamed integers are discussed more fully in Section 7.2.\ + The disadvantage of this renaming is that it makes referring to the PLplot documentation somewhat awkward. There might be, at some time, a utility for easing this problem by providing an HTML file with links so that a "normal" PLplot name can be linked to the "Ada" name along with the appropriate entry in the Ada specification, as well as another HTML file with links from the "Ada" name directly to the PLplot web page that documents that name. It might also be possible to provide an alternate version of the documentation with the enhanced names used. (The developer of the bindings has a sed file prepared which makes most of the subroutine-name substitutions.) However, this thick binding retains the original C subprogram names as comments immediately above the +\f2 function +\f1 or +\f2 procedure +\f1 name in the code listing so it is relatively easy to locate the relevant item in the PLplot documentation.\ + One simple rule applies in reading the PLplot API documentation: the argument names are in the same order in Ada as in the PLplot documentation (the names are different) except that all array lengths are eliminated. The PLplot documentation, for each subroutine, shows a "redacted" version which should be correct for Ada as well as other languages which have proper arrays.\ + The standard bindings are in the Ada files plplot.ads and plplot.adb.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 4.4 Thick Binding Using Traditional Names\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 This thick binding provides exactly the same functionality as the standard thick binding but retains the original names as used in the C code and the PLplot documentation.\ + The traditional bindings are in the Ada files plplot_traditional.ads and plplot_traditional.adb.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 4.5 Examples\ +\pard\li740\ql\qnatural\pardirnatural +\cf2 +\f1\b0 An important part of the Ada bindings is the examples, some 30 of which demonstrate how to use many of the features of the PLplot package. These examples also serve as a testbed for the bindings in Ada and other languages by checking the Postscript files that are generated by each example against those generated by the C versions. These examples have been completely re-written in Ada (but retain a C flavor in the names that are given to objects). All of the Ada examples generate exactly the same Postscript as the C versions, Examples 14 and 17 excepted since those operate interactively and don't (normally) make Postscript. Two versions of each example are available, one calling the standard binding and the other the traditional binding. (In development, a sed script does almost all of the conversion automatically.)\ +\pard\tx200\li200\fi-200\ql\qnatural\pardirnatural + +\f0\b\fs28 \cf0 5 Obtaining the Software\ +\pard\li200\ql\qnatural\pardirnatural + +\f1\b0\fs24 \cf2 There are three software components that you will need: an Ada compiler, the PLplot library, and the Ada bindings.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 5.1 Obtaining an Ada compiler\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 You will need an Ada compiler in order to use the Ada PLplot bindings. There are several compilers available. Here, we will focus on the free, open source compiler that is included with the GNU Compiler Collection, (gcc) which is at the center of much of the open source software movement. The gcc Ada compiler is known as GNAT, for GNU NYU Ada Translator, where NYU stands for New York University. (Although GNAT was originally developed at NYU, it has for many years been developed and supported commercially by AdaCore with academic and pro versions available.)\ + Your computer may already have GNAT installed, or you can download it from {\field{\*\fldinst{HYPERLINK "http://gcc.gnu.org/"}}{\fldrslt gcc.gnu.org}}. Another route to obtaining GNAT is from the AdaCore page, {\field{\*\fldinst{HYPERLINK "https://libre2.adacore.com/"}}{\fldrslt libre2.adacore.com}}. There are versions for many operating systems and processors including Apple's OS X or its open source version Darwin, Linux, and Windows. The gcc and AdaCore versions differ in their licenses. Download the version that you need and follow the installation instructions. \ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 5.2 Download and install PLplot\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 PLplot can be downloaded from the PLplot home page at {\field{\*\fldinst{HYPERLINK "http://sourceforge.net/projects/plplot"}}{\fldrslt sourceforge.net\'d1plplot}}. Follow the installation instructions after downloading. The installation process is more involved than other open source software and requires that your computer has cmake installed. OS X users can try installing PLplot in its entirety from MacPorts but that activity is not officially supported by the PLplot developers. The advantage of using MacPorts is that all installation dependencies are automatically installed for you.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 5.3 Download the Ada bindings to PLplot\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 The third major software component is the bindings themselves. Since they are currently included with the PLplot software itself, there is no need to download them from another place.\ + The bindings themselves are six Ada source files named (using GNAT filename extensions) plplot.ads, plplot.adb, plplot_traditional.ads, plplot_traditional.adb +\f4 \cf0 , +\f1 \cf2 plplothin.ads, plplotthin.adb. There are two additional files, plplot_auxiliary.ads and plplot_auxililary.adb which will be discussed later, in Section 9. These can be stored somewhere on your system's search paths for easy access.\ +\pard\tx200\li200\fi-200\ql\qnatural\pardirnatural + +\f0\b\fs28 \cf0 6 How to use the Ada bindings\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\fs24 \cf2 6.1 Ada 95 versus Ada 2005\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 The bindings will work for either Ada 95 or Ada 2005. The only difference that concerns PLplot users is that Ada 2005, in Annex G.3, provides declarations for real-valued vectors and matrices (along with some other functionality). These declarations make available +\f2 type Real_Vector +\f1 and +\f2 type Real_Matrix.\ + +\f1 The installation process for PLplot requires you to select Ada 95 or Ada 2005. After that, the correct bindings are generated automatically depending on your choice. The differences are very minor: If Ada 2005, the type declarations provided according to Annex G.3 are used; if Ada 95, similar type declarations are provided. For the most part, you don't need to think about this much. However, see Section 9, Compilation Notes, if you are using Ada 95 and need to declare vectors or matrices. The design goal in either case is to encourage users to use +\f2 Real_Vector +\f4 \cf0 +\f1 \cf2 and +\f2 Real_Matrix +\f1 since these are the "official" versions of these entities as of Ada 2005. Someone using objects based on these type definitions in Ada 95 in their PLplot programs should expect their programs to work without modification if they should switch to Ada 2005.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 6.2 GNAT versus non-GNAT\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 The bindings were made using the GNAT compiler and there is a slight dependence on that compiler. Specifically, the +\f2 Unrestricted_Access +\f1 attribute of GNAT was used in making the function +\f2 Matrix_To_Pointers +\f1 in plplotthin.adb and in a few callbacks. +\f2 Matrix_To_Pointers +\f1 is called whenever an Ada matrix (2D array) is passed to a PLplot subroutine. For more about +\f2 Unrestricted_Access +\f1 attribute, see Implementation Defined Attributes in the GNAT Reference Manual. This dependency shouldn't be difficult to remove by either incorporating the GNAT code which implements it, by following the TO-DO comment near the function definition in plplotthin.adb, or by providing the proper aliasing.\ + Another GNAT dependency is used to parse command line arguments in a C-like way.\ + Most of the GNAT dependencies can be found by searching the source code for " +\f2 GNAT +\f1 " and " +\f2 Unrestricted_Access +\f1 ."\ + The GNAT dependence, though slight, will no doubt frustrate users of other Ada compilers. We welcome comments from those users, especially comments with specific suggestions on how to remove any GNAT-specific usages.\ +\pard\tx360\tx740\li740\fi-740\ql\qnatural\pardirnatural + +\f0\b \cf2 6.3 Sample command line project\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1\b0 \cf2 It is instructive to present a simple example that can be compiled and run from the command line. Although this example is specific to one installation, it should be fairly straightforward to adapt it to another installation. Toward that end, it is helpful to understand the PLplot lingo of "build directory" and "installation directory."\ + Here is a simple program that will generate a plot of part of a parabola.\ + +\f2 with\ +\pard\li720\ql\qnatural\pardirnatural +\cf2 PLplot_Auxiliary,\ + PLplot;\ +use\ + PLplot_Auxiliary,\ + PLplot;\ +\ +procedure Simple_Example is\ + x, y : Real_Vector(-10 .. 10);\ +begin\ + for i in x'range loop \ + x(i) := Long_Float(i);\ + y(i) := x(i)**2;\ + end loop;\ +\ + Initialize_PLplot; -- Call this only once.\ + Simple_Plot(x, y); -- Make the plot.\ + End_PLplot; -- Call this only once.\ +end Simple_Example;\ +\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1 \cf2 Next is a bash script that will compile, bind, and link it. It is installation-specific in that paths to the GNAT compiler, PLplot libraries, and BLAS (Basic Linear Algebra System) and LAPACK (Linear Algebra Package) are hard-coded. You will have to adjust the paths to fit your installation. Some Linux installations which have GNAT 4.3 or later (Ada 2005) pre-installed might have already set the paths to the BLAS and LAPACK libraries.\ + (Note that the G.3 Annex of Ada 2005, in the GNAT version, depends heavily on BLAS and LAPACK. These packages are tried-and-true packages that are available from several places in either C or Fortran versions. The present example is specific to OS X which has them pre-installed.)\ + \ +\pard\li720\ql\qnatural\pardirnatural + +\f2 \cf2 #!/bin/bash\ +/usr/local/ada-4.3/bin/gnatmake simple_example.adb \\\ +-aI/usr/local/plplot_build_dir/bindings/ada \\\ +-aL/usr/local/plplot_build_dir/bindings/ada/CMakeFiles/plplotadad.dir \\\ +-largs \\\ +/usr/local/plplot/lib/libplplotd.dylib \\\ +/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libblas.dylib \\\ +/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/liblapack.dylib\ +\ +\pard\tx720\li720\fi-720\ql\qnatural\pardirnatural + +\f1 \cf2 Beware of inadvertent line wraps in the above code.\ + The resulting binary prog... [truncated message content] |
From: <ai...@us...> - 2008-09-11 18:36:09
|
Revision: 8772 http://plplot.svn.sourceforge.net/plplot/?rev=8772&view=rev Author: airwin Date: 2008-09-11 18:36:19 +0000 (Thu, 11 Sep 2008) Log Message: ----------- Use no visibility attribute for imported symbols for Linux gcc. None of the fundamental references (such as info gcc and http://people.redhat.com/drepper/dsohowto.pdf) mention using the visibility attribute for imported symbols, and it is mentioned only once in passing in one of the examples in http://gcc.gnu.org/wiki/Visibility. In retrospect, I think that was just sloppy usage in the visibility Wiki and we won't propagate that sloppiness to PLplot. Note this commit when combined with the next commit (for bindings/tcl/CMakeLists.txt) still gives the same (mostly good) results for the export CC='gcc -fvisibility=hidden' export CXX='g++ -fvisibility=hidden' export FC='gfortran -fvisibility=hidden' case which supports my idea that the wiki was just sloppy about this issue. Modified Paths: -------------- trunk/include/pldll.h trunk/lib/csa/csadll.h trunk/lib/nn/nndll.h Modified: trunk/include/pldll.h =================================================================== --- trunk/include/pldll.h 2008-09-10 21:08:56 UTC (rev 8771) +++ trunk/include/pldll.h 2008-09-11 18:36:19 UTC (rev 8772) @@ -19,10 +19,10 @@ #define PLDLLIMPORT __declspec(dllimport) #elif defined(__GNUC__) && __GNUC__ > 3 /* Follow ideas in http://gcc.gnu.org/wiki/Visibility for GCC version 4.x - * The following forces symbols specifically designated with either - * PLDLLEXPORT or PLDLLIMPORT to be visible. */ + * The following forces exported symbols specifically designated with + * PLDLLEXPORT to be visible. */ #define PLDLLEXPORT __attribute__ ((visibility("default"))) - #define PLDLLIMPORT __attribute__ ((visibility("default"))) + #define PLDLLIMPORT #endif #ifndef PLDLLEXPORT Modified: trunk/lib/csa/csadll.h =================================================================== --- trunk/lib/csa/csadll.h 2008-09-10 21:08:56 UTC (rev 8771) +++ trunk/lib/csa/csadll.h 2008-09-11 18:36:19 UTC (rev 8772) @@ -19,10 +19,10 @@ #define CSADLLIMPORT __declspec(dllimport) #elif defined(__GNUC__) && __GNUC__ > 3 /* Follow ideas in http://gcc.gnu.org/wiki/Visibility for GCC version 4.x - * * The following forces symbols specifically designated with either - * * CSADLLEXPORT or CSADLLIMPORT to be visible. */ + * The following forces exported symbols specifically designated with + * CSADLLEXPORT to be visible. */ #define CSADLLEXPORT __attribute__ ((visibility("default"))) - #define CSADLLIMPORT __attribute__ ((visibility("default"))) + #define CSADLLIMPORT #endif #ifndef CSADLLEXPORT Modified: trunk/lib/nn/nndll.h =================================================================== --- trunk/lib/nn/nndll.h 2008-09-10 21:08:56 UTC (rev 8771) +++ trunk/lib/nn/nndll.h 2008-09-11 18:36:19 UTC (rev 8772) @@ -19,10 +19,10 @@ #define NNDLLIMPORT __declspec(dllimport) #elif defined(__GNUC__) && __GNUC__ > 3 /* Follow ideas in http://gcc.gnu.org/wiki/Visibility for GCC version 4.x - * * The following forces symbols specifically designated with either - * * NNDLLEXPORT or NNDLLIMPORT to be visible. */ + * The following forces exported symbols specifically designated with + * NNDLLEXPORT to be visible. */ #define NNDLLEXPORT __attribute__ ((visibility("default"))) - #define NNDLLIMPORT __attribute__ ((visibility("default"))) + #define NNDLLIMPORT #endif #ifndef NNDLLEXPORT This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-09-30 18:10:54
|
Revision: 8839 http://plplot.svn.sourceforge.net/plplot/?rev=8839&view=rev Author: airwin Date: 2008-09-30 18:10:24 +0000 (Tue, 30 Sep 2008) Log Message: ----------- Update example 20 for all non-C languages to follow recent change (removal of all but one pladv command) to x20c.c. The compare test showed all these examples produced the same postscript results as the C example with the exception of perl (no plimage defined there so cannot test), and tcl (rounding errors make lots of difference there, but the length of the file is the same so I infer the paging is done correctly for that binding). Modified Paths: -------------- trunk/bindings/octave/demos/x20c.m trunk/examples/ada/x20a.adb.cmake trunk/examples/ada/xthick20a.adb.cmake trunk/examples/c++/x20.cc trunk/examples/f77/x20f.fm4 trunk/examples/f95/x20f.f90 trunk/examples/java/x20.java trunk/examples/ocaml/x20.ml trunk/examples/perl/x20.pl trunk/examples/python/xw20.py trunk/examples/tcl/x20.tcl Modified: trunk/bindings/octave/demos/x20c.m =================================================================== --- trunk/bindings/octave/demos/x20c.m 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/bindings/octave/demos/x20c.m 2008-09-30 18:10:24 UTC (rev 8839) @@ -48,8 +48,6 @@ pllab("...around a blue square."," ","A red border should appear..."); pplimage(z, 1.0, xdim, 1.0, ydim, 0.0, 0.0, 1.0, xdim, 1.0, ydim); - - pladv(0); endif ## sombrero-like demo @@ -75,7 +73,6 @@ if (exist("f_name","var")) save_plot(f_name); endif - pladv(0); endif ## read Lena image @@ -138,12 +135,10 @@ pplimage(img, 1.0, width, 1.0, height, 0.0, 0.0, xi, xe, ye, yi); plspause(1); - pladv(0); ## zoom in selection plenv(xi, xe, ye, yi, 1, -1); pplimage(img, 1.0, width, 1.0, height, 0.0, 0.0, xi, xe, ye, yi); - pladv(0); endif ## Base the dynamic range on the image contents. @@ -176,7 +171,6 @@ yg = repmat([0:height],width+1,1); xg = x0 + (x0-xg).*(1-stretch*cos((yg-y0)/dy*pi*0.5)); plimagefr2(img, 0., width, 0., height, 0., 0., img_min, img_max, xg, yg); - pladv(0); plend1; endfunction Modified: trunk/examples/ada/x20a.adb.cmake =================================================================== --- trunk/examples/ada/x20a.adb.cmake 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/ada/x20a.adb.cmake 2008-09-30 18:10:24 UTC (rev 8839) @@ -289,8 +289,6 @@ plimage(z, 1.0, Long_Float(XDIM), 1.0, Long_Float(YDIM), 0.0, 0.0, 1.0, Long_Float(XDIM), 1.0, Long_Float(YDIM)); - - pladv(0); end if; -- sombrero-like demo @@ -326,8 +324,6 @@ save_plot(f_name(1 .. f_name_length)); end if; end if; - - pladv(0); end if; -- Read the Lena image. @@ -398,12 +394,10 @@ plimage(img_f, 1.0, Long_Float(width), 1.0, Long_Float(height), 0.0, 0.0, xi, xe, ye, yi); plspause(True); - pladv(0); -- Zoom in selection. plenv(xi, xe, ye, yi, 1, -1); plimage(img_f, 1.0, Long_Float(width), 1.0, Long_Float(height), 0.0, 0.0, xi, xe, ye, yi); - pladv(0); end if; -- Base the dynamic range on the image contents. @@ -449,7 +443,6 @@ plimagefr(img_f, 0.0, Long_Float(width), 0.0, Long_Float(height), 0.0, 0.0, img_min, img_max, pltr2'access, cgrid2'Address); - pladv(0); end; plend; end x20a; Modified: trunk/examples/ada/xthick20a.adb.cmake =================================================================== --- trunk/examples/ada/xthick20a.adb.cmake 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/ada/xthick20a.adb.cmake 2008-09-30 18:10:24 UTC (rev 8839) @@ -289,8 +289,6 @@ Draw_Image_Color_Map_1_Automatic(z, 1.0, Long_Float(XDIM), 1.0, Long_Float(YDIM), 0.0, 0.0, 1.0, Long_Float(XDIM), 1.0, Long_Float(YDIM)); - - Advance_To_Subpage(Next_Subpage); end if; -- sombrero-like demo @@ -326,8 +324,6 @@ save_plot(f_name(1 .. f_name_length)); end if; end if; - - Advance_To_Subpage(Next_Subpage); end if; -- Read the Lena image. @@ -398,12 +394,10 @@ Draw_Image_Color_Map_1_Automatic(img_f, 1.0, Long_Float(width), 1.0, Long_Float(height), 0.0, 0.0, xi, xe, ye, yi); Set_Pause(True); - Advance_To_Subpage(Next_Subpage); -- Zoom in selection. Set_Environment(xi, xe, ye, yi, Justified, Box); Draw_Image_Color_Map_1_Automatic(img_f, 1.0, Long_Float(width), 1.0, Long_Float(height), 0.0, 0.0, xi, xe, ye, yi); - Advance_To_Subpage(Next_Subpage); end if; -- Base the dynamic range on the image contents. @@ -449,7 +443,6 @@ Draw_Image_Color_Map_1(img_f, 0.0, Long_Float(width), 0.0, Long_Float(height), 0.0, 0.0, img_min, img_max, Plot_Transformation_2'access, cgrid2'Address); - Advance_To_Subpage(Next_Subpage); end; End_PLplot; end xthick20a; Modified: trunk/examples/c++/x20.cc =================================================================== --- trunk/examples/c++/x20.cc 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/c++/x20.cc 2008-09-30 18:10:24 UTC (rev 8839) @@ -181,8 +181,6 @@ pls->image(z, XDIM, YDIM, 1., (PLFLT) XDIM, 1., (PLFLT) YDIM, 0., 0., 1., (PLFLT) XDIM, 1., (PLFLT) YDIM); - - pls->adv(0); } /* sombrero-like demo */ @@ -211,8 +209,6 @@ /* save the plot */ if (f_name) save_plot(f_name); - - pls->adv(0); } pls->Free2dGrid(z, XDIM, YDIM); @@ -277,12 +273,10 @@ pls->image(img_f, width, height, 1., width, 1., height, 0., 0., xi, xe, ye, yi); pls->spause(true); - pls->adv(0); // zoom in selection pls->env(xi, xe, ye, yi, 1, -1); pls->image(img_f, width, height, 1., width, 1., height, 0., 0., xi, xe, ye, yi); - pls->adv(0); } // Base the dynamic range on the image contents. @@ -326,7 +320,6 @@ } pls->imagefr(img_f, width, height, 0., width, 0., height, 0., 0., img_min, img_max, pltr2, &cgrid2); - pls->adv(0); pls->Free2dGrid(cgrid2.xg, width+1, height+1); pls->Free2dGrid(cgrid2.yg, width+1, height+1); Modified: trunk/examples/f77/x20f.fm4 =================================================================== --- trunk/examples/f77/x20f.fm4 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/f77/x20f.fm4 2008-09-30 18:10:24 UTC (rev 8839) @@ -162,8 +162,6 @@ call plimage(z, XDIM, YDIM, & 1.d0, XDIMR, 1.d0, YDIMR, 0.d0, 0.d0, & 1.d0, XDIMR, 1.d0, YDIMR, XDIM) - - call pladv(0) endif C Sombrero-like demo @@ -196,8 +194,6 @@ if (f_name .ne. ' ') then call save_plot(f_name) endif - - call pladv(0) endif C @@ -270,13 +266,11 @@ & height_r, 0.d0, 0.d0, xi, xe, ye, yi, WDIM) call plspause(1) - call pladv(0) C Zoom in selection call plenv(xi, xe, ye, yi, 1, -1) call plimage(img_f, width, height, 1.d0, width_r, 1.d0, & height_r, 0.d0, 0.d0, xi, xe, ye, yi, WDIM) - call pladv(0) endif c Base the dynamic range on the image contents. @@ -311,9 +305,7 @@ enddo call plimagefr2(img_f, width, height, 0.d0, width_r, 0.d0, & height_r, 0.d0, 0.d0, img_min, img_max, xg, yg, WDIM) - call pladv(0) - call plend() end Modified: trunk/examples/f95/x20f.f90 =================================================================== --- trunk/examples/f95/x20f.f90 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/f95/x20f.f90 2008-09-30 18:10:24 UTC (rev 8839) @@ -149,8 +149,6 @@ call plimage(z, 1._plflt, XDIMR, 1._plflt, YDIMR, 0._plflt, 0._plflt, & 1._plflt, XDIMR, 1._plflt, YDIMR) - - call pladv(0) endif ! Sombrero-like demo @@ -183,8 +181,6 @@ if (f_name .ne. ' ') then call save_plot(f_name) endif - - call pladv(0) endif ! @@ -254,13 +250,11 @@ height_r, 0._plflt, 0._plflt, xi, xe, ye, yi) call plspause(.true.) - call pladv(0) ! Zoom in selection call plenv(xi, xe, ye, yi, 1, -1) call plimage(img_f, 1._plflt, width_r, 1._plflt, & height_r, 0._plflt, 0._plflt, xi, xe, ye, yi) - call pladv(0) endif ! Base the dynamic range on the image contents. @@ -297,7 +291,6 @@ enddo call plimagefr(img_f, 0._plflt, width_r, 0._plflt, & height_r, 0._plflt, 0._plflt, img_min, img_max, xg, yg) - call pladv(0) deallocate( img_f, xg, yg ) Modified: trunk/examples/java/x20.java =================================================================== --- trunk/examples/java/x20.java 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/java/x20.java 2008-09-30 18:10:24 UTC (rev 8839) @@ -153,8 +153,6 @@ pls.image(z, 1., (double) XDIM, 1., (double) YDIM, 0., 0., 1., (double) XDIM, 1., (double) YDIM); - - pls.adv(0); } /* sombrero-like demo */ @@ -182,8 +180,6 @@ /* save the plot */ if (f_name != null) save_plot(f_name); - - pls.adv(0); } @@ -250,12 +246,10 @@ pls.image(img_f, 1., (double) width, 1., (double) height, 0., 0., xi[0], xe[0], ye[0], yi[0]); pls.spause(true); - pls.adv(0); // zoom in selection pls.env(xi[0], xe[0], ye[0], yi[0], 1, -1); pls.image(img_f, 1., (double) width, 1., (double) height, 0., 0., xi[0], xe[0], ye[0], yi[0]); - pls.adv(0); } // Base the dynamic range on the image contents. @@ -308,7 +302,6 @@ } pls.imagefr(img_f, 0., (double) width, 0., (double) height, 0., 0., img_min, img_max, xg, yg); - pls.adv(0); pls.end(); } Modified: trunk/examples/ocaml/x20.ml =================================================================== --- trunk/examples/ocaml/x20.ml 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/ocaml/x20.ml 2008-09-30 18:10:24 UTC (rev 8839) @@ -147,8 +147,6 @@ | None -> () in - pladv 0; - (* read Lena image *) (* Note we try two different locations to cover the case where this * examples is being run from the test_ocaml.sh script *) @@ -192,12 +190,10 @@ plimage img_f 1.0 width 1.0 height 0.0 0.0 xi xe ye yi; plspause 1; - pladv 0; (* zoom in selection *) plenv xi xe ye yi 1 (-1); plimage img_f 1.0 width 1.0 height 0.0 0.0 xi xe ye yi; - pladv 0; (* Base the dynamic range on the image contents. *) let img_max, img_min = plMinMax2dGrid img_f in @@ -244,8 +240,6 @@ *) plimagefr img_f 0.0 width 0.0 height 0.0 0.0 img_min img_max; - pladv 0; - plend (); () Modified: trunk/examples/perl/x20.pl =================================================================== --- trunk/examples/perl/x20.pl 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/perl/x20.pl 2008-09-30 18:10:24 UTC (rev 8839) @@ -88,8 +88,6 @@ pllab ("...around a blue square."," ","A red border should appear..."); plimage ($z, 1, XDIM, 1, YDIM, 0, 0, 1, XDIM, 1, YDIM); - - pladv (0); } # sombrero-like demo @@ -111,8 +109,6 @@ # save the plot save_plot ($f_name) if $f_name; - - pladv (0); } # read Lena image @@ -161,13 +157,10 @@ plimage ($img_f, 1, $width, 1, $height, 0, 0, $xi, $xe, $ye, $yi); plspause (1); - pladv (0); # zoom in selection plenv ($xi, $xe, $ye, $yi, 1, -1); plimage ($img_f, 1, $width, 1, $height, 0, 0, $xi, $xe, $ye, $yi); - - pladv(0); } plend (); Modified: trunk/examples/python/xw20.py =================================================================== --- trunk/examples/python/xw20.py 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/python/xw20.py 2008-09-30 18:10:24 UTC (rev 8839) @@ -186,8 +186,6 @@ plimage(z, 1.0, XDIM, 1.0, YDIM, 0.0, 0.0, 1.0, XDIM, 1.0, YDIM) - pladv(0) - if (not nosombrero): plcol0(2) # Draw a yellow box, useful for diagnostics! plenv(0.0, 2.0*pi, 0, 3.0*pi, 1, -1) @@ -199,16 +197,14 @@ r = sqrt( multiply.outer(x*x,ones(YDIM)) + multiply.outer(ones(XDIM),y*y)) + 1e-3 z = sin(r) / r - pllab("No, an amplitude clipped \"sombrero\"", "", "Saturn?") - plptex(2., 2., 3., 4., 0., "Transparent image") - plimage(z, 0., 2.*pi, 0, 3.*pi, 0.05, 1.,0., 2.*pi, 0, 3.*pi) + pllab("No, an amplitude clipped \"sombrero\"", "", "Saturn?") + plptex(2., 2., 3., 4., 0., "Transparent image") + plimage(z, 0., 2.*pi, 0, 3.*pi, 0.05, 1.,0., 2.*pi, 0, 3.*pi) - # Save the plot - if (f_name != ""): - save_plot(f_name) + # Save the plot + if (f_name != ""): + save_plot(f_name) - pladv(0) - # Read Lena image # Note: we try two different locations to cover the case where # this example is being run from the test_c.sh script @@ -252,12 +248,10 @@ plimage(img, 1., width, 1., height, 0., 0., xi, xe, ye, yi) plspause(1) - pladv(0) # zoom in selection plenv(xi, xe, ye, yi, 1, -1) plimage(img, 1., width, 1., height, 0., 0., xi, xe, ye, yi) - pladv(0) # Base the dynamic range on the image contents. img_min = min(img.flat) @@ -285,7 +279,6 @@ plimagefr(img, 0., width, 0., height, 0., 0., img_min, img_max, \ pltr2, xg, yg) - pladv(0) main() Modified: trunk/examples/tcl/x20.tcl =================================================================== --- trunk/examples/tcl/x20.tcl 2008-09-30 17:35:26 UTC (rev 8838) +++ trunk/examples/tcl/x20.tcl 2008-09-30 18:10:24 UTC (rev 8839) @@ -132,8 +132,6 @@ "A red border should appear..." $w cmd plimage z 1. $XDIM 1. $YDIM 0. 0. 1. $XDIM 1.$YDIM - - $w cmd pladv 0 } # Sombrero-like demo @@ -168,8 +166,6 @@ if { $f_name != "" } { save_plot $w $f_name } - - $w cmd pladv 0 } # @@ -235,12 +231,10 @@ $w cmd plimage img_f 1. $width 1. $height 0. 0. $xi $xe $ye $yi $w cmd plspause 1 - $w cmd pladv 0 # Zoom in selection $w cmd plenv $xi $xe $ye $yi 1 -1 $w cmd plimage img_f 1. $width 1. $height 0. 0. $xi $xe $ye $yi - $w cmd pladv 0 } # Base the dynamic range on the image contents. @@ -281,7 +275,6 @@ } $w cmd plimagefr img_f 0. $width 0. $height 0. 0. $img_min \ $img_max xg yg - $w cmd pladv 0 $w cmd plend } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-07 02:18:01
|
Revision: 8861 http://plplot.svn.sourceforge.net/plplot/?rev=8861&view=rev Author: airwin Date: 2008-10-07 02:17:38 +0000 (Tue, 07 Oct 2008) Log Message: ----------- AWI for Hezekiah M. Carty. Map the PLBOOL type to the OCaml bool type (rather than the previous integer type) in both the bindings and examples. Modified Paths: -------------- trunk/bindings/ocaml/plplot_h trunk/bindings/ocaml/plplot_h.inc trunk/examples/ocaml/x08.ml trunk/examples/ocaml/x11.ml trunk/examples/ocaml/x15.ml trunk/examples/ocaml/x20.ml trunk/examples/ocaml/x21.ml trunk/examples/ocaml/x22.ml trunk/examples/ocaml/x30.ml Modified: trunk/bindings/ocaml/plplot_h =================================================================== --- trunk/bindings/ocaml/plplot_h 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/bindings/ocaml/plplot_h 2008-10-07 02:17:38 UTC (rev 8861) @@ -7,7 +7,7 @@ #define PLINT int //typedef PLINT PLBOOL; -#define PLBOOL int +#define PLBOOL boolean void c_pl_setcontlabelformat(PLINT lexp, PLINT sigdig); Modified: trunk/bindings/ocaml/plplot_h.inc =================================================================== --- trunk/bindings/ocaml/plplot_h.inc 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/bindings/ocaml/plplot_h.inc 2008-10-07 02:17:38 UTC (rev 8861) @@ -1,7 +1,7 @@ [mlname(pl_setcontlabelformat)] void c_pl_setcontlabelformat(int lexp, int sigdig); [mlname(pl_setcontlabelparam)] void c_pl_setcontlabelparam ( double offset, double size, double spacing, int active ); [mlname(pladv)] void c_pladv ( int page ); -[mlname(plsvect)] void c_plsvect ( [in, size_is(npts)] double * arrowx, [in, size_is(npts)] double * arrowy, int npts, int fill ); +[mlname(plsvect)] void c_plsvect ( [in, size_is(npts)] double * arrowx, [in, size_is(npts)] double * arrowy, int npts, boolean fill ); [mlname(plaxes)] void c_plaxes ( double x0, double y0, [string] const char * xopt, double xtick, int nxsub, [string] const char * yopt, double ytick, int nysub ); [mlname(plbin)] void c_plbin ( int nbin, [in, size_is(nbin)] double * x, [in, size_is(nbin)] double * y, int opt ); [mlname(plbop)] void c_plbop ( void ); @@ -11,7 +11,7 @@ [mlname(plclear)] void c_plclear ( void ); [mlname(plcol0)] void c_plcol0 ( int icol0 ); [mlname(plcol1)] void c_plcol1 ( double col1 ); -[mlname(plcpstrm)] void c_plcpstrm ( int iplsr, int flags ); +[mlname(plcpstrm)] void c_plcpstrm ( int iplsr, boolean flags ); [mlname(plend)] void c_plend ( void ); [mlname(plend1)] void c_plend1 ( void ); [mlname(plenv)] void c_plenv ( double xmin, double xmax, double ymin, double ymax, int just, int axis ); @@ -65,7 +65,7 @@ [mlname(plmkstrm)] void c_plmkstrm ( [out] int * p_strm ); [mlname(plmtex)] void c_plmtex ( [string] const char * side, double disp, double pos, double just, [string] const char * text ); [mlname(plmtex3)] void c_plmtex3 ( [string] const char * side, double disp, double pos, double just, [string] const char * text ); -[mlname(plot3d)] void c_plot3d ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, int side ); +[mlname(plot3d)] void c_plot3d ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, boolean side ); [mlname(plot3dc)] void c_plot3dc ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, [size_is(nlevel), in] double * clevel, int nlevel ); [mlname(plpat)] void c_plpat ( int nlin, [in, size_is(nlin)] int * inc, [in, size_is(nlin)] int * del ); [mlname(plpoin)] void c_plpoin ( int n, [in, size_is(n)] double * x, [in, size_is(n)] double * y, int code ); @@ -84,8 +84,8 @@ [mlname(plscmap0n)] void c_plscmap0n ( int ncol0 ); [mlname(plscmap1)] void c_plscmap1 ( [size_is(ncol1), in] int * r, [size_is(ncol1), in] int * g, [size_is(ncol1), in] int * b, int ncol1 ); [mlname(plscmap1a)] void c_plscmap1a ( [size_is(ncol1), in] int * r, [size_is(ncol1), in] int * g, [size_is(ncol1), in] int * b, [size_is(ncol1), in] double * a, int ncol1 ); -[mlname(plscmap1l)] void c_plscmap1l ( int itype, int npts, [size_is(npts), in, size_is(npts)] double * intensity, [size_is(npts), in, size_is(npts)] double * coord1, [size_is(npts), in, size_is(npts)] double * coord2, [size_is(npts), in, size_is(npts)] double * coord3, [in, size_is(npts), in, size_is(npts), unique] int * rev ); -[mlname(plscmap1la)] void c_plscmap1la ( int itype, int npts, [size_is(npts), in, size_is(npts)] double * intensity, [size_is(npts), in, size_is(npts)] double * coord1, [size_is(npts), in, size_is(npts)] double * coord2, [size_is(npts), in, size_is(npts)] double * coord3, [size_is(npts), in, size_is(npts)] double * a, [in, size_is(npts), in, size_is(npts), unique] int * rev ); +[mlname(plscmap1l)] void c_plscmap1l ( boolean itype, int npts, [size_is(npts), in, size_is(npts)] double * intensity, [size_is(npts), in, size_is(npts)] double * coord1, [size_is(npts), in, size_is(npts)] double * coord2, [size_is(npts), in, size_is(npts)] double * coord3, [in, size_is(npts), in, size_is(npts), unique] boolean * rev ); +[mlname(plscmap1la)] void c_plscmap1la ( boolean itype, int npts, [size_is(npts), in, size_is(npts)] double * intensity, [size_is(npts), in, size_is(npts)] double * coord1, [size_is(npts), in, size_is(npts)] double * coord2, [size_is(npts), in, size_is(npts)] double * coord3, [size_is(npts), in, size_is(npts)] double * a, [in, size_is(npts), in, size_is(npts), unique] boolean * rev ); [mlname(plscmap1n)] void c_plscmap1n ( int ncol1 ); [mlname(plscol0)] void c_plscol0 ( int icol0, int r, int g, int b ); [mlname(plscol0a)] void c_plscol0a ( int icol0, int r, int g, int b, double a ); @@ -108,7 +108,7 @@ [mlname(plsmin)] void c_plsmin ( double def, double scale ); [mlname(plsori)] void c_plsori ( int ori ); [mlname(plspage)] void c_plspage ( double xp, double yp, int xleng, int yleng, int xoff, int yoff ); -[mlname(plspause)] void c_plspause ( int pause ); +[mlname(plspause)] void c_plspause ( boolean pause ); [mlname(plsstrm)] void c_plsstrm ( int strm ); [mlname(plssub)] void c_plssub ( int nx, int ny ); [mlname(plssym)] void c_plssym ( double def, double scale ); @@ -134,7 +134,7 @@ [mlname(plw3d)] void c_plw3d ( double basex, double basey, double height, double xmin0, double xmax0, double ymin0, double ymax0, double zmin0, double zmax0, double alt, double az ); [mlname(plwid)] void c_plwid ( int width ); [mlname(plwind)] void c_plwind ( double xmin, double xmax, double ymin, double ymax ); -[mlname(plxormod)] void c_plxormod ( int mode, [out] int * status ); +[mlname(plxormod)] void c_plxormod ( boolean mode, [out] boolean * status ); [mlname(plseed)] void c_plseed ( [int64] unsigned int s ); [mlname(plrandd)] double c_plrandd ( void ); [mlname(plsetopt)] int c_plsetopt ( [string] const char * opt, [string] const char * optarg ); Modified: trunk/examples/ocaml/x08.ml =================================================================== --- trunk/examples/ocaml/x08.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x08.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -71,7 +71,7 @@ in plscmap1n 256; - plscmap1l 0 i h l s None; + plscmap1l false i h l s None; () let levels = 10 Modified: trunk/examples/ocaml/x11.ml =================================================================== --- trunk/examples/ocaml/x11.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x11.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -48,7 +48,7 @@ let s = [|0.8; 0.8|] in plscmap1n 256; (* TODO: The first argument to plscmap1l should be a boolean value *) - plscmap1l 0 i h l s None; + plscmap1l false i h l s None; () (*--------------------------------------------------------------------------*\ @@ -122,7 +122,7 @@ plmesh x y z (opt.(k) lor 4) | 2 -> (* magnitude colored wireframe plot with sides *) - plot3d x y z (opt.(k) lor 4) 1 + plot3d x y z (opt.(k) lor 4) true | 3 -> (* magnitude colored wireframe plot with base contour *) plmeshc x y z (opt.(k) lor 4 lor 8) clevel Modified: trunk/examples/ocaml/x15.ml =================================================================== --- trunk/examples/ocaml/x15.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x15.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -23,7 +23,7 @@ let h = [|260.0; 260.0; 20.0; 20.0|] in let l = [|0.5; 0.0; 0.0; 0.5|] in let s = [|1.0; 1.0; 1.0; 1.0|] in - plscmap1l 0 i h l s None; + plscmap1l false i h l s None; () (*--------------------------------------------------------------------------*\ @@ -37,7 +37,7 @@ let h = [|260.0; 260.0; 20.0; 20.0|] in let l = [|0.6; 0.0; 0.0; 0.6|] in let s = [|1.0; 0.5; 0.5; 1.0|] in - plscmap1l 0 i h l s None; + plscmap1l false i h l s None; () (*--------------------------------------------------------------------------*\ Modified: trunk/examples/ocaml/x20.ml =================================================================== --- trunk/examples/ocaml/x20.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x20.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -86,7 +86,7 @@ plsdev "psc"; (* new device type. Use a known existing driver *) plsfnam fname; (* file name *) - plcpstrm cur_strm 0; (* copy old stream parameters to new stream *) + plcpstrm cur_strm false; (* copy old stream parameters to new stream *) plreplot (); (* do the save *) plend1 (); (* close new device *) @@ -100,7 +100,7 @@ let b = [|0.0; 1.0|] in let pos = [|0.0; 1.0|] in plscmap1n num_col; - plscmap1l 1 pos r g b None; + plscmap1l true pos r g b None; () let () = @@ -183,13 +183,13 @@ let yi = 280.0 in let ye = 220.0 in - plspause 0; + plspause false; pladv 0; (* display selection only *) plimage img_f 1.0 width 1.0 height 0.0 0.0 xi xe ye yi; - plspause 1; + plspause true; (* zoom in selection *) plenv xi xe ye yi 1 (-1); Modified: trunk/examples/ocaml/x21.ml =================================================================== --- trunk/examples/ocaml/x21.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x21.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -52,7 +52,7 @@ let l = [|0.6; 0.6|] in let s = [|0.8; 0.8|] in plscmap1n 256; - plscmap1l 0 i h l s None; + plscmap1l false i h l s None; () let create_grid px py = Modified: trunk/examples/ocaml/x22.ml =================================================================== --- trunk/examples/ocaml/x22.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x22.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -241,7 +241,7 @@ circulation (); - let fill = 0 in + let fill = false in (* Set arrow style using arrow_x and arrow_y then plot using these arrows. *) @@ -250,7 +250,7 @@ (* Set arrow style using arrow2_x and arrow2_y then plot using these filled arrows. *) - let fill = 1 in + let fill = true in plsvect arrow2_x arrow2_y fill; constriction (); Modified: trunk/examples/ocaml/x30.ml =================================================================== --- trunk/examples/ocaml/x30.ml 2008-10-06 18:40:40 UTC (rev 8860) +++ trunk/examples/ocaml/x30.ml 2008-10-07 02:17:38 UTC (rev 8861) @@ -40,7 +40,7 @@ let gcoord = [|0.0; 0.0|] let bcoord = [|0.0; 0.0|] let acoord = [|0.0; 1.0|] -let rev = [|0; 0|] +let rev = [|false; false|] let () = ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); @@ -120,7 +120,7 @@ (* Create the color map with 128 colors and use plscmap1la to initialize the color values with a linear varying transparency (or alpha) *) plscmap1n 128; - plscmap1la 1 pos rcoord gcoord bcoord acoord (Some rev); + plscmap1la true pos rcoord gcoord bcoord acoord (Some rev); (* Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will used for the shade plot. plshades will use linear interpolation to This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-08 17:59:45
|
Revision: 8864 http://plplot.svn.sourceforge.net/plplot/?rev=8864&view=rev Author: airwin Date: 2008-10-08 17:59:43 +0000 (Wed, 08 Oct 2008) Log Message: ----------- For the case when neither MAKING<NAME>DLL nor USING<NAME>DLL are #defined (which happens for static library builds) then #define all of MAKING<NAME>DLL, USING<NAME>DLL, <NAME>DLLEXPORT and <NAME>DLLIMPORT to nothing to enforce necessary consistency between all those macro definitions. Modified Paths: -------------- trunk/include/pldll.h trunk/lib/csa/csadll.h trunk/lib/nn/nndll.h Modified: trunk/include/pldll.h =================================================================== --- trunk/include/pldll.h 2008-10-08 17:20:48 UTC (rev 8863) +++ trunk/include/pldll.h 2008-10-08 17:59:43 UTC (rev 8864) @@ -39,6 +39,9 @@ #else #define PLDLLIMPEXP #define PLDLLIMPEXP_DATA(type) type + /* Enforce consistency for this case. */ + #define PLDLLEXPORT + #define PLDLLIMPORT #endif #endif /* __PL_DLL_H */ Modified: trunk/lib/csa/csadll.h =================================================================== --- trunk/lib/csa/csadll.h 2008-10-08 17:20:48 UTC (rev 8863) +++ trunk/lib/csa/csadll.h 2008-10-08 17:59:43 UTC (rev 8864) @@ -39,6 +39,9 @@ #else #define CSADLLIMPEXP #define CSADLLIMPEXP_DATA(type) type + /* Enforce consistency for this case. */ + #define CSADLLEXPORT + #define CSADLLIMPORT #endif #endif /* __CSA_DLL_H */ Modified: trunk/lib/nn/nndll.h =================================================================== --- trunk/lib/nn/nndll.h 2008-10-08 17:20:48 UTC (rev 8863) +++ trunk/lib/nn/nndll.h 2008-10-08 17:59:43 UTC (rev 8864) @@ -39,6 +39,9 @@ #else #define NNDLLIMPEXP #define NNDLLIMPEXP_DATA(type) type + /* Enforce consistency for this case. */ + #define NNDLLEXPORT + #define NNDLLIMPORT #endif #endif /* __NN_DLL_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-10-10 07:24:35
|
Revision: 8871 http://plplot.svn.sourceforge.net/plplot/?rev=8871&view=rev Author: smekal Date: 2008-10-10 07:24:22 +0000 (Fri, 10 Oct 2008) Log Message: ----------- Changed the import/export macros for the driver sources to PLDLLIMPEXP_DRIVER. Added the corresponding code to pldll.h. Compiles on Linux (since I think these macros are ignored anyway - we need to activate the hide attribute). Modified Paths: -------------- trunk/drivers/CMakeLists.txt trunk/drivers/aqt.c trunk/drivers/cairo.c trunk/drivers/cgm.c trunk/drivers/dg300.c trunk/drivers/gcw.c trunk/drivers/gd.c trunk/drivers/gnome.c trunk/drivers/hpgl.c trunk/drivers/impress.c trunk/drivers/linuxvga.c trunk/drivers/ljii.c trunk/drivers/ljiip.c trunk/drivers/mem.c trunk/drivers/ntk.c trunk/drivers/null.c trunk/drivers/pbm.c trunk/drivers/pdf.c trunk/drivers/plmeta.c trunk/drivers/ps.c trunk/drivers/pstex.c trunk/drivers/psttf.cc trunk/drivers/svg.c trunk/drivers/tek.c trunk/drivers/tk.c trunk/drivers/tkwin.c trunk/drivers/wingcc.c trunk/drivers/wxwidgets.cpp trunk/drivers/xfig.c trunk/drivers/xwin.c trunk/drivers/xwinttf.c trunk/include/pldll.h Modified: trunk/drivers/CMakeLists.txt =================================================================== --- trunk/drivers/CMakeLists.txt 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/CMakeLists.txt 2008-10-10 07:24:22 UTC (rev 8871) @@ -27,7 +27,7 @@ if(ENABLE_DYNDRIVERS) set_source_files_properties( get-drv-info.c - PROPERTIES COMPILE_FLAGS "-I${LTDL_INCLUDE_DIR} -DUSINGPLDLL" + PROPERTIES COMPILE_FLAGS "-I${LTDL_INCLUDE_DIR} -DUSINGDLL" ) include_directories( @@ -63,13 +63,13 @@ if(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) set_source_files_properties( ${${SOURCE_ROOT_NAME}_SOURCE} - PROPERTIES COMPILE_FLAGS "${${SOURCE_ROOT_NAME}_COMPILE_FLAGS} -DUSINGPLDLL" + PROPERTIES COMPILE_FLAGS "${${SOURCE_ROOT_NAME}_COMPILE_FLAGS} -DUSINGDLL" ) #message("${SOURCE_ROOT_NAME}_COMPILE_FLAGS = ${${SOURCE_ROOT_NAME}_COMPILE_FLAGS}") else(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) set_source_files_properties( ${${SOURCE_ROOT_NAME}_SOURCE} - PROPERTIES COMPILE_FLAGS "-DUSINGPLDLL" + PROPERTIES COMPILE_FLAGS "-DUSINGDLL" ) endif(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) add_library(${SOURCE_ROOT_NAME} MODULE ${${SOURCE_ROOT_NAME}_SOURCE}) Modified: trunk/drivers/aqt.c =================================================================== --- trunk/drivers/aqt.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/aqt.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -51,7 +51,7 @@ static NSAutoreleasePool *arpool; /* Objective-C autorelease pool */ static id adapter; /* Adapter object */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_aqt = "aqt:AquaTerm (Mac OS X):1:aqt:50:aqt"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_aqt = "aqt:AquaTerm (Mac OS X):1:aqt:50:aqt"; static int currentPlot = 0; static int maxWindows = 30; @@ -186,7 +186,7 @@ /* PLplot interface functions */ -PLDLLIMPEXP void plD_dispatch_init_aqt (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_aqt (PLDispatchTable *pdt); void plD_init_aqt (PLStream *); void plD_line_aqt (PLStream *, short, short, short, short); void plD_polyline_aqt (PLStream *, short *, short *, PLINT); Modified: trunk/drivers/cairo.c =================================================================== --- trunk/drivers/cairo.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/cairo.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -99,7 +99,7 @@ #endif } PLCairo; -PLDLLIMPEXP const char* plD_DEVICE_INFO_cairo = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_cairo = #if defined(PLD_xcairo) "xcairo:Cairo X Windows Driver:1:cairo:59:xcairo\n" #endif @@ -838,7 +838,7 @@ static int XScreen; static Window rootWindow; -PLDLLIMPEXP void plD_dispatch_init_xcairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_xcairo (PLDispatchTable *pdt); void plD_init_xcairo (PLStream *); void plD_eop_xcairo (PLStream *); void plD_tidy_xcairo (PLStream *); @@ -1169,7 +1169,7 @@ #if defined(PLD_pdfcairo) -PLDLLIMPEXP void plD_dispatch_init_pdfcairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_pdfcairo (PLDispatchTable *pdt); void plD_init_pdfcairo (PLStream *); /*--------------------------------------------------------------------- @@ -1241,7 +1241,7 @@ #if defined(PLD_pscairo) -PLDLLIMPEXP void plD_dispatch_init_pscairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_pscairo (PLDispatchTable *pdt); void plD_init_pscairo (PLStream *); /*--------------------------------------------------------------------- @@ -1315,7 +1315,7 @@ #if defined(PLD_svgcairo) -PLDLLIMPEXP void plD_dispatch_init_svgcairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_svgcairo (PLDispatchTable *pdt); void plD_init_svgcairo (PLStream *); /*--------------------------------------------------------------------- @@ -1405,7 +1405,7 @@ #if defined(PLD_pngcairo) -PLDLLIMPEXP void plD_dispatch_init_pngcairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_pngcairo (PLDispatchTable *pdt); void plD_init_pngcairo (PLStream *); void plD_eop_pngcairo (PLStream *); @@ -1510,7 +1510,7 @@ #if defined(PLD_memcairo) -PLDLLIMPEXP void plD_dispatch_init_memcairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_memcairo (PLDispatchTable *pdt); void plD_init_memcairo (PLStream *); void plD_eop_memcairo (PLStream *); void plD_bop_memcairo (PLStream *); @@ -1699,7 +1699,7 @@ #if defined(PLD_extcairo) -PLDLLIMPEXP void plD_dispatch_init_extcairo (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_extcairo (PLDispatchTable *pdt); void plD_init_extcairo (PLStream *); void plD_bop_extcairo (PLStream *); void plD_eop_extcairo (PLStream *); Modified: trunk/drivers/cgm.c =================================================================== --- trunk/drivers/cgm.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/cgm.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -81,7 +81,7 @@ #include <cd.h> /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_cgm = "cgm:CGM file:0:cgm:44:cgm"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_cgm = "cgm:CGM file:0:cgm:44:cgm"; /* Prototypes for functions in this file. */ @@ -157,7 +157,7 @@ void plD_esc_cgm (PLStream *, PLINT, void *); -PLDLLIMPEXP void plD_dispatch_init_cgm( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_cgm( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "CGM (Computer Graphics metafile) file"; Modified: trunk/drivers/dg300.c =================================================================== --- trunk/drivers/dg300.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/dg300.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -10,9 +10,9 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_dg300 = "dg300:DG300 Terminal:0:dg300:25:dg300"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_dg300 = "dg300:DG300 Terminal:0:dg300:25:dg300"; -PLDLLIMPEXP void plD_dispatch_init_dg ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_dg ( PLDispatchTable *pdt ); void plD_init_dg (PLStream *); void plD_line_dg (PLStream *, short, short, short, short); Modified: trunk/drivers/gcw.c =================================================================== --- trunk/drivers/gcw.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/gcw.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -87,7 +87,7 @@ /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_gcw = "gcw:Gnome Canvas Widget:1:gcw:10:gcw"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_gcw = "gcw:Gnome Canvas Widget:1:gcw:10:gcw"; /* Global driver options */ @@ -139,7 +139,7 @@ void plD_state_gcw(PLStream *, PLINT); void plD_esc_gcw(PLStream *, PLINT, void *); -PLDLLIMPEXP void plD_dispatch_init_gcw( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_gcw( PLDispatchTable *pdt ) { #ifdef DEBUG_GCW_1 Modified: trunk/drivers/gd.c =================================================================== --- trunk/drivers/gd.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/gd.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -132,7 +132,7 @@ * and finally one of each. */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_gd = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_gd = #if defined(PLD_png) "png:PNG file:0:gd:39:png\n" #endif @@ -280,7 +280,7 @@ #ifdef PLD_png -PLDLLIMPEXP void plD_dispatch_init_png( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_png( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "PNG file"; @@ -302,7 +302,7 @@ #ifdef PLD_jpeg -PLDLLIMPEXP void plD_dispatch_init_jpeg( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_jpeg( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "JPEG File"; @@ -324,7 +324,7 @@ #ifdef PLD_gif -PLDLLIMPEXP void plD_dispatch_init_gif( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_gif( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "GIF File"; Modified: trunk/drivers/gnome.c =================================================================== --- trunk/drivers/gnome.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/gnome.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -39,7 +39,7 @@ #include <unistd.h> /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_gnome = "gnome:Gnome Canvas:1:gnome:6:gnome"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_gnome = "gnome:Gnome Canvas:1:gnome:6:gnome"; /*#undef DEBUG*/ #define DEBUG @@ -773,7 +773,7 @@ void plD_state_gnome (PLStream *, PLINT); void plD_esc_gnome (PLStream *, PLINT, void *); -PLDLLIMPEXP void plD_dispatch_init_gnome( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_gnome( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "Gnome Canvas"; Modified: trunk/drivers/hpgl.c =================================================================== --- trunk/drivers/hpgl.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/hpgl.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -37,7 +37,7 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_hpgl = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_hpgl = #if defined(PLD_hp7470) "hp7470:HP 7470 Plotter File (HPGL Cartridge, Small Plotter):0:hpgl:34:hp7470\n" #endif @@ -137,7 +137,7 @@ #ifdef PLD_hp7470 void plD_init_hp7470 (PLStream *); -PLDLLIMPEXP void plD_dispatch_init_hp7470( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_hp7470( PLDispatchTable *pdt ) { hpgl_dispatch_init_helper( pdt, "HP 7470 Plotter File (HPGL Cartridge, Small Plotter)", @@ -173,7 +173,7 @@ #ifdef PLD_hp7580 void plD_init_hp7580 (PLStream *); -PLDLLIMPEXP void plD_dispatch_init_hp7580( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_hp7580( PLDispatchTable *pdt ) { hpgl_dispatch_init_helper( pdt, "HP 7580 Plotter File (Large Plotter)", "hp7580", Modified: trunk/drivers/impress.c =================================================================== --- trunk/drivers/impress.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/impress.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -10,11 +10,11 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_impress = "imp:Impress File:0:impress:37:imp"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_impress = "imp:Impress File:0:impress:37:imp"; /* Function prototypes */ -PLDLLIMPEXP void plD_dispatch_init_imp ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_imp ( PLDispatchTable *pdt ); void plD_init_imp (PLStream *); void plD_line_imp (PLStream *, short, short, short, short); Modified: trunk/drivers/linuxvga.c =================================================================== --- trunk/drivers/linuxvga.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/linuxvga.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -18,7 +18,7 @@ #include <vga.h> /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_linuxvga = "linuxvga:Linux VGA driver:0:linuxvga:8:vga"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_linuxvga = "linuxvga:Linux VGA driver:0:linuxvga:8:vga"; /* Function prototypes */ @@ -59,7 +59,7 @@ static page_state; -PLDLLIMPEXP void plD_dispatch_init_vga( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_vga( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "Linux console VGA Screen"; Modified: trunk/drivers/ljii.c =================================================================== --- trunk/drivers/ljii.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/ljii.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -22,12 +22,12 @@ #endif /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_ljii = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_ljii = "ljii:LaserJet II Bitmap File (150 dpi):0:ljii:33:ljii"; /* Function prototypes */ -PLDLLIMPEXP void plD_dispatch_init_ljii ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_ljii ( PLDispatchTable *pdt ); void plD_init_ljii (PLStream *); void plD_line_ljii (PLStream *, short, short, short, short); Modified: trunk/drivers/ljiip.c =================================================================== --- trunk/drivers/ljiip.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/ljiip.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -27,12 +27,12 @@ #endif /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_ljiip = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_ljiip = "ljiip:LaserJet IIp/deskjet compressed graphics:0:ljiip:32:ljiip"; /* Function prototypes */ -PLDLLIMPEXP void plD_dispatch_init_ljiip ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_ljiip ( PLDispatchTable *pdt ); void plD_init_ljiip (PLStream *); void plD_line_ljiip (PLStream *, short, short, short, short); Modified: trunk/drivers/mem.c =================================================================== --- trunk/drivers/mem.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/mem.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -21,9 +21,9 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_mem = "mem:User-supplied memory device:-1:mem:46:mem"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_mem = "mem:User-supplied memory device:-1:mem:46:mem"; -PLDLLIMPEXP void plD_dispatch_init_mem ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_mem ( PLDispatchTable *pdt ); void plD_init_mem (PLStream *); void plD_line_mem (PLStream *, short, short, short, short); Modified: trunk/drivers/ntk.c =================================================================== --- trunk/drivers/ntk.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/ntk.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -34,10 +34,10 @@ #include <tk.h> /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_ntk = "ntk:New tk driver:1:ntk:43:ntk"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_ntk = "ntk:New tk driver:1:ntk:43:ntk"; -PLDLLIMPEXP void plD_dispatch_init_ntk ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_ntk ( PLDispatchTable *pdt ); void plD_init_ntk (PLStream *); void plD_line_ntk (PLStream *, short, short, short, short); Modified: trunk/drivers/null.c =================================================================== --- trunk/drivers/null.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/null.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -10,9 +10,9 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_null = "null:Null device:-1:null:42:null"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_null = "null:Null device:-1:null:42:null"; -PLDLLIMPEXP void plD_dispatch_init_null ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_null ( PLDispatchTable *pdt ); void plD_init_null (PLStream *); void plD_line_null (PLStream *, short, short, short, short); Modified: trunk/drivers/pbm.c =================================================================== --- trunk/drivers/pbm.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/pbm.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -14,10 +14,10 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_pbm = "pbm:PDB (PPM) Driver:0:pbm:38:pbm"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_pbm = "pbm:PDB (PPM) Driver:0:pbm:38:pbm"; -PLDLLIMPEXP void plD_dispatch_init_pbm ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_pbm ( PLDispatchTable *pdt ); void plD_init_pbm (PLStream *); void plD_line_pbm (PLStream *, short, short, short, short); Modified: trunk/drivers/pdf.c =================================================================== --- trunk/drivers/pdf.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/pdf.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -88,7 +88,7 @@ } pdfdev; /* local variables */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_pdf = "pdf:Portable Document Format PDF:1:pdf:58:pdf"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_pdf = "pdf:Portable Document Format PDF:1:pdf:58:pdf"; static jmp_buf env; /*********************************************************************** @@ -103,7 +103,7 @@ static void process_string( PLStream *, EscText * ); /* PLplot interface functions */ -PLDLLIMPEXP void plD_dispatch_init_pdf (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_pdf (PLDispatchTable *pdt); void plD_init_pdf (PLStream *); void plD_line_pdf (PLStream *, short, short, short, short); void plD_polyline_pdf (PLStream *, short *, short *, PLINT); Modified: trunk/drivers/plmeta.c =================================================================== --- trunk/drivers/plmeta.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/plmeta.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -37,10 +37,10 @@ #include <string.h> /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_plmeta = "plmeta:PLplot Native Meta-File:0:plmeta:26:plm"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_plmeta = "plmeta:PLplot Native Meta-File:0:plmeta:26:plm"; -PLDLLIMPEXP void plD_dispatch_init_plm ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_plm ( PLDispatchTable *pdt ); void plD_init_plm (PLStream *); void plD_line_plm (PLStream *, short, short, short, short); Modified: trunk/drivers/ps.c =================================================================== --- trunk/drivers/ps.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/ps.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -49,15 +49,15 @@ /* Device info */ -PLDLLIMPEXP const char * plD_DEVICE_INFO_ps = +PLDLLIMPEXP_DRIVER const char * plD_DEVICE_INFO_ps = "ps:PostScript File (monochrome):0:ps:29:psm\n" "psc:PostScript File (color):0:ps:30:psc"; /* Prototypes for functions in this file. */ -PLDLLIMPEXP void plD_dispatch_init_psm ( PLDispatchTable *pdt ); -PLDLLIMPEXP void plD_dispatch_init_psc ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_psm ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_psc ( PLDispatchTable *pdt ); static char *ps_getdate (void); static void ps_init (PLStream *); Modified: trunk/drivers/pstex.c =================================================================== --- trunk/drivers/pstex.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/pstex.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -12,7 +12,7 @@ #include "ps.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_pstex = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_pstex = "pstex:Combined Postscript/LaTeX files:0:pstex:41:pstex"; /*--------------------------------------------------------------------------*\ @@ -32,7 +32,7 @@ "Color Postscript/LaTeX (color=1|0)"}, {NULL, DRV_INT, NULL, NULL}}; -PLDLLIMPEXP void plD_dispatch_init_pstex( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_pstex( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr ="Combined Postscript/LaTeX files" ; Modified: trunk/drivers/psttf.cc =================================================================== --- trunk/drivers/psttf.cc 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/psttf.cc 2008-10-10 07:24:22 UTC (rev 8871) @@ -56,15 +56,15 @@ /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_psttf = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_psttf = "psttf:PostScript File (monochrome):0:psttf:55:psttfm\n" "psttfc:PostScript File (color):0:psttf:56:psttfc"; /* Prototypes for functions in this file. */ -PLDLLIMPEXP void plD_dispatch_init_psttfm ( PLDispatchTable *pdt ); -PLDLLIMPEXP void plD_dispatch_init_psttfc ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_psttfm ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_psttfc ( PLDispatchTable *pdt ); static char *ps_getdate (void); static void ps_init (PLStream *); Modified: trunk/drivers/svg.c =================================================================== --- trunk/drivers/svg.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/svg.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -48,7 +48,7 @@ /* local variables */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_svg = "svg:Scalable Vector Graphics (SVG 1.1):1:svg:57:svg"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_svg = "svg:Scalable Vector Graphics (SVG 1.1):1:svg:57:svg"; static int canvasXSize = 0; static int canvasYSize = 0; @@ -105,7 +105,7 @@ /* PLplot interface functions */ -PLDLLIMPEXP void plD_dispatch_init_svg (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_svg (PLDispatchTable *pdt); void plD_init_svg (PLStream *); void plD_line_svg (PLStream *, short, short, short, short); void plD_polyline_svg (PLStream *, short *, short *, PLINT); Modified: trunk/drivers/tek.c =================================================================== --- trunk/drivers/tek.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/tek.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -23,7 +23,7 @@ /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_tek = +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_tek = #if defined(PLD_conex) "conex:Conex vt320/tek emulator:1:tek:24:conex\n" #endif @@ -178,7 +178,7 @@ pdt->pl_esc = (plD_esc_fp) plD_esc_tek; } -PLDLLIMPEXP void plD_dispatch_init_xterm ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_xterm ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Xterm Window", "xterm", @@ -186,7 +186,7 @@ (plD_init_fp) plD_init_xterm ); } -PLDLLIMPEXP void plD_dispatch_init_tekt ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_tekt ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Tektronix Terminal (4010)", "tekt", @@ -194,7 +194,7 @@ (plD_init_fp) plD_init_tekt ); } -PLDLLIMPEXP void plD_dispatch_init_tek4107t ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_tek4107t ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Tektronix Terminal (4105/4107)", "tek4107t", @@ -202,7 +202,7 @@ (plD_init_fp) plD_init_tek4107t ); } -PLDLLIMPEXP void plD_dispatch_init_mskermit ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_mskermit ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "MS-Kermit emulator", "mskermit", @@ -210,7 +210,7 @@ (plD_init_fp) plD_init_mskermit ); } -PLDLLIMPEXP void plD_dispatch_init_versaterm( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_versaterm( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Versaterm vt100/tek emulator", "versaterm", @@ -218,7 +218,7 @@ (plD_init_fp) plD_init_versaterm ); } -PLDLLIMPEXP void plD_dispatch_init_vlt ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_vlt ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "VLT vt100/tek emulator", "vlt", @@ -226,7 +226,7 @@ (plD_init_fp) plD_init_vlt ); } -PLDLLIMPEXP void plD_dispatch_init_conex ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_conex ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Conex vt320/tek emulator", "conex", @@ -234,7 +234,7 @@ (plD_init_fp) plD_init_conex ); } -PLDLLIMPEXP void plD_dispatch_init_tekf ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_tekf ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Tektronix File (4010)", "tekf", @@ -242,7 +242,7 @@ (plD_init_fp) plD_init_tekf ); } -PLDLLIMPEXP void plD_dispatch_init_tek4107f ( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_tek4107f ( PLDispatchTable *pdt ) { tek_dispatch_init_helper( pdt, "Tektronix File (4105/4107)", "tek4107f", Modified: trunk/drivers/tk.c =================================================================== --- trunk/drivers/tk.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/tk.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -63,7 +63,7 @@ #endif /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_tk = "tk:Tcl/TK Window:1:tk:7:tk"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_tk = "tk:Tcl/TK Window:1:tk:7:tk"; /* Number of instructions to skip between updates */ @@ -89,7 +89,7 @@ /* Driver entry and dispatch setup */ -PLDLLIMPEXP void plD_dispatch_init_tk ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_tk ( PLDispatchTable *pdt ); void plD_init_tk (PLStream *); void plD_line_tk (PLStream *, short, short, short, short); Modified: trunk/drivers/tkwin.c =================================================================== --- trunk/drivers/tkwin.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/tkwin.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -80,7 +80,7 @@ #endif /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_tkwin = "tkwin:New tk driver:1:tkwin:45:tkwin"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_tkwin = "tkwin:New tk driver:1:tkwin:45:tkwin"; void * ckcalloc(size_t nmemb, size_t size); @@ -202,7 +202,7 @@ static void StoreCmap1 (PLStream *pls); static void WaitForPage(PLStream *pls); -PLDLLIMPEXP void plD_dispatch_init_tkwin ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_tkwin ( PLDispatchTable *pdt ); void plD_init_tkwin (PLStream *); void plD_line_tkwin (PLStream *, short, short, short, short); Modified: trunk/drivers/wingcc.c =================================================================== --- trunk/drivers/wingcc.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/wingcc.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -62,7 +62,7 @@ /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_wingcc = "wingcc:Win32 (GCC):1:wingcc:9:wingcc"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_wingcc = "wingcc:Win32 (GCC):1:wingcc:9:wingcc"; /* Struct to hold device-specific info. */ @@ -112,7 +112,7 @@ } wingcc_Dev; -PLDLLIMPEXP void plD_dispatch_init_wingcc ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_wingcc ( PLDispatchTable *pdt ); void plD_init_wingcc (PLStream *); void plD_line_wingcc (PLStream *, short, short, short, short); Modified: trunk/drivers/wxwidgets.cpp =================================================================== --- trunk/drivers/wxwidgets.cpp 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/wxwidgets.cpp 2008-10-10 07:24:22 UTC (rev 8871) @@ -94,14 +94,14 @@ \*----------------------------------------------------------------------*/ /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_wxwidgets = "wxwidgets:wxWidgets DC:1:wxwidgets:51:wxwidgets"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_wxwidgets = "wxwidgets:wxWidgets DC:1:wxwidgets:51:wxwidgets"; /*--------------------------------------------------------------------------*\ * void plD_dispatch_init_wxwidgets( PLDispatchTable *pdt ) * * Make driver functions known to plplot. \*--------------------------------------------------------------------------*/ -PLDLLIMPEXP void plD_dispatch_init_wxwidgets( PLDispatchTable *pdt ) +PLDLLIMPEXP_DRIVER void plD_dispatch_init_wxwidgets( PLDispatchTable *pdt ) { #ifndef ENABLE_DYNDRIVERS pdt->pl_MenuStr = "wxWidgets DC"; Modified: trunk/drivers/xfig.c =================================================================== --- trunk/drivers/xfig.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/xfig.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -10,11 +10,11 @@ #include "drivers.h" /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_xfig = "xfig:Fig file:0:xfig:31:xfig"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_xfig = "xfig:Fig file:0:xfig:31:xfig"; /* Function prototypes */ -PLDLLIMPEXP void plD_dispatch_init_xfig ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_xfig ( PLDispatchTable *pdt ); void plD_init_xfig (PLStream *); void plD_line_xfig (PLStream *, short, short, short, short); Modified: trunk/drivers/xwin.c =================================================================== --- trunk/drivers/xwin.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/xwin.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -45,7 +45,7 @@ #endif /* Device info */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_xwin = "xwin:X-Window (Xlib):1:xwin:5:xw"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_xwin = "xwin:X-Window (Xlib):1:xwin:5:xw"; static int synchronize = 0; /* change to 1 for X synchronized operation */ /* Use "-drvopt sync" cmd line option to set. */ @@ -126,7 +126,7 @@ /* Driver entry and dispatch setup */ -PLDLLIMPEXP void plD_dispatch_init_xw ( PLDispatchTable *pdt ); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_xw ( PLDispatchTable *pdt ); void plD_init_xw (PLStream *); void plD_line_xw (PLStream *, short, short, short, short); Modified: trunk/drivers/xwinttf.c =================================================================== --- trunk/drivers/xwinttf.c 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/drivers/xwinttf.c 2008-10-10 07:24:22 UTC (rev 8871) @@ -57,7 +57,7 @@ /* local variables */ -PLDLLIMPEXP const char* plD_DEVICE_INFO_xwinttf = "xwinttf:TrueType X Windows Driver:1:xwinttf:59:xwinttf"; +PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_xwinttf = "xwinttf:TrueType X Windows Driver:1:xwinttf:59:xwinttf"; static int currentPage = -1; static int XScreen; @@ -126,7 +126,7 @@ /* PLplot interface functions */ -PLDLLIMPEXP void plD_dispatch_init_xwinttf (PLDispatchTable *pdt); +PLDLLIMPEXP_DRIVER void plD_dispatch_init_xwinttf (PLDispatchTable *pdt); void plD_init_xwinttf (PLStream *); void plD_line_xwinttf (PLStream *, short, short, short, short); void plD_polyline_xwinttf (PLStream *, short *, short *, PLINT); Modified: trunk/include/pldll.h =================================================================== --- trunk/include/pldll.h 2008-10-10 06:33:54 UTC (rev 8870) +++ trunk/include/pldll.h 2008-10-10 07:24:22 UTC (rev 8871) @@ -74,4 +74,21 @@ #define PLDLLIMPEXP_WX_DATA(type) PLDLLIMPORT type #endif +#if defined(aqt_EXPORTS) || defined(cairo_EXPORTS) || defined(cgm_EXPORTS) || \ + defined(dg300_EXPORTS) || defined(gd_EXPORTS) || defined(gcw_EXPORTS) || \ + defined(hpgl_EXPORTS) || defined(impress_EXPORTS) || defined(linuxvga_EXPORTS) || \ + defined(ljii_EXPORTS) || defined(ljiip_EXPORTS) || defined(mem_EXPORTS) || \ + defined(ntk_EXPORTS) || defined(null_EXPORTS) || defined(pbm_EXPORTS) || \ + defined(pdf_EXPORTS) || defined(plmeta_EXPORTS) || defined(ps_EXPORTS) || \ + defined(pstex_EXPORTS) || defined(psttf_EXPORTS) || defined(svg_EXPORTS) || \ + defined(tek_EXPORTS) || defined(tk_EXPORTS) || defined(tkwin_EXPORTS) || \ + defined(wingcc_EXPORTS) || defined(wxwidgets_EXPORTS) || defined(xfig_EXPORTS) || \ + defined(xwin_EXPORTS) + #define PLDLLIMPEXP_DRIVER PLDLLEXPORT + #define PLDLLIMPEXP_DRIVER_DATA(type) PLDLLEXPORT type +#else + #define PLDLLIMPEXP_DRIVER PLDLLIMPORT + #define PLDLLIMPEXP_DRIVER_DATA(type) PLDLLIMPORT type +#endif + #endif /* __PL_DLL_H */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-10 18:24:47
|
Revision: 8873 http://plplot.svn.sourceforge.net/plplot/?rev=8873&view=rev Author: airwin Date: 2008-10-10 18:24:39 +0000 (Fri, 10 Oct 2008) Log Message: ----------- Fix library name spelling mistakes for C wrapper libraries for fortran. Modified Paths: -------------- trunk/bindings/f77/plstubs.h trunk/bindings/f95/plstubs.h trunk/include/pldll.h Modified: trunk/bindings/f77/plstubs.h =================================================================== --- trunk/bindings/f77/plstubs.h 2008-10-10 07:25:04 UTC (rev 8872) +++ trunk/bindings/f77/plstubs.h 2008-10-10 18:24:39 UTC (rev 8873) @@ -117,7 +117,7 @@ \*----------------------------------------------------------------------*/ #if STUB_LINKAGE==STUB_LAU -#define FNAME(x,y) PLDLLIMPEXP_F77 y##_ +#define FNAME(x,y) PLDLLIMPEXP_F77C y##_ #define FNAME_(x,y) y##_ #elif STUB_LINKAGE == STUB_L @@ -133,7 +133,7 @@ #define FNAME_(x,y) x #elif STUB_LINKAGE == STUB_STDCALL -#define FNAME(x,y) PLDLLIMPEXP_F77 __stdcall x +#define FNAME(x,y) PLDLLIMPEXP_F77C __stdcall x #define FNAME_(x,y) x #else Modified: trunk/bindings/f95/plstubs.h =================================================================== --- trunk/bindings/f95/plstubs.h 2008-10-10 07:25:04 UTC (rev 8872) +++ trunk/bindings/f95/plstubs.h 2008-10-10 18:24:39 UTC (rev 8873) @@ -117,7 +117,7 @@ \*----------------------------------------------------------------------*/ #if STUB_LINKAGE==STUB_LAU -#define FNAME(x,y) PLDLLIMPEXP_F95 y##_ +#define FNAME(x,y) PLDLLIMPEXP_F95C y##_ #elif STUB_LINKAGE == STUB_L #define FNAME(x,y) y @@ -126,7 +126,7 @@ #define FNAME(x,y) x #elif STUB_LINKAGE == STUB_STDCALL -#define FNAME(x,y) PLDLLIMPEXP_F95 __stdcall x +#define FNAME(x,y) PLDLLIMPEXP_F95C __stdcall x #elif STUB_LINKAGE == STUB_FORTRAN #define FNAME(x,y) fortran x Modified: trunk/include/pldll.h =================================================================== --- trunk/include/pldll.h 2008-10-10 07:25:04 UTC (rev 8872) +++ trunk/include/pldll.h 2008-10-10 18:24:39 UTC (rev 8873) @@ -50,20 +50,20 @@ #define PLDLLIMPEXP_CXX_DATA(type) PLDLLIMPORT type #endif -#if defined(plplotf77d_EXPORTS) - #define PLDLLIMPEXP_F77 PLDLLEXPORT - #define PLDLLIMPEXP_F77_DATA(type) PLDLLEXPORT type +#if defined(plplotf77cd_EXPORTS) + #define PLDLLIMPEXP_F77C PLDLLEXPORT + #define PLDLLIMPEXP_F77C_DATA(type) PLDLLEXPORT type #else - #define PLDLLIMPEXP_F77 PLDLLIMPORT - #define PLDLLIMPEXP_F77_DATA(type) PLDLLIMPORT type + #define PLDLLIMPEXP_F77C PLDLLIMPORT + #define PLDLLIMPEXP_F77C_DATA(type) PLDLLIMPORT type #endif -#if defined(plplotf95d_EXPORTS) - #define PLDLLIMPEXP_F95 PLDLLEXPORT - #define PLDLLIMPEXP_F95_DATA(type) PLDLLEXPORT type +#if defined(plplotf95cd_EXPORTS) + #define PLDLLIMPEXP_F95C PLDLLEXPORT + #define PLDLLIMPEXP_F95C_DATA(type) PLDLLEXPORT type #else - #define PLDLLIMPEXP_F95 PLDLLIMPORT - #define PLDLLIMPEXP_F95_DATA(type) PLDLLIMPORT type + #define PLDLLIMPEXP_F95C PLDLLIMPORT + #define PLDLLIMPEXP_F95C_DATA(type) PLDLLIMPORT type #endif #if defined(plplotwxwidgetsd_EXPORTS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-10-12 21:28:24
|
Revision: 8887 http://plplot.svn.sourceforge.net/plplot/?rev=8887&view=rev Author: andrewross Date: 2008-10-12 21:28:14 +0000 (Sun, 12 Oct 2008) Log Message: ----------- Ocaml patch from commited by ANR on behalf of Hez Carty. This patch 1) Fixes plgfci support for ocaml. 2) Tidies up the 3D API for plmesh, plsurf3d and plot3d. 3) Cleans up the examples to remove some outdated comments. Modified Paths: -------------- trunk/bindings/ocaml/plplot.idl trunk/bindings/ocaml/plplot_h trunk/bindings/ocaml/plplot_h.inc trunk/bindings/ocaml/touchup.ml trunk/examples/ocaml/x08.ml trunk/examples/ocaml/x09.ml trunk/examples/ocaml/x11.ml trunk/examples/ocaml/x21.ml trunk/examples/ocaml/x23.ml trunk/examples/ocaml/x28.ml Modified: trunk/bindings/ocaml/plplot.idl =================================================================== --- trunk/bindings/ocaml/plplot.idl 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/bindings/ocaml/plplot.idl 2008-10-12 21:28:14 UTC (rev 8887) @@ -17,6 +17,22 @@ along with ocaml-plplot. If not, see <http://www.gnu.org/licenses/>. */ +// Taken from the plplot.h 3D plot style definitions +enum plplot3d_style_enum { + PL_DIFFUSE = 0, + PL_DRAW_LINEX = 1, + PL_DRAW_LINEY = 2, + PL_DRAW_LINEXY = 3, + PL_MAG_COLOR = 4, + PL_BASE_CONT = 8, + PL_TOP_CONT = 16, + PL_SURF_CONT = 32, + PL_DRAW_SIDES = 64, + PL_FACETED = 128, + PL_MESH = 256 +}; +typedef [set] enum plplot3d_style_enum plplot3d_style; + // This is a simplified and modified version of the plplot.h file. #include "plplot_h.inc" @@ -141,11 +157,3 @@ RAW_ML(external plgriddata : float array -> float array -> float array -> float array -> float array -> plplot_grid_method_type -> float -> float array array = "ml_plgriddata_bytecode" "ml_plgriddata") RAW_ML(external plparseopts : string array -> plplot_parse_method_type array -> int = "ml_plparseopts") -// Taken from the plplot.h 3D plot style definitions -// XXX TODO This is currently unused... -/* -enum plot_style_enum { DRAW_LINEX = 1, DRAW_LINEY = 2, DRAW_LINEXY = 3, MAG_COLOR = 4, - BASE_CONT = 8, TOP_CONT = 16, SURF_CONT = 32, DRAW_SIDES = 64, - FACETED = 128, MESH = 256 }; -typedef [set] enum plot_style_enum plot_style; -*/ Modified: trunk/bindings/ocaml/plplot_h =================================================================== --- trunk/bindings/ocaml/plplot_h 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/bindings/ocaml/plplot_h 2008-10-12 21:28:14 UTC (rev 8887) @@ -3,7 +3,7 @@ //typedef unsigned int PLUNICODE; //typedef int PLINT; -#define PLUNICODE unsigned int +#define PLUNICODE long long #define PLINT int //typedef PLINT PLBOOL; @@ -257,10 +257,10 @@ */ void -c_plmesh(PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt); +c_plmesh(PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, plplot3d_style opt); void -c_plmeshc(PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, +c_plmeshc(PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, plplot3d_style opt, PLFLT *clevel, PLINT nlevel); void @@ -276,11 +276,11 @@ void c_plot3d(PLFLT *x, PLFLT *y, PLFLT **z, - PLINT nx, PLINT ny, PLINT opt, PLBOOL side); + PLINT nx, PLINT ny, plplot3d_style opt, PLBOOL side); void c_plot3dc(PLFLT *x, PLFLT *y, PLFLT **z, - PLINT nx, PLINT ny, PLINT opt, + PLINT nx, PLINT ny, plplot3d_style opt, PLFLT *clevel, PLINT nlevel); /* @@ -530,7 +530,7 @@ void c_plsurf3d(PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, - PLINT opt, PLFLT *clevel, PLINT nlevel); + plplot3d_style opt, PLFLT *clevel, PLINT nlevel); /* void Modified: trunk/bindings/ocaml/plplot_h.inc =================================================================== --- trunk/bindings/ocaml/plplot_h.inc 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/bindings/ocaml/plplot_h.inc 2008-10-12 21:28:14 UTC (rev 8887) @@ -35,7 +35,7 @@ [mlname(plgdidev)] void c_plgdidev ( [out] double * p_mar, [out] double * p_aspect, [out] double * p_jx, [out] double * p_jy ); [mlname(plgdiori)] void c_plgdiori ( [out] double * p_rot ); [mlname(plgdiplt)] void c_plgdiplt ( [out] double * p_xmin, [out] double * p_ymin, [out] double * p_xmax, [out] double * p_ymax ); -[mlname(plgfci)] void c_plgfci ( [out, int64] unsigned int * pfci ); +[mlname(plgfci)] void c_plgfci ( [out] long long * pfci ); [mlname(plgfam)] void c_plgfam ( [out] int * p_fam, [out] int * p_num, [out] int * p_bmax ); [mlname(plgfnam)] void c_plgfnam ( [string, out, length_is(1024)] char * fnam ); [mlname(plgfont)] void c_plgfont ( [out] int * p_family, [out] int * p_style, [out] int * p_weight ); @@ -60,13 +60,13 @@ [mlname(plline)] void c_plline ( int n, [in, size_is(n)] double * x, [in, size_is(n)] double * y ); [mlname(plline3)] void c_plline3 ( int n, [in, size_is(n)] double * x, [in, size_is(n)] double * y, [in, size_is(n)] double * z ); [mlname(pllsty)] void c_pllsty ( int lin ); -[mlname(plmesh)] void c_plmesh ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt ); -[mlname(plmeshc)] void c_plmeshc ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, [size_is(nlevel), in] double * clevel, int nlevel ); +[mlname(plmesh)] void c_plmesh ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, plplot3d_style opt ); +[mlname(plmeshc)] void c_plmeshc ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, plplot3d_style opt, [size_is(nlevel), in] double * clevel, int nlevel ); [mlname(plmkstrm)] void c_plmkstrm ( [out] int * p_strm ); [mlname(plmtex)] void c_plmtex ( [string] const char * side, double disp, double pos, double just, [string] const char * text ); [mlname(plmtex3)] void c_plmtex3 ( [string] const char * side, double disp, double pos, double just, [string] const char * text ); -[mlname(plot3d)] void c_plot3d ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, boolean side ); -[mlname(plot3dc)] void c_plot3dc ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, [size_is(nlevel), in] double * clevel, int nlevel ); +[mlname(plot3d)] void c_plot3d ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, plplot3d_style opt, boolean side ); +[mlname(plot3dc)] void c_plot3dc ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, plplot3d_style opt, [size_is(nlevel), in] double * clevel, int nlevel ); [mlname(plpat)] void c_plpat ( int nlin, [in, size_is(nlin)] int * inc, [in, size_is(nlin)] int * del ); [mlname(plpoin)] void c_plpoin ( int n, [in, size_is(n)] double * x, [in, size_is(n)] double * y, int code ); [mlname(plpoin3)] void c_plpoin3 ( int n, [in, size_is(n)] double * x, [in, size_is(n)] double * y, [in, size_is(n)] double * z, int code ); @@ -101,7 +101,7 @@ [mlname(plsdiplz)] void c_plsdiplz ( double xmin, double ymin, double xmax, double ymax ); [mlname(plsesc)] void c_plsesc ( char esc ); [mlname(plsfam)] void c_plsfam ( int fam, int num, int bmax ); -[mlname(plsfci)] void c_plsfci ( [int64] unsigned int fci ); +[mlname(plsfci)] void c_plsfci ( long long fci ); [mlname(plsfnam)] void c_plsfnam ( [string] const char * fnam ); [mlname(plsfont)] void c_plsfont ( int family, int style, int weight ); [mlname(plsmaj)] void c_plsmaj ( double def, double scale ); @@ -118,7 +118,7 @@ [mlname(plstripd)] void c_plstripd ( int id ); [mlname(plimage)] void c_plimage ( [in, size_is(nx, ny)] double ** idata, int nx, int ny, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, double Dxmin, double Dxmax, double Dymin, double Dymax ); [mlname(plstyl)] void c_plstyl ( int nms, [size_is(nms)] int * mark, [size_is(nms)] int * space ); -[mlname(plsurf3d)] void c_plsurf3d ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, int opt, [size_is(nlevel), in] double * clevel, int nlevel ); +[mlname(plsurf3d)] void c_plsurf3d ( [size_is(nx), in] double * x, [size_is(ny), in] double * y, [size_is(nx, ny), in] double ** z, int nx, int ny, plplot3d_style opt, [size_is(nlevel), in] double * clevel, int nlevel ); [mlname(plsvpa)] void c_plsvpa ( double xmin, double xmax, double ymin, double ymax ); [mlname(plsxax)] void c_plsxax ( int digmax, int digits ); void plsxwin ( int window_id ); Modified: trunk/bindings/ocaml/touchup.ml =================================================================== --- trunk/bindings/ocaml/touchup.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/bindings/ocaml/touchup.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -239,8 +239,8 @@ misc. check (anything, as long as it's a bool) attributes, if all of the above are true *) - (* "PLUNICODE" parameters need at least unsigned int32 width ints, - so use Int64.t values to be safe. *) + (* OCaml does not support unsigned integer values in its standard library + so use Int64.t values for unsigned ints to be safe. *) true, pmatch "unsigned int" p_type, true, Modified: trunk/examples/ocaml/x08.ml =================================================================== --- trunk/examples/ocaml/x08.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/examples/ocaml/x08.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -160,22 +160,20 @@ "bcdmnstuv" "z axis" 0.0 0; plcol0 2; - (* NOTE: As of now, the named variables for the opt parameter options - have not been defined in the OCaml interface. *) match ifshade with 0 -> (* diffuse light surface plot *) cmap1_init true; - plsurf3d x y z 0 [||]; + plsurf3d x y z [PL_DIFFUSE] [||]; | 1 -> (* magnitude colored plot *) cmap1_init false; - plsurf3d x y z 4 [||]; + plsurf3d x y z [PL_MAG_COLOR] [||]; | 2 -> (* magnitude colored plot with faceted squares *) cmap1_init false; - plsurf3d x y z (4 + 128) [||]; + plsurf3d x y z [PL_MAG_COLOR; PL_FACETED] [||]; | _ -> (* magnitude colored plot with contours *) cmap1_init false; - plsurf3d x y z (4 + 32 + 8) clevel; + plsurf3d x y z [PL_MAG_COLOR; PL_SURF_CONT; PL_BASE_CONT] clevel; done done; Modified: trunk/examples/ocaml/x09.ml =================================================================== --- trunk/examples/ocaml/x09.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/examples/ocaml/x09.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -87,8 +87,6 @@ let lev = Array.init 10 (fun i -> 0.05 +. 0.10 *. float_of_int i) in plcol0 2; - (* TODO FIXME XXX: This is not correct because pltr2 is not properly - implemented in OCaml at this point. *) plset_pltr (fun x y -> pltr2 x y xg yg); plcont z 1 rpts 1 thetapts lev; plunset_pltr (); Modified: trunk/examples/ocaml/x11.ml =================================================================== --- trunk/examples/ocaml/x11.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/examples/ocaml/x11.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -28,10 +28,7 @@ let ypts = 46 (* Data points in y *) let levels = 10 -(* FIXME TODO: The plot style #define statements have not been brought over to - the OCaml interface yet. This example uses the constant values until they - are properly carried over. *) -let opt = [|3; 3|] +let opt = [|PL_DRAW_LINEXY; PL_DRAW_LINEXY|] let alt = [|33.0; 17.0|] let az = [|24.0; 115.0|] @@ -47,7 +44,6 @@ let l = [|0.6; 0.6|] in let s = [|0.8; 0.8|] in plscmap1n 256; - (* TODO: The first argument to plscmap1l should be a boolean value *) plscmap1l false i h l s None; () @@ -116,16 +112,16 @@ let () = match i with 0 -> - plmesh x y z opt.(k) + plmesh x y z [opt.(k)] | 1 -> (* magnitude colored wireframe plot *) - plmesh x y z (opt.(k) lor 4) + plmesh x y z [opt.(k); PL_MAG_COLOR] | 2 -> (* magnitude colored wireframe plot with sides *) - plot3d x y z (opt.(k) lor 4) true + plot3d x y z [opt.(k); PL_MAG_COLOR] true | 3 -> (* magnitude colored wireframe plot with base contour *) - plmeshc x y z (opt.(k) lor 4 lor 8) clevel + plmeshc x y z [opt.(k); PL_MAG_COLOR; PL_BASE_CONT] clevel | _ -> raise (Failure "You let i get too big!") in Modified: trunk/examples/ocaml/x21.ml =================================================================== --- trunk/examples/ocaml/x21.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/examples/ocaml/x21.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -229,8 +229,7 @@ "bcdfntu" "Z" 0.5 0; plcol0 15; pllab "" "" title.(alg - 1); - (* TODO FIXME -- The proper PLplot constants should be used here... *) - plot3dc xg yg zg (3 lor 4 lor 8) clev; + plot3dc xg yg zg [PL_DRAW_LINEXY; PL_MAG_COLOR; PL_BASE_CONT] clev; ); done done; Modified: trunk/examples/ocaml/x23.ml =================================================================== --- trunk/examples/ocaml/x23.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/examples/ocaml/x23.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -274,7 +274,8 @@ (* Demonstrate methods of getting the current fonts *) let fci_old = plgfci () in let ifamily, istyle, iweight = plgfont () in - printf "For example 23 prior to page 12 the FCI is 0x%x\n" fci_old; + printf "For example 23 prior to page 12 the FCI is 0x%lx\n" + (Int64.to_int32 fci_old); printf "For example 23 prior to page 12 the font family, style and weight are %s %s %s\n" family.(ifamily) style.(istyle) weight.(iweight); Modified: trunk/examples/ocaml/x28.ml =================================================================== --- trunk/examples/ocaml/x28.ml 2008-10-12 19:58:13 UTC (rev 8886) +++ trunk/examples/ocaml/x28.ml 2008-10-12 21:28:14 UTC (rev 8887) @@ -138,7 +138,7 @@ 0.0 " revolution"; done; (* Draw minimal 3D grid to finish defining the 3D box. *) - plmesh x y z 3; + plmesh x y z [PL_DRAW_LINEXY]; (* Page 2: Demonstrate rotation of string around its axis. *) pladv 0; @@ -205,7 +205,7 @@ 0.5 "rotation for z = z#dmin#u"; done; (* Draw minimal 3D grid to finish defining the 3D box. *) - plmesh x y z 3; + plmesh x y z [PL_DRAW_LINEXY]; (* Page 3: Demonstrate shear of string along its axis. *) (* Work around xcairo and pngcairo (but not pscairo) problems for @@ -276,7 +276,7 @@ 0.5 "shear for z = z#dmin#u"; done; (* Draw minimal 3D grid to finish defining the 3D box. *) - plmesh x y z 3; + plmesh x y z [PL_DRAW_LINEXY]; (* Page 4: Demonstrate drawing a string on a 3D path. *) pladv 0; @@ -324,7 +324,7 @@ done; (* Draw minimal 3D grid to finish defining the 3D box. *) - plmesh x y z 3; + plmesh x y z [PL_DRAW_LINEXY]; (* Page 5: Demonstrate plmtex3 axis labelling capability *) pladv 0; @@ -351,7 +351,7 @@ plmtex3 "zs" (-2.5) 0.5 0.5 "Arbitrarily displaced"; plmtex3 "zs" (-1.0) 0.5 0.5 "secondary Z-axis label"; (* Draw minimal 3D grid to finish defining the 3D box. *) - plmesh x y z 3; + plmesh x y z [PL_DRAW_LINEXY]; (* Clean up. *) plend (); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-14 01:41:18
|
Revision: 8891 http://plplot.svn.sourceforge.net/plplot/?rev=8891&view=rev Author: airwin Date: 2008-10-14 01:41:12 +0000 (Tue, 14 Oct 2008) Log Message: ----------- Sort out visibility issues associated with libplplotgnome2. Modified Paths: -------------- trunk/bindings/gnome2/lib/CMakeLists.txt trunk/include/drivers.h trunk/include/gcw.h trunk/include/pldll.h trunk/include/plplotP.h trunk/include/plplotcanvas.h trunk/include/plstrm.h Modified: trunk/bindings/gnome2/lib/CMakeLists.txt =================================================================== --- trunk/bindings/gnome2/lib/CMakeLists.txt 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/bindings/gnome2/lib/CMakeLists.txt 2008-10-14 01:41:12 UTC (rev 8891) @@ -25,9 +25,21 @@ gcw-lib.c ) +if(BUILD_SHARED_LIBS) + SET_SOURCE_FILES_PROPERTIES( + ${plplotgnome2${LIB_TAG}_LIB_SRCS} + PROPERTIES COMPILE_FLAGS "-DUSINGDLL" + ) +endif(BUILD_SHARED_LIBS) + +get_source_file_property(PLGNOME2_COMPILE_PROPS plplotcanvas.c COMPILE_FLAGS) +# Deal with NOTFOUND case. +if(NOT PLGNOME2_COMPILE_PROPS) + set(PLGNOME2_COMPILE_PROPS) +endif(NOT PLGNOME2_COMPILE_PROPS) set_source_files_properties( ${plplotgnome2${LIB_TAG}_LIB_SRCS} -PROPERTIES COMPILE_FLAGS ${gcw_COMPILE_FLAGS} +PROPERTIES COMPILE_FLAGS "${PLGNOME2_COMPILE_PROPS} ${gcw_COMPILE_FLAGS}" ) # Set the include path Modified: trunk/include/drivers.h =================================================================== --- trunk/include/drivers.h 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/include/drivers.h 2008-10-14 01:41:12 UTC (rev 8891) @@ -107,8 +107,9 @@ void plbuf_tidy (PLStream *); void plbuf_state (PLStream *, PLINT); void plbuf_esc (PLStream *, PLINT, void *); -void * plbuf_save (PLStream *, void *); -void * plbuf_switch (PLStream *, void *); +PLDLLIMPEXP void * plbuf_save (PLStream *, void *); +PLDLLIMPEXP void * plbuf_switch (PLStream *, void *); +PLDLLIMPEXP void plbuf_restore (PLStream *, void *); PLDLLIMPEXP void plRemakePlot (PLStream *); Modified: trunk/include/gcw.h =================================================================== --- trunk/include/gcw.h 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/include/gcw.h 2008-10-14 01:41:12 UTC (rev 8891) @@ -134,11 +134,11 @@ /* Private functions */ void gcw_debug(char* msg); -void gcw_set_gdk_color(); -void gcw_clear_background(); -void gcw_init_canvas(GnomeCanvas* canvas); -void gcw_install_canvas(GnomeCanvas *canvas); -void gcw_set_device_size(PLINT width,PLINT height); +PLDLLIMPEXP_GNOME2 void gcw_set_gdk_color(); +PLDLLIMPEXP_GNOME2 void gcw_clear_background(); +PLDLLIMPEXP_GNOME2 void gcw_init_canvas(GnomeCanvas* canvas); +PLDLLIMPEXP_GNOME2 void gcw_install_canvas(GnomeCanvas *canvas); +PLDLLIMPEXP_GNOME2 void gcw_set_device_size(PLINT width,PLINT height); void gcw_set_canvas_size(GnomeCanvas* canvas,PLINT width,PLINT height); void gcw_set_canvas_zoom(GnomeCanvas* canvas,PLFLT magnification); void gcw_use_persistence(PLINT use_persistence); Modified: trunk/include/pldll.h =================================================================== --- trunk/include/pldll.h 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/include/pldll.h 2008-10-14 01:41:12 UTC (rev 8891) @@ -90,6 +90,14 @@ #define PLDLLIMPEXP_TCLTK_DATA(type) PLDLLIMPORT type #endif +#if defined(plplotgnome2d_EXPORTS) + #define PLDLLIMPEXP_GNOME2 PLDLLEXPORT + #define PLDLLIMPEXP_GNOME2_DATA(type) PLDLLEXPORT type +#else + #define PLDLLIMPEXP_GNOME2 PLDLLIMPORT + #define PLDLLIMPEXP_GNOME2_DATA(type) PLDLLIMPORT type +#endif + #if defined(aqt_EXPORTS) || defined(cairo_EXPORTS) || defined(cgm_EXPORTS) || \ defined(dg300_EXPORTS) || defined(gd_EXPORTS) || defined(gcw_EXPORTS) || \ defined(hpgl_EXPORTS) || defined(impress_EXPORTS) || defined(linuxvga_EXPORTS) || \ Modified: trunk/include/plplotP.h =================================================================== --- trunk/include/plplotP.h 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/include/plplotP.h 2008-10-14 01:41:12 UTC (rev 8891) @@ -960,7 +960,7 @@ /* Builds a list of the active devices/streams by device name */ void -plP_getinitdriverlist(char *names); +PLDLLIMPEXP plP_getinitdriverlist(char *names); /* Checks a give list of device names against active streams and returns the number of matches */ Modified: trunk/include/plplotcanvas.h =================================================================== --- trunk/include/plplotcanvas.h 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/include/plplotcanvas.h 2008-10-14 01:41:12 UTC (rev 8891) @@ -66,16 +66,16 @@ GType plplot_canvas_get_type(); -PlplotCanvas* plplot_canvas_new(); -void plplot_canvas_devinit(PlplotCanvas* self); -void plplot_canvas_dispose(PlplotCanvas *self); +PLDLLIMPEXP_GNOME2 PlplotCanvas* plplot_canvas_new(); +PLDLLIMPEXP_GNOME2 void plplot_canvas_devinit(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_dispose(PlplotCanvas *self); -gint plplot_canvas_get_stream_number(PlplotCanvas* self); -void plplot_canvas_set_size(PlplotCanvas* self,gint width,gint height); -void plplot_canvas_set_zoom(PlplotCanvas* self,gdouble magnification); -void plplot_canvas_use_text(PlplotCanvas* self,gboolean use_text); -void plplot_canvas_use_pixmap(PlplotCanvas* self,gboolean use_pixmap); -void plplot_canvas_use_persistence(PlplotCanvas* self,gboolean use_persistence); +PLDLLIMPEXP_GNOME2 gint plplot_canvas_get_stream_number(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_set_size(PlplotCanvas* self,gint width,gint height); +PLDLLIMPEXP_GNOME2 void plplot_canvas_set_zoom(PlplotCanvas* self,gdouble magnification); +PLDLLIMPEXP_GNOME2 void plplot_canvas_use_text(PlplotCanvas* self,gboolean use_text); +PLDLLIMPEXP_GNOME2 void plplot_canvas_use_pixmap(PlplotCanvas* self,gboolean use_pixmap); +PLDLLIMPEXP_GNOME2 void plplot_canvas_use_persistence(PlplotCanvas* self,gboolean use_persistence); /*--------------------------------------------------------------------------* @@ -88,73 +88,73 @@ /* set the format of the contour labels */ -void plplot_canvas_setcontlabelformat(PlplotCanvas* self, PLINT lexp, PLINT sigdig); +PLDLLIMPEXP_GNOME2 void plplot_canvas_setcontlabelformat(PlplotCanvas* self, PLINT lexp, PLINT sigdig); /* set offset and spacing of contour labels */ -void plplot_canvas_setcontlabelparam(PlplotCanvas* self, PLFLT offset, PLFLT size, PLFLT spacing, PLINT active); +PLDLLIMPEXP_GNOME2 void plplot_canvas_setcontlabelparam(PlplotCanvas* self, PLFLT offset, PLFLT size, PLFLT spacing, PLINT active); /* Advance to subpage "page", or to the next one if "page" = 0. */ -void plplot_canvas_adv(PlplotCanvas* self, PLINT page); +PLDLLIMPEXP_GNOME2 void plplot_canvas_adv(PlplotCanvas* self, PLINT page); /* simple arrow plotter. */ -void plplot_canvas_arrows(PlplotCanvas* self, PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, PLFLT scale, PLFLT dx, PLFLT dy); +PLDLLIMPEXP_GNOME2 void plplot_canvas_arrows(PlplotCanvas* self, PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, PLFLT scale, PLFLT dx, PLFLT dy); -void plplot_canvas_vect(PlplotCanvas* self, PLFLT **u, PLFLT **v, PLINT nx, PLINT ny, PLFLT scale, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_vect(PlplotCanvas* self, PLFLT **u, PLFLT **v, PLINT nx, PLINT ny, PLFLT scale, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); -void plplot_canvas_svect(PlplotCanvas* self, PLFLT *arrowx, PLFLT *arrowy, PLINT npts, PLINT fill); +PLDLLIMPEXP_GNOME2 void plplot_canvas_svect(PlplotCanvas* self, PLFLT *arrowx, PLFLT *arrowy, PLINT npts, PLINT fill); /* This functions similarly to plbox() except that the origin of the axes */ /* is placed at the user-specified point (x0, y0). */ -void plplot_canvas_axes(PlplotCanvas* self, PLFLT x0, PLFLT y0, const char *xopt, PLFLT xtick, PLINT nxsub, const char *yopt, PLFLT ytick, PLINT nysub); +PLDLLIMPEXP_GNOME2 void plplot_canvas_axes(PlplotCanvas* self, PLFLT x0, PLFLT y0, const char *xopt, PLFLT xtick, PLINT nxsub, const char *yopt, PLFLT ytick, PLINT nysub); /* Plot a histogram using x to store data values and y to store frequencies */ -void plplot_canvas_bin(PlplotCanvas* self, PLINT nbin, PLFLT *x, PLFLT *y, PLINT center); +PLDLLIMPEXP_GNOME2 void plplot_canvas_bin(PlplotCanvas* self, PLINT nbin, PLFLT *x, PLFLT *y, PLINT center); /* Start new page. Should only be used with pleop(). */ -void plplot_canvas_bop(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_bop(PlplotCanvas* self); /* This draws a box around the current viewport. */ -void plplot_canvas_box(PlplotCanvas* self, const char *xopt, PLFLT xtick, PLINT nxsub, const char *yopt, PLFLT ytick, PLINT nysub); +PLDLLIMPEXP_GNOME2 void plplot_canvas_box(PlplotCanvas* self, const char *xopt, PLFLT xtick, PLINT nxsub, const char *yopt, PLFLT ytick, PLINT nysub); /* This is the 3-d analogue of plbox(). */ -void plplot_canvas_box3(PlplotCanvas* self, const char *xopt, const char *xlabel, PLFLT xtick, PLINT nsubx, const char *yopt, const char *ylabel, PLFLT ytick, PLINT nsuby, const char *zopt, const char *zlabel, PLFLT ztick, PLINT nsubz); +PLDLLIMPEXP_GNOME2 void plplot_canvas_box3(PlplotCanvas* self, const char *xopt, const char *xlabel, PLFLT xtick, PLINT nsubx, const char *yopt, const char *ylabel, PLFLT ytick, PLINT nsuby, const char *zopt, const char *zlabel, PLFLT ztick, PLINT nsubz); /* Calculate world coordinates and subpage from relative device coordinates. */ -void plplot_canvas_calc_world(PlplotCanvas* self, PLFLT rx, PLFLT ry, PLFLT *wx, PLFLT *wy, PLINT *window); +PLDLLIMPEXP_GNOME2 void plplot_canvas_calc_world(PlplotCanvas* self, PLFLT rx, PLFLT ry, PLFLT *wx, PLFLT *wy, PLINT *window); /* Clear current subpage. */ -void plplot_canvas_clear(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_clear(PlplotCanvas* self); /* Set color, map 0. Argument is integer between 0 and 15. */ -void plplot_canvas_col0(PlplotCanvas* self, PLINT icol0); +PLDLLIMPEXP_GNOME2 void plplot_canvas_col0(PlplotCanvas* self, PLINT icol0); /* Set color, map 1. Argument is a float between 0. and 1. */ -void plplot_canvas_col1(PlplotCanvas* self, PLFLT col1); +PLDLLIMPEXP_GNOME2 void plplot_canvas_col1(PlplotCanvas* self, PLFLT col1); /* Draws a contour plot from data in f(nx,ny). Is just a front-end to * plfcont, with a particular choice for f2eval and f2eval_data. */ -void plplot_canvas_cont(PlplotCanvas* self, PLFLT **f, PLINT nx, PLINT ny, PLINT kx, PLINT lx, PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_cont(PlplotCanvas* self, PLFLT **f, PLINT nx, PLINT ny, PLINT kx, PLINT lx, PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); /* Draws a contour plot using the function evaluator f2eval and data stored * by way of the f2eval_data pointer. This allows arbitrary organizations * of 2d array data to be used. */ -void plplot_canvas_fcont(PlplotCanvas* self, PLFLT (*f2eval) (PLINT, PLINT, PLPointer), PLPointer f2eval_data, PLINT nx, PLINT ny, PLINT kx, PLINT lx, PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_fcont(PlplotCanvas* self, PLFLT (*f2eval) (PLINT, PLINT, PLPointer), PLPointer f2eval_data, PLINT nx, PLINT ny, PLINT kx, PLINT lx, PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); /* /\* Copies state parameters from the reference stream to the current stream. *\/ */ @@ -163,12 +163,12 @@ /* Converts input values from relative device coordinates to relative plot */ /* coordinates. */ -void plplot_canvas_did2pc(PlplotCanvas* self, PLFLT *xmin, PLFLT *ymin, PLFLT *xmax, PLFLT *ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_did2pc(PlplotCanvas* self, PLFLT *xmin, PLFLT *ymin, PLFLT *xmax, PLFLT *ymax); /* Converts input values from relative plot coordinates to relative */ /* device coordinates. */ -void plplot_canvas_dip2dc(PlplotCanvas* self, PLFLT *xmin, PLFLT *ymin, PLFLT *xmax, PLFLT *ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_dip2dc(PlplotCanvas* self, PLFLT *xmin, PLFLT *ymin, PLFLT *xmax, PLFLT *ymax); /* /\* End a plotting session for all open streams. *\/ */ @@ -189,15 +189,15 @@ /* End current page. Should only be used with plbop(). */ -void plplot_canvas_eop(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_eop(PlplotCanvas* self); /* Plot horizontal error bars (xmin(i),y(i)) to (xmax(i),y(i)) */ -void plplot_canvas_errx(PlplotCanvas* self, PLINT n, PLFLT *xmin, PLFLT *xmax, PLFLT *y); +PLDLLIMPEXP_GNOME2 void plplot_canvas_errx(PlplotCanvas* self, PLINT n, PLFLT *xmin, PLFLT *xmax, PLFLT *y); /* Plot vertical error bars (x,ymin(i)) to (x(i),ymax(i)) */ -void plplot_canvas_erry(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *ymin, PLFLT *ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_erry(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *ymin, PLFLT *ymax); /* /\* Advance to the next family file on the next new page *\/ */ @@ -205,11 +205,11 @@ /* Pattern fills the polygon bounded by the input points. */ -void plplot_canvas_fill(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y); +PLDLLIMPEXP_GNOME2 void plplot_canvas_fill(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y); /* Pattern fills the 3d polygon bounded by the input points. */ -void plplot_canvas_fill3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z); +PLDLLIMPEXP_GNOME2 void plplot_canvas_fill3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z); /* /\* Flushes the output stream. Use sparingly, if at all. *\/ */ @@ -217,47 +217,47 @@ /* Sets the global font flag to 'ifont'. */ -void plplot_canvas_font(PlplotCanvas* self, PLINT ifont); +PLDLLIMPEXP_GNOME2 void plplot_canvas_font(PlplotCanvas* self, PLINT ifont); /* Load specified font set. */ -void plplot_canvas_fontld(PlplotCanvas* self, PLINT fnt); +PLDLLIMPEXP_GNOME2 void plplot_canvas_fontld(PlplotCanvas* self, PLINT fnt); /* Get character default height and current (scaled) height */ -void plplot_canvas_gchr(PlplotCanvas* self, PLFLT *p_def, PLFLT *p_ht); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gchr(PlplotCanvas* self, PLFLT *p_def, PLFLT *p_ht); /* Returns 8 bit RGB values for given color from color map 0 */ -void plplot_canvas_gcol0(PlplotCanvas* self, PLINT icol0, PLINT *r, PLINT *g, PLINT *b); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gcol0(PlplotCanvas* self, PLINT icol0, PLINT *r, PLINT *g, PLINT *b); /* Returns the background color by 8 bit RGB value */ -void plplot_canvas_gcolbg(PlplotCanvas* self, PLINT *r, PLINT *g, PLINT *b); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gcolbg(PlplotCanvas* self, PLINT *r, PLINT *g, PLINT *b); /* Returns the current compression setting */ -void plplot_canvas_gcompression(PlplotCanvas* self, PLINT *compression); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gcompression(PlplotCanvas* self, PLINT *compression); /* Get the current device (keyword) name */ -void plplot_canvas_gdev(PlplotCanvas* self, char *p_dev); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gdev(PlplotCanvas* self, char *p_dev); /* Retrieve current window into device space */ -void plplot_canvas_gdidev(PlplotCanvas* self, PLFLT *p_mar, PLFLT *p_aspect, PLFLT *p_jx, PLFLT *p_jy); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gdidev(PlplotCanvas* self, PLFLT *p_mar, PLFLT *p_aspect, PLFLT *p_jx, PLFLT *p_jy); /* Get plot orientation */ -void plplot_canvas_gdiori(PlplotCanvas* self, PLFLT *p_rot); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gdiori(PlplotCanvas* self, PLFLT *p_rot); /* Retrieve current window into plot space */ -void plplot_canvas_gdiplt(PlplotCanvas* self, PLFLT *p_xmin, PLFLT *p_ymin, PLFLT *p_xmax, PLFLT *p_ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gdiplt(PlplotCanvas* self, PLFLT *p_xmin, PLFLT *p_ymin, PLFLT *p_xmax, PLFLT *p_ymax); /* Get FCI (font characterization integer) */ -void plplot_canvas_gfci(PlplotCanvas* self, PLUNICODE *pfci); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gfci(PlplotCanvas* self, PLUNICODE *pfci); /* /\* Get family file parameters *\/ */ @@ -265,15 +265,15 @@ /* Get the (current) output file name. Must be preallocated to >80 bytes */ -void plplot_canvas_gfnam(PlplotCanvas* self, char *fnam); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gfnam(PlplotCanvas* self, char *fnam); /* Get the (current) run level. */ -void plplot_canvas_glevel(PlplotCanvas* self, PLINT *p_level); +PLDLLIMPEXP_GNOME2 void plplot_canvas_glevel(PlplotCanvas* self, PLINT *p_level); /* Get output device parameters. */ -void plplot_canvas_gpage(PlplotCanvas* self, PLFLT *p_xp, PLFLT *p_yp, PLINT *p_xleng, PLINT *p_yleng, PLINT *p_xoff, PLINT *p_yoff); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gpage(PlplotCanvas* self, PLFLT *p_xp, PLFLT *p_yp, PLINT *p_xleng, PLINT *p_yleng, PLINT *p_xoff, PLINT *p_yoff); /* /\* Switches to graphics screen. *\/ */ @@ -281,11 +281,11 @@ /* grid irregularly sampled data */ -void plplot_canvas_griddata(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT *z, PLINT npts, PLFLT *xg, PLINT nptsx, PLFLT *yg, PLINT nptsy, PLFLT **zg, PLINT type, PLFLT data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_griddata(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT *z, PLINT npts, PLFLT *xg, PLINT nptsx, PLFLT *yg, PLINT nptsy, PLFLT **zg, PLINT type, PLFLT data); /* Get subpage boundaries in absolute coordinates */ -void plplot_canvas_gspa(PlplotCanvas* self, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gspa(PlplotCanvas* self, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax); /* /\* Get current stream number. *\/ */ @@ -293,35 +293,35 @@ /* Get the current library version number */ -void plplot_canvas_gver(PlplotCanvas* self, char *p_ver); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gver(PlplotCanvas* self, char *p_ver); /* Get viewport boundaries in normalized device coordinates */ -void plplot_canvas_gvpd(PlplotCanvas* self, PLFLT *p_xmin, PLFLT *p_xmax, PLFLT *p_ymin, PLFLT *p_ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gvpd(PlplotCanvas* self, PLFLT *p_xmin, PLFLT *p_xmax, PLFLT *p_ymin, PLFLT *p_ymax); /* Get viewport boundaries in world coordinates */ -void plplot_canvas_gvpw(PlplotCanvas* self, PLFLT *p_xmin, PLFLT *p_xmax, PLFLT *p_ymin, PLFLT *p_ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gvpw(PlplotCanvas* self, PLFLT *p_xmin, PLFLT *p_xmax, PLFLT *p_ymin, PLFLT *p_ymax); /* Get x axis labeling parameters */ -void plplot_canvas_gxax(PlplotCanvas* self, PLINT *p_digmax, PLINT *p_digits); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gxax(PlplotCanvas* self, PLINT *p_digmax, PLINT *p_digits); /* Get y axis labeling parameters */ -void plplot_canvas_gyax(PlplotCanvas* self, PLINT *p_digmax, PLINT *p_digits); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gyax(PlplotCanvas* self, PLINT *p_digmax, PLINT *p_digits); /* Get z axis labeling parameters */ -void plplot_canvas_gzax(PlplotCanvas* self, PLINT *p_digmax, PLINT *p_digits); +PLDLLIMPEXP_GNOME2 void plplot_canvas_gzax(PlplotCanvas* self, PLINT *p_digmax, PLINT *p_digits); /* Draws a histogram of n values of a variable in array data[0..n-1] */ -void plplot_canvas_hist(PlplotCanvas* self, PLINT n, PLFLT *data, PLFLT datmin, PLFLT datmax, PLINT nbin, PLINT oldwin); +PLDLLIMPEXP_GNOME2 void plplot_canvas_hist(PlplotCanvas* self, PLINT n, PLFLT *data, PLFLT datmin, PLFLT datmax, PLINT nbin, PLINT oldwin); /* Set current color (map 0) by hue, lightness, and saturation. */ -void plplot_canvas_hls(PlplotCanvas* self, PLFLT h, PLFLT l, PLFLT s); +PLDLLIMPEXP_GNOME2 void plplot_canvas_hls(PlplotCanvas* self, PLFLT h, PLFLT l, PLFLT s); /* /\* Initializes PLplot, using preset or default options *\/ */ @@ -329,43 +329,43 @@ /* Draws a line segment from (x1, y1) to (x2, y2). */ -void plplot_canvas_join(PlplotCanvas* self, PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2); +PLDLLIMPEXP_GNOME2 void plplot_canvas_join(PlplotCanvas* self, PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2); /* Simple routine for labelling graphs. */ -void plplot_canvas_lab(PlplotCanvas* self, const char *xlabel, const char *ylabel, const char *tlabel); +PLDLLIMPEXP_GNOME2 void plplot_canvas_lab(PlplotCanvas* self, const char *xlabel, const char *ylabel, const char *tlabel); /* Sets position of the light source */ -void plplot_canvas_lightsource(PlplotCanvas* self, PLFLT x, PLFLT y, PLFLT z); +PLDLLIMPEXP_GNOME2 void plplot_canvas_lightsource(PlplotCanvas* self, PLFLT x, PLFLT y, PLFLT z); /* Draws line segments connecting a series of points. */ -void plplot_canvas_line(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y); +PLDLLIMPEXP_GNOME2 void plplot_canvas_line(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y); /* Draws a line in 3 space. */ -void plplot_canvas_line3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z); +PLDLLIMPEXP_GNOME2 void plplot_canvas_line3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z); /* Set line style. */ -void plplot_canvas_lsty(PlplotCanvas* self, PLINT lin); +PLDLLIMPEXP_GNOME2 void plplot_canvas_lsty(PlplotCanvas* self, PLINT lin); /* plot continental outline in world coordinates */ -void plplot_canvas_map(PlplotCanvas* self, void (*mapform)(PLINT, PLFLT *, PLFLT *), char *type, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat); +PLDLLIMPEXP_GNOME2 void plplot_canvas_map(PlplotCanvas* self, void (*mapform)(PLINT, PLFLT *, PLFLT *), char *type, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat); /* Plot the latitudes and longitudes on the background. */ -void plplot_canvas_meridians(PlplotCanvas* self, void (*mapform)(PLINT, PLFLT *, PLFLT *), PLFLT dlong, PLFLT dlat, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat); +PLDLLIMPEXP_GNOME2 void plplot_canvas_meridians(PlplotCanvas* self, void (*mapform)(PLINT, PLFLT *, PLFLT *), PLFLT dlong, PLFLT dlat, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat); /* Plots a mesh representation of the function z[x][y]. */ -void plplot_canvas_mesh(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt); +PLDLLIMPEXP_GNOME2 void plplot_canvas_mesh(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt); /* Plots a mesh representation of the function z[x][y] with contour */ -void plplot_canvas_meshc(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel); +PLDLLIMPEXP_GNOME2 void plplot_canvas_meshc(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel); /* /\* Creates a new stream and makes it the default. *\/ */ @@ -373,101 +373,101 @@ /* Prints out "text" at specified position relative to viewport */ -void plplot_canvas_mtex(PlplotCanvas* self, const char *side, PLFLT disp, PLFLT pos, PLFLT just, const char *text); +PLDLLIMPEXP_GNOME2 void plplot_canvas_mtex(PlplotCanvas* self, const char *side, PLFLT disp, PLFLT pos, PLFLT just, const char *text); /* Plots a 3-d representation of the function z[x][y]. */ -void plplot_canvas_plot3d(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLINT side); +PLDLLIMPEXP_GNOME2 void plplot_canvas_plot3d(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLINT side); /* Plots a 3-d representation of the function z[x][y] with contour. */ -void plplot_canvas_plot3dc(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel); +PLDLLIMPEXP_GNOME2 void plplot_canvas_plot3dc(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel); /* Plots a 3-d representation of the function z[x][y] with contour and * y index limits. */ -void plplot_canvas_plot3dcl(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel, PLINT ixstart, PLINT ixn, PLINT *indexymin, PLINT*indexymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_plot3dcl(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel, PLINT ixstart, PLINT ixn, PLINT *indexymin, PLINT*indexymax); /* Set fill pattern directly. */ -void plplot_canvas_pat(PlplotCanvas* self, PLINT nlin, PLINT *inc, PLINT *del); +PLDLLIMPEXP_GNOME2 void plplot_canvas_pat(PlplotCanvas* self, PLINT nlin, PLINT *inc, PLINT *del); /* Plots array y against x for n points using ASCII code "code".*/ -void plplot_canvas_poin(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLINT code); +PLDLLIMPEXP_GNOME2 void plplot_canvas_poin(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLINT code); /* Draws a series of points in 3 space. */ -void plplot_canvas_poin3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z, PLINT code); +PLDLLIMPEXP_GNOME2 void plplot_canvas_poin3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z, PLINT code); /* Draws a polygon in 3 space. */ -void plplot_canvas_poly3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z, PLINT *draw, PLINT ifcc); +PLDLLIMPEXP_GNOME2 void plplot_canvas_poly3(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLFLT *z, PLINT *draw, PLINT ifcc); /* Set the floating point precision (in number of places) in numeric labels. */ -void plplot_canvas_prec(PlplotCanvas* self, PLINT setp, PLINT prec); +PLDLLIMPEXP_GNOME2 void plplot_canvas_prec(PlplotCanvas* self, PLINT setp, PLINT prec); /* Set fill pattern, using one of the predefined patterns.*/ -void plplot_canvas_psty(PlplotCanvas* self, PLINT patt); +PLDLLIMPEXP_GNOME2 void plplot_canvas_psty(PlplotCanvas* self, PLINT patt); /* Prints out "text" at world cooordinate (x,y). */ -void plplot_canvas_ptex(PlplotCanvas* self, PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, const char *text); +PLDLLIMPEXP_GNOME2 void plplot_canvas_ptex(PlplotCanvas* self, PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, const char *text); /* Replays contents of plot buffer to current device/file. */ -void plplot_canvas_replot(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_replot(PlplotCanvas* self); /* Set line color by red, green, blue from 0. to 1. */ -void plplot_canvas_rgb(PlplotCanvas* self, PLFLT r, PLFLT g, PLFLT b); +PLDLLIMPEXP_GNOME2 void plplot_canvas_rgb(PlplotCanvas* self, PLFLT r, PLFLT g, PLFLT b); /* Set line color by 8 bit RGB values. */ -void plplot_canvas_rgb1(PlplotCanvas* self, PLINT r, PLINT g, PLINT b); +PLDLLIMPEXP_GNOME2 void plplot_canvas_rgb1(PlplotCanvas* self, PLINT r, PLINT g, PLINT b); /* Set character height. */ -void plplot_canvas_schr(PlplotCanvas* self, PLFLT def, PLFLT scale); +PLDLLIMPEXP_GNOME2 void plplot_canvas_schr(PlplotCanvas* self, PLFLT def, PLFLT scale); /* Set color map 0 colors by 8 bit RGB values */ -void plplot_canvas_scmap0(PlplotCanvas* self, PLINT *r, PLINT *g, PLINT *b, PLINT ncol0); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scmap0(PlplotCanvas* self, PLINT *r, PLINT *g, PLINT *b, PLINT ncol0); /* Set number of colors in cmap 0 */ -void plplot_canvas_scmap0n(PlplotCanvas* self, PLINT ncol0); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scmap0n(PlplotCanvas* self, PLINT ncol0); /* Set color map 1 colors by 8 bit RGB values */ -void plplot_canvas_scmap1(PlplotCanvas* self, PLINT *r, PLINT *g, PLINT *b, PLINT ncol1); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scmap1(PlplotCanvas* self, PLINT *r, PLINT *g, PLINT *b, PLINT ncol1); /* Set color map 1 colors using a piece-wise linear relationship between */ /* intensity [0,1] (cmap 1 index) and position in HLS or RGB color space. */ -void plplot_canvas_scmap1l(PlplotCanvas* self, PLINT itype, PLINT npts, PLFLT *intensity, PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLINT *rev); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scmap1l(PlplotCanvas* self, PLINT itype, PLINT npts, PLFLT *intensity, PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLINT *rev); /* Set number of colors in cmap 1 */ -void plplot_canvas_scmap1n(PlplotCanvas* self, PLINT ncol1); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scmap1n(PlplotCanvas* self, PLINT ncol1); /* Set a given color from color map 0 by 8 bit RGB value */ -void plplot_canvas_scol0(PlplotCanvas* self, PLINT icol0, PLINT r, PLINT g, PLINT b); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scol0(PlplotCanvas* self, PLINT icol0, PLINT r, PLINT g, PLINT b); /* Set the background color by 8 bit RGB value */ -void plplot_canvas_scolbg(PlplotCanvas* self, PLINT r, PLINT g, PLINT b); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scolbg(PlplotCanvas* self, PLINT r, PLINT g, PLINT b); /* Used to globally turn color output on/off */ -void plplot_canvas_scolor(PlplotCanvas* self, PLINT color); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scolor(PlplotCanvas* self, PLINT color); /* Set the compression level */ -void plplot_canvas_scompression(PlplotCanvas* self, PLINT compression); +PLDLLIMPEXP_GNOME2 void plplot_canvas_scompression(PlplotCanvas* self, PLINT compression); /* /\* Set the device (keyword) name *\/ */ @@ -476,27 +476,27 @@ /* Set window into device space using margin, aspect ratio, and */ /* justification */ -void plplot_canvas_sdidev(PlplotCanvas* self, PLFLT mar, PLFLT aspect, PLFLT jx, PLFLT jy); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sdidev(PlplotCanvas* self, PLFLT mar, PLFLT aspect, PLFLT jx, PLFLT jy); /* Set up transformation from metafile coordinates. */ -void plplot_canvas_sdimap(PlplotCanvas* self, PLINT dimxmin, PLINT dimxmax, PLINT dimymin, PLINT dimymax, PLFLT dimxpmm, PLFLT dimypmm); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sdimap(PlplotCanvas* self, PLINT dimxmin, PLINT dimxmax, PLINT dimymin, PLINT dimymax, PLFLT dimxpmm, PLFLT dimypmm); /* Set plot orientation, specifying rotation in units of pi/2. */ -void plplot_canvas_sdiori(PlplotCanvas* self, PLFLT rot); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sdiori(PlplotCanvas* self, PLFLT rot); /* Set window into plot space */ -void plplot_canvas_sdiplt(PlplotCanvas* self, PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sdiplt(PlplotCanvas* self, PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax); /* Set window into plot space incrementally (zoom) */ -void plplot_canvas_sdiplz(PlplotCanvas* self, PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sdiplz(PlplotCanvas* self, PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax); /* Set the escape character for text strings. */ -void plplot_canvas_sesc(PlplotCanvas* self, char esc); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sesc(PlplotCanvas* self, char esc); /* /\* Set family file parameters *\/ */ @@ -504,25 +504,25 @@ /* Set FCI (font characterization integer) */ -void plplot_canvas_sfci(PlplotCanvas* self, PLUNICODE fci); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sfci(PlplotCanvas* self, PLUNICODE fci); /* Set the output file name. */ -void plplot_canvas_sfnam(PlplotCanvas* self, const char *fnam); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sfnam(PlplotCanvas* self, const char *fnam); /* Shade region. */ -void plplot_canvas_shade(PlplotCanvas* self, PLFLT **a, PLINT nx, PLINT ny, PLINT (*defined) (PLFLT, PLFLT), PLFLT left, PLFLT right, PLFLT bottom, PLFLT top, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLINT sh_width, PLINT min_color, PLINT min_width, PLINT max_color, PLINT max_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_shade(PlplotCanvas* self, PLFLT **a, PLINT nx, PLINT ny, PLINT (*defined) (PLFLT, PLFLT), PLFLT left, PLFLT right, PLFLT bottom, PLFLT top, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLINT sh_width, PLINT min_color, PLINT min_width, PLINT max_color, PLINT max_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); -void plplot_canvas_shade1(PlplotCanvas* self, PLFLT *a, PLINT nx, PLINT ny, PLINT (*defined) (PLFLT, PLFLT), PLFLT left, PLFLT right, PLFLT bottom, PLFLT top, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLINT sh_width, PLINT min_color, PLINT min_width, PLINT max_color, PLINT max_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_shade1(PlplotCanvas* self, PLFLT *a, PLINT nx, PLINT ny, PLINT (*defined) (PLFLT, PLFLT), PLFLT left, PLFLT right, PLFLT bottom, PLFLT top, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLINT sh_width, PLINT min_color, PLINT min_width, PLINT max_color, PLINT max_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); -void plplot_canvas_shades(PlplotCanvas* self, PLFLT **a, PLINT nx, PLINT ny, PLINT (*defined) (PLFLT, PLFLT), PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT *clevel, PLINT nlevel, PLINT fill_width, PLINT cont_color, PLINT cont_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_shades(PlplotCanvas* self, PLFLT **a, PLINT nx, PLINT ny, PLINT (*defined) (PLFLT, PLFLT), PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT *clevel, PLINT nlevel, PLINT fill_width, PLINT cont_color, PLINT cont_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); -void plplot_canvas_fshade(PlplotCanvas* self, PLFLT (*f2eval) (PLINT, PLINT, PLPointer), PLPointer f2eval_data, PLFLT (*c2eval) (PLINT, PLINT, PLPointer), PLPointer c2eval_data, PLINT nx, PLINT ny, PLFLT left, PLFLT right, PLFLT bottom, PLFLT top, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLINT sh_width, PLINT min_color, PLINT min_width, PLINT max_color, PLINT max_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); +PLDLLIMPEXP_GNOME2 void plplot_canvas_fshade(PlplotCanvas* self, PLFLT (*f2eval) (PLINT, PLINT, PLPointer), PLPointer f2eval_data, PLFLT (*c2eval) (PLINT, PLINT, PLPointer), PLPointer c2eval_data, PLINT nx, PLINT ny, PLFLT left, PLFLT right, PLFLT bottom, PLFLT top, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLINT sh_width, PLINT min_color, PLINT min_width, PLINT max_color, PLINT max_width, void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); /* Set up lengths of major tick marks. */ -void plplot_canvas_smaj(PlplotCanvas* self, PLFLT def, PLFLT scale); +PLDLLIMPEXP_GNOME2 void plplot_canvas_smaj(PlplotCanvas* self, PLFLT def, PLFLT scale); /* /\* Set the memory area to be plotted (with the 'mem' driver) *\/ */ @@ -530,7 +530,7 @@ /* Set up lengths of minor tick marks. */ -void plplot_canvas_smin(PlplotCanvas* self, PLFLT def, PLFLT scale); +PLDLLIMPEXP_GNOME2 void plplot_canvas_smin(PlplotCanvas* self, PLFLT def, PLFLT scale); /* /\* Set orientation. Must be done before calling plinit. *\/ */ @@ -538,7 +538,7 @@ /* Set output device parameters. Usually ignored by the driver. */ -void plplot_canvas_spage(PlplotCanvas* self, PLFLT xp, PLFLT yp, PLINT xleng, PLINT yleng, PLINT xoff, PLINT yoff); +PLDLLIMPEXP_GNOME2 void plplot_canvas_spage(PlplotCanvas* self, PLFLT xp, PLFLT yp, PLINT xleng, PLINT yleng, PLINT xoff, PLINT yoff); /* /\* Set the pause (on end-of-page) status *\/ */ @@ -550,11 +550,11 @@ /* Set the number of subwindows in x and y */ -void plplot_canvas_ssub(PlplotCanvas* self, PLINT nx, PLINT ny); +PLDLLIMPEXP_GNOME2 void plplot_canvas_ssub(PlplotCanvas* self, PLINT nx, PLINT ny); /* Set symbol height. */ -void plplot_canvas_ssym(PlplotCanvas* self, PLFLT def, PLFLT scale); +PLDLLIMPEXP_GNOME2 void plplot_canvas_ssym(PlplotCanvas* self, PLFLT def, PLFLT scale); /* /\* Initialize PLplot, passing in the windows/page settings. *\/ */ @@ -578,83 +578,83 @@ /* plots a 2d image (or a matrix too large for plshade() ) */ -void plplot_canvas_image(PlplotCanvas* self, PLFLT **data, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_image(PlplotCanvas* self, PLFLT **data, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax); /* Set up a new line style */ -void plplot_canvas_styl(PlplotCanvas* self, PLINT nms, PLINT *mark, PLINT *space); +PLDLLIMPEXP_GNOME2 void plplot_canvas_styl(PlplotCanvas* self, PLINT nms, PLINT *mark, PLINT *space); /* Plots the 3d surface representation of the function z[x][y]. */ -void plplot_canvas_surf3d(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel); +PLDLLIMPEXP_GNOME2 void plplot_canvas_surf3d(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel); /* Plots the 3d surface representation of the function z[x][y] with y * index limits. */ -void plplot_canvas_surf3dl(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel, PLINT ixstart, PLINT ixn, PLINT *indexymin, PLINT*indexymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_surf3dl(PlplotCanvas* self, PLFLT *x, PLFLT *y, PLFLT **z, PLINT nx, PLINT ny, PLINT opt, PLFLT *clevel, PLINT nlevel, PLINT ixstart, PLINT ixn, PLINT *indexymin, PLINT*indexymax); /* Sets the edges of the viewport to the specified absolute coordinates */ -void plplot_canvas_svpa(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_svpa(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax); /* Set x axis labeling parameters */ -void plplot_canvas_sxax(PlplotCanvas* self, PLINT digmax, PLINT digits); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sxax(PlplotCanvas* self, PLINT digmax, PLINT digits); /* Set inferior X window */ -void plplot_canvas_sxwin(PlplotCanvas* self, PLINT window_id); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sxwin(PlplotCanvas* self, PLINT window_id); /* Set y axis labeling parameters */ -void plplot_canvas_syax(PlplotCanvas* self, PLINT digmax, PLINT digits); +PLDLLIMPEXP_GNOME2 void plplot_canvas_syax(PlplotCanvas* self, PLINT digmax, PLINT digits); /* Plots array y against x for n points using Hershey symbol "code" */ -void plplot_canvas_sym(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLINT code); +PLDLLIMPEXP_GNOME2 void plplot_canvas_sym(PlplotCanvas* self, PLINT n, PLFLT *x, PLFLT *y, PLINT code); /* Set z axis labeling parameters */ -void plplot_canvas_szax(PlplotCanvas* self, PLINT digmax, PLINT digits); +PLDLLIMPEXP_GNOME2 void plplot_canvas_szax(PlplotCanvas* self, PLINT digmax, PLINT digits); /* Switches to text screen. */ -void plplot_canvas_text(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_text(PlplotCanvas* self); /* Sets the edges of the viewport with the given aspect ratio, leaving */ /* room for labels. */ -void plplot_canvas_vasp(PlplotCanvas* self, PLFLT aspect); +PLDLLIMPEXP_GNOME2 void plplot_canvas_vasp(PlplotCanvas* self, PLFLT aspect); /* Creates the largest viewport of the specified aspect ratio that fits */ /* within the specified normalized subpage coordinates. */ -void plplot_canvas_vpas(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT aspect); +PLDLLIMPEXP_GNOME2 void plplot_canvas_vpas(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT aspect); /* Creates a viewport with the specified normalized subpage coordinates. */ -void plplot_canvas_vpor(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_vpor(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax); /* Defines a "standard" viewport with seven character heights for */ /* the left margin and four character heights everywhere else. */ -void plplot_canvas_vsta(PlplotCanvas* self); +PLDLLIMPEXP_GNOME2 void plplot_canvas_vsta(PlplotCanvas* self); /* Set up a window for three-dimensional plotting. */ -void plplot_canvas_w3d(PlplotCanvas* self, PLFLT basex, PLFLT basey, PLFLT height, PLFLT xmin0, PLFLT xmax0, PLFLT ymin0, PLFLT ymax0, PLFLT zmin0, PLFLT zmax0, PLFLT alt, PLFLT az); +PLDLLIMPEXP_GNOME2 void plplot_canvas_w3d(PlplotCanvas* self, PLFLT basex, PLFLT basey, PLFLT height, PLFLT xmin0, PLFLT xmax0, PLFLT ymin0, PLFLT ymax0, PLFLT zmin0, PLFLT zmax0, PLFLT alt, PLFLT az); /* Set pen width. */ -void plplot_canvas_wid(PlplotCanvas* self, PLINT width); +PLDLLIMPEXP_GNOME2 void plplot_canvas_wid(PlplotCanvas* self, PLINT width); /* Set up world coordinates of the viewport boundaries (2d plots). */ -void plplot_canvas_wind(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax); +PLDLLIMPEXP_GNOME2 void plplot_canvas_wind(PlplotCanvas* self, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax); /* set xor mode; mode = 1-enter, 0-leave, status = 0 if not interactive device */ -void plplot_canvas_xormod(PlplotCanvas* self, PLINT mode, PLINT *status); +PLDLLIMPEXP_GNOME2 void plplot_canvas_xormod(PlplotCanvas* self, PLINT mode, PLINT *status); G_END_DECLS Modified: trunk/include/plstrm.h =================================================================== --- trunk/include/plstrm.h 2008-10-14 01:36:48 UTC (rev 8890) +++ trunk/include/plstrm.h 2008-10-14 01:41:12 UTC (rev 8891) @@ -729,7 +729,7 @@ /* Initializes device cmap 1 entry by interpolation from pls->cmap1 entries */ -void +PLDLLIMPEXP void plcol_interp(PLStream *pls, PLColor *newcolor, int i, int ncol); /* Opens file for output, prompting if not set. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-14 22:20:18
|
Revision: 8908 http://plplot.svn.sourceforge.net/plplot/?rev=8908&view=rev Author: airwin Date: 2008-10-14 22:20:08 +0000 (Tue, 14 Oct 2008) Log Message: ----------- Change all versions of standard example 3 to use justification for labelling that looks better. All results compared the same except for the ocaml one where I need some help from Hez to deal with the changed OCaml logic that is needed. Modified Paths: -------------- trunk/bindings/octave/demos/x03c.m trunk/examples/ada/x03a.adb.cmake trunk/examples/ada/xthick03a.adb.cmake trunk/examples/c/x03c.c trunk/examples/c++/x03.cc trunk/examples/d/x03d.d trunk/examples/f77/x03f.fm4 trunk/examples/f95/x03f.f90 trunk/examples/java/x03.java trunk/examples/ocaml/x03.ml trunk/examples/perl/x03.pl trunk/examples/python/xw03.py trunk/examples/tcl/x03.tcl Modified: trunk/bindings/octave/demos/x03c.m =================================================================== --- trunk/bindings/octave/demos/x03c.m 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/bindings/octave/demos/x03c.m 2008-10-14 22:20:08 UTC (rev 8908) @@ -63,10 +63,17 @@ ## Write labels for angle */ + if (theta < 9.99) + offset = 0.45; + elseif (theta < 99.9) + offset = 0.30; + else + offset = 0.15; + endif if (dx >= -0.00001) - plptex(dx, dy, dx, dy, -0.15, text); + plptex(dx, dy, dx, dy, -offset, text); else - plptex(dx, dy, -dx, -dy, 1.15, text); + plptex(dx, dy, -dx, -dy, 1.+offset, text); endif endfor Modified: trunk/examples/ada/x03a.adb.cmake =================================================================== --- trunk/examples/ada/x03a.adb.cmake 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/ada/x03a.adb.cmake 2008-10-14 22:20:08 UTC (rev 8908) @@ -42,7 +42,7 @@ @Ada_Is_2007_With_and_Use_Numerics@ procedure x03a is - dtr, theta, dx, dy, r : Long_Float; + dtr, theta, dx, dy, r, offset : Long_Float; x0, y0 : Real_Vector(0..360); x, y : Real_Vector(0..360); @@ -81,11 +81,20 @@ pljoin(0.0, 0.0, dx, dy); -- Write labels for angle. + + if theta < 9.99 then + offset := 0.45; + elsif theta < 99.9 then + offset := 0.30; + else + offset := 0.15; + end if; + -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg if dx >= -0.00001 then - plptex(dx, dy, dx, dy, -0.15, Trim(Integer'image(Integer(theta)), Left)); + plptex(dx, dy, dx, dy, -offset, Trim(Integer'image(Integer(theta)), Left)); else - plptex(dx, dy, -dx, -dy, 1.15, Trim(Integer'image(Integer(theta)), Left)); + plptex(dx, dy, -dx, -dy, 1.0 + offset, Trim(Integer'image(Integer(theta)), Left)); end if; end loop; Modified: trunk/examples/ada/xthick03a.adb.cmake =================================================================== --- trunk/examples/ada/xthick03a.adb.cmake 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/ada/xthick03a.adb.cmake 2008-10-14 22:20:08 UTC (rev 8908) @@ -42,7 +42,7 @@ @Ada_Is_2007_With_and_Use_Numerics@ procedure xthick03a is - dtr, theta, dx, dy, r : Long_Float; + dtr, theta, dx, dy, r, offset : Long_Float; x0, y0 : Real_Vector(0..360); x, y : Real_Vector(0..360); @@ -81,11 +81,20 @@ Draw_Line(0.0, 0.0, dx, dy); -- Write labels for angle. + + if theta < 9.99 then + offset := 0.45; + elsif theta < 99.9 then + offset := 0.30; + else + offset := 0.15; + end if; + -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg if dx >= -0.00001 then - Write_Text_World(dx, dy, dx, dy, -0.15, Trim(Integer'image(Integer(theta)), Left)); + Write_Text_World(dx, dy, dx, dy, -offset, Trim(Integer'image(Integer(theta)), Left)); else - Write_Text_World(dx, dy, -dx, -dy, 1.15, Trim(Integer'image(Integer(theta)), Left)); + Write_Text_World(dx, dy, -dx, -dy, 1.0 + offset, Trim(Integer'image(Integer(theta)), Left)); end if; end loop; Modified: trunk/examples/c/x03c.c =================================================================== --- trunk/examples/c/x03c.c 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/c/x03c.c 2008-10-14 22:20:08 UTC (rev 8908) @@ -15,7 +15,7 @@ main(int argc, const char *argv[]) { int i, j; - PLFLT dtr, theta, dx, dy, r; + PLFLT dtr, theta, dx, dy, r, offset; char text[4]; static PLFLT x0[361], y0[361]; static PLFLT x[361], y[361]; @@ -61,11 +61,19 @@ /* Write labels for angle */ + if (theta < 9.99) { + offset = 0.45; + } else if (theta < 99.9) { + offset = 0.30; + } else { + offset = 0.15; + } + /* Slightly off zero to avoid floating point logic flips at 90 and 270 deg. */ if (dx >= -0.00001) - plptex(dx, dy, dx, dy, -0.15, text); + plptex(dx, dy, dx, dy, -offset, text); else - plptex(dx, dy, -dx, -dy, 1.15, text); + plptex(dx, dy, -dx, -dy, 1.+offset, text); } /* Draw the graph */ Modified: trunk/examples/c++/x03.cc =================================================================== --- trunk/examples/c++/x03.cc 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/c++/x03.cc 2008-10-14 22:20:08 UTC (rev 8908) @@ -49,7 +49,7 @@ int i, j; char text[4]; - PLFLT dtr, theta, dx, dy, r; + PLFLT dtr, theta, dx, dy, r, offset; PLFLT *x0 = new PLFLT[361]; PLFLT *y0 = new PLFLT[361]; @@ -100,11 +100,19 @@ // Write labels for angle. + if (theta < 9.99) { + offset = 0.45; + } else if (theta < 99.9) { + offset = 0.30; + } else { + offset = 0.15; + } + //Slightly off zero to avoid floating point logic flips at 90 and 270 deg. if (dx >= -0.00001) - pls->ptex(dx, dy, dx, dy, -0.15, text); + pls->ptex(dx, dy, dx, dy, -offset, text); else - pls->ptex(dx, dy, -dx, -dy, 1.15, text); + pls->ptex(dx, dy, -dx, -dy, 1.+offset, text); } // Draw the graph. Modified: trunk/examples/d/x03d.d =================================================================== --- trunk/examples/d/x03d.d 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/d/x03d.d 2008-10-14 22:20:08 UTC (rev 8908) @@ -14,7 +14,7 @@ \*--------------------------------------------------------------------------*/ int main( char[][] args ) { - PLFLT dtr, theta, dx, dy, r; + PLFLT dtr, theta, dx, dy, r, offset; char[] text; PLFLT[361] x0, y0; PLFLT[361] x, y; @@ -59,11 +59,20 @@ text = format( "%.0f", round(theta) ); /* Write labels for angle */ + + if (theta < 9.99) { + offset = 0.45; + } else if (theta < 99.9) { + offset = 0.30; + } else { + offset = 0.15; + } + /* Slightly off zero to avoid floating point logic flips at 90 and 270 deg. */ if( dx>=-0.00001 ) - plptex( dx, dy, dx, dy, -0.15, toStringz(text) ); + plptex( dx, dy, dx, dy, -offset, toStringz(text) ); else - plptex(dx, dy, -dx, -dy, 1.15, toStringz(text) ); + plptex(dx, dy, -dx, -dy, 1.+offset, toStringz(text) ); } /* Draw the graph */ Modified: trunk/examples/f77/x03f.fm4 =================================================================== --- trunk/examples/f77/x03f.fm4 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/f77/x03f.fm4 2008-10-14 22:20:08 UTC (rev 8908) @@ -25,7 +25,7 @@ character*3 text real*8 x0(0:360), y0(0:360) - real*8 x(0:360), y(0:360), dtr, theta, dx, dy, r + real*8 x(0:360), y(0:360), dtr, theta, dx, dy, r, offset integer i, j, nsp integer PL_PARSE_FULL parameter(PL_PARSE_FULL = 1) @@ -69,12 +69,21 @@ C Write labels for angle text = text(nsp(text):) + + if (theta .lt. 9.99) then + offset = 0.45 + elseif (theta .lt. 99.9) then + offset = 0.30 + else + offset = 0.15 + endif + C Slightly off zero to avoid floating point logic flips at C 90 and 270 deg. if (dx.ge.-0.00001d0) then - call plptex(dx, dy, dx, dy, -0.15d0, text) + call plptex(dx, dy, dx, dy, -offset, text) else - call plptex(dx, dy, -dx, -dy, 1.15d0, text) + call plptex(dx, dy, -dx, -dy, (1.d0 + offset), text) end if enddo C Draw the graph Modified: trunk/examples/f95/x03f.f90 =================================================================== --- trunk/examples/f95/x03f.f90 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/f95/x03f.f90 2008-10-14 22:20:08 UTC (rev 8908) @@ -24,7 +24,7 @@ character*3 text real(kind=plflt) x0(0:360), y0(0:360) - real(kind=plflt) x(0:360), y(0:360), dtr, theta, dx, dy, r + real(kind=plflt) x(0:360), y(0:360), dtr, theta, dx, dy, r, offset integer i, j, nsp ! Process command-line arguments call plparseopts(PL_PARSE_FULL) @@ -66,12 +66,20 @@ ! Write labels for angle text = text(nsp(text):) + + if (theta .lt. 9.99) then + offset = 0.45 + elseif (theta .lt. 99.9) then + offset = 0.30 + else + offset = 0.15 + endif ! Slightly off zero to avoid floating point logic flips at ! 90 and 270 deg. if (dx.ge.-0.00001_plflt) then - call plptex(dx, dy, dx, dy, -0.15_plflt, text) + call plptex(dx, dy, dx, dy, -offset, text) else - call plptex(dx, dy, -dx, -dy, 1.15_plflt, text) + call plptex(dx, dy, -dx, -dy, 1._plflt+offset, text) end if enddo ! Draw the graph Modified: trunk/examples/java/x03.java =================================================================== --- trunk/examples/java/x03.java 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/java/x03.java 2008-10-14 22:20:08 UTC (rev 8908) @@ -47,7 +47,7 @@ NumberFormat nf = NumberFormat.getNumberInstance(); int i, j; - double dtr, theta, dx, dy, r; + double dtr, theta, dx, dy, r, offset; double[] x0 = new double[361]; double[] y0 = new double[361]; @@ -96,11 +96,19 @@ // Write labels for angle. + if (theta < 9.99) { + offset = 0.45; + } else if (theta < 99.9) { + offset = 0.30; + } else { + offset = 0.15; + } + //Slightly off zero to avoid floating point logic flips at 90 and 270 deg. if (dx >= -0.00001) - pls.ptex(dx, dy, dx, dy, -0.15, text); + pls.ptex(dx, dy, dx, dy, -offset, text); else - pls.ptex(dx, dy, -dx, -dy, 1.15, text); + pls.ptex(dx, dy, -dx, -dy, 1.+offset, text); } // Draw the graph. Modified: trunk/examples/ocaml/x03.ml =================================================================== --- trunk/examples/ocaml/x03.ml 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/ocaml/x03.ml 2008-10-14 22:20:08 UTC (rev 8908) @@ -62,12 +62,19 @@ (* Write labels for angle *) + (*if theta < 9.99 then + let offset = 0.45 in + else if theta < 99.9 then + let offset = 0.30 in + else *) + let offset = 0.15 in + (* Slightly off zero to avoid floating point logic flips at 90 and 270 deg.*) if dx >= -0.00001 then - plptex dx dy dx dy (-0.15) text + plptex dx dy dx dy (-.offset) text else - plptex dx dy (-.dx) (-.dy) 1.15 text + plptex dx dy (-.dx) (-.dy) (1.+.offset) text done; (* Draw the graph *) Modified: trunk/examples/perl/x03.pl =================================================================== --- trunk/examples/perl/x03.pl 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/perl/x03.pl 2008-10-14 22:20:08 UTC (rev 8908) @@ -65,13 +65,21 @@ pljoin (0, 0, $dx, $dy); + if ($theta < 9.99) { + $offset = 0.45; + } elsif ($theta < 99.9) { + $offset = 0.30; + } else { + $offset = 0.15; + } + # Write labels for angle # Slightly off zero to avoid floating point logic flips at 90 and 270 deg if ($dx >= -0.00001) { - plptex ($dx, $dy, $dx, $dy, -0.15, int ($theta)); + plptex ($dx, $dy, $dx, $dy, -$offset, int ($theta)); } else { - plptex ($dx, $dy, -$dx, -$dy, 1.15, int ($theta)); + plptex ($dx, $dy, -$dx, -$dy, (1.+$offset), int ($theta)); } } Modified: trunk/examples/python/xw03.py =================================================================== --- trunk/examples/python/xw03.py 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/python/xw03.py 2008-10-14 22:20:08 UTC (rev 8908) @@ -38,11 +38,17 @@ # Write labels for angle text = `int(theta)` + if theta < 9.99: + offset = 0.45 + elif theta < 99.9: + offset = 0.30 + else: + offset = 0.15 #Slightly off zero to avoid floating point logic flips at 90 and 270 deg. if dx >= -0.00001: - plptex(dx, dy, dx, dy, -0.15, text) + plptex(dx, dy, dx, dy, -offset, text) else: - plptex(dx, dy, -dx, -dy, 1.15, text) + plptex(dx, dy, -dx, -dy, 1.+offset, text) # Draw the graph Modified: trunk/examples/tcl/x03.tcl =================================================================== --- trunk/examples/tcl/x03.tcl 2008-10-14 20:59:13 UTC (rev 8907) +++ trunk/examples/tcl/x03.tcl 2008-10-14 22:20:08 UTC (rev 8908) @@ -39,15 +39,24 @@ set yg [expr sin($theta)] $w cmd pljoin 0.0 0.0 $xg $yg + set theta_deg [expr $theta*360./$twopi] + if {$theta_deg < 9.99} { + set offset 0.45 + } elseif {$theta_deg < 99.9} { + set offset 0.30 + } else { + set offset 0.15 + } + # Slightly off zero to avoid floating point logic flips at 90 and 270 deg. if {$xg >= -0.00001} { - set dx $xg - set dy $yg - set just -0.15 + set dx [expr $xg] + set dy [expr $yg] + set just [expr -$offset] } else { set dx [expr -$xg] set dy [expr -$yg] - set just 1.15 + set just [expr 1. + $offset] } set label [expr round($theta*360./$twopi)] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-17 22:44:28
|
Revision: 8917 http://plplot.svn.sourceforge.net/plplot/?rev=8917&view=rev Author: airwin Date: 2008-10-17 22:44:26 +0000 (Fri, 17 Oct 2008) Log Message: ----------- Drop %n from filenames if familying is not enabled. This makes it much easier to use %n for filenames in our test scripts. Modified Paths: -------------- trunk/doc/docbook/src/advanced.xml trunk/src/plctrl.c Modified: trunk/doc/docbook/src/advanced.xml =================================================================== --- trunk/doc/docbook/src/advanced.xml 2008-10-17 22:34:35 UTC (rev 8916) +++ trunk/doc/docbook/src/advanced.xml 2008-10-17 22:44:26 UTC (rev 8917) @@ -500,7 +500,10 @@ the byte limit is large you can still insure a new file is automatically started after a page break if you precede the call to &pleop; with a call to &plfamadv;.</para> + <para> If familying is not enabled, <filename>%n</filename> is dropped + from the filename if that string appears anywhere in it.</para> + <para> The &plgfam; routine can be used from within the user program to find out more about the graphics file being written. In particular, by Modified: trunk/src/plctrl.c =================================================================== --- trunk/src/plctrl.c 2008-10-17 22:34:35 UTC (rev 8916) +++ trunk/src/plctrl.c 2008-10-17 22:44:26 UTC (rev 8917) @@ -1863,13 +1863,15 @@ /*--------------------------------------------------------------------------*\ * plP_sfnam() * - * Sets up file name & family stem name. - * Reserve some extra space (5 chars) to hold an optional member number. + * Sets up file name (with "%n" removed if present) & family stem name. + * Reserve some extra space (10 chars) to hold an optional member number. \*--------------------------------------------------------------------------*/ void plP_sfnam(PLStream *pls, const char *fnam) { + char prefix[256]; + char* suffix; pls->OutFile = NULL; if (pls->FileName != NULL) @@ -1880,8 +1882,16 @@ plexit("plP_sfnam: Insufficient memory"); } - strcpy(pls->FileName, fnam); + suffix = strstr (fnam, "%n"); + if (suffix == NULL) + strcpy(pls->FileName, fnam); + else { + strncpy (prefix, fnam, 256); + prefix [suffix - fnam] = 0; + sprintf (pls->FileName, "%s%s", prefix, suffix + 2); + } + if (pls->BaseName != NULL) free((void *) pls->BaseName); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-10-21 01:43:06
|
Revision: 8942 http://plplot.svn.sourceforge.net/plplot/?rev=8942&view=rev Author: airwin Date: 2008-10-21 01:42:57 +0000 (Tue, 21 Oct 2008) Log Message: ----------- Commit of a modified form of a patch submitted by Hezekiah M. Carty to make sure that the stream variables plsc->vpwxmi, plsc->vpwxma, plsc->vpwymi, and plsc->vpwyma retain the exact values specified by the user's call to plwind so those exact values are delivered back by plgvpw. An internal function called plP_xgvpw is now used to deliver the (slightly) extended versions of these variables that PLplot uses internally so that the end limits will be on the graph. The net result of this change is that C/C++ users who access the raw stream variables and all language users who use the plgvpw function to access them will get the exact values input by the user in plwind rather than the slightly extended values. However, after some discussion, Maurice decided this downside of the change was okay because this change will affect a relatively small percentage of our legacy users, and I am certainly willing to go along with his conclusions on this. The examples do not use either the raw stream variables or plgvpw so they should come out identically to before. This happens for *.psc, *.psttfc, *.png, and *.svg. In contrast to these voluminous expected results *.pscairo has differences for examples 7, 12, 23, 24, and 29 and *.pngcairo has differences for all examples. It turns out the *.pngcairo differences are due to timestamps (see list discussion for the evidence) so that is okay, and the only worry is the *.pscairo differences. Those turn out to be something to do with fonts and probably nothing to do with the present changes which is why I am going ahead and making this commit. Modified Paths: -------------- trunk/include/plplotP.h trunk/src/plbox.c trunk/src/plcore.c trunk/src/plhist.c trunk/src/plwind.c Modified: trunk/include/plplotP.h =================================================================== --- trunk/include/plplotP.h 2008-10-20 12:46:29 UTC (rev 8941) +++ trunk/include/plplotP.h 2008-10-21 01:42:57 UTC (rev 8942) @@ -624,6 +624,11 @@ void cont_clean_store(CONT_LEVEL *ct); +/* Get the viewport boundaries in world coordinates, expanded slightly */ + +void +plP_xgvpw(PLFLT *p_xmin, PLFLT *p_xmax, PLFLT *p_ymin, PLFLT *p_ymax); + /* Get x-y domain in world coordinates for 3d plots */ void Modified: trunk/src/plbox.c =================================================================== --- trunk/src/plbox.c 2008-10-20 12:46:29 UTC (rev 8941) +++ trunk/src/plbox.c 2008-10-21 01:42:57 UTC (rev 8942) @@ -182,7 +182,7 @@ xtick1 = llx ? 1.0 : xtick; ytick1 = lly ? 1.0 : ytick; - plgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); + plP_xgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); /* n.b. large change; vpwxmi always numerically less than vpwxma, and * similarly for vpwymi */ vpwxmi = (vpwxmax > vpwxmin) ? vpwxmin : vpwxmax; @@ -1110,7 +1110,7 @@ lhy = plP_stsearch(yopt, 'h'); lly = plP_stsearch(yopt, 'l'); - plgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); + plP_xgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); /* n.b. large change; vpwxmi always numerically less than vpwxma, and * similarly for vpwymi */ vpwxmi = (vpwxmax > vpwxmin) ? vpwxmin : vpwxmax; @@ -1221,7 +1221,7 @@ lty = plP_stsearch(yopt, 't'); lvy = plP_stsearch(yopt, 'v'); - plgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); + plP_xgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); /* n.b. large change; vpwxmi always numerically less than vpwxma, and * similarly for vpwymi */ vpwxmi = (vpwxmax > vpwxmin) ? vpwxmin : vpwxmax; Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2008-10-20 12:46:29 UTC (rev 8941) +++ trunk/src/plcore.c 2008-10-21 01:42:57 UTC (rev 8942) @@ -3202,6 +3202,24 @@ *p_ymax = plsc->vpwyma; } +/* Get the viewport boundaries in world coordinates, expanded slightly */ +void +plP_xgvpw(PLFLT *p_xmin, PLFLT *p_xmax, PLFLT *p_ymin, PLFLT *p_ymax) +{ + PLFLT dx, dy; + + dx = (plsc->vpwxma - plsc->vpwxmi) * 1.0e-5; + dy = (plsc->vpwyma - plsc->vpwymi) * 1.0e-5; + + /* The plot window is made slightly larger than requested so that */ + /* the end limits will be on the graph */ + + *p_xmin = plsc->vpwxmi - dx; + *p_xmax = plsc->vpwxma + dx; + *p_ymin = plsc->vpwymi - dy; + *p_ymax = plsc->vpwyma + dy; +} + /*--------------------------------------------------------------------------*\ * These should not be called by the user. \*--------------------------------------------------------------------------*/ Modified: trunk/src/plhist.c =================================================================== --- trunk/src/plhist.c 2008-10-20 12:46:29 UTC (rev 8941) +++ trunk/src/plhist.c 2008-10-21 01:42:57 UTC (rev 8942) @@ -131,7 +131,7 @@ } } - plgvpw(&vpwxmi, &vpwxma, &vpwymi, &vpwyma); + plP_xgvpw(&vpwxmi, &vpwxma, &vpwymi, &vpwyma); if (!(flags & 1)) { for (i = 0; i < nbin - 1; i++) { if (!(flags & 4) || (y[i] != vpwymi)) { Modified: trunk/src/plwind.c =================================================================== --- trunk/src/plwind.c 2008-10-20 12:46:29 UTC (rev 8941) +++ trunk/src/plwind.c 2008-10-21 01:42:57 UTC (rev 8942) @@ -35,6 +35,7 @@ c_plwind(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax) { PLFLT dx, dy, mmxmi, mmxma, mmymi, mmyma; + PLFLT xvpwxmin, xvpwxmax, xvpwymin, xvpwymax; PLWindow w; if (plsc->level < 2) { @@ -53,21 +54,20 @@ ymin--; ymax++; } - dx = (xmax - xmin) * 1.0e-5; - dy = (ymax - ymin) * 1.0e-5; - + plsc->vpwxmi = xmin; + plsc->vpwxma = xmax; + plsc->vpwymi = ymin; + plsc->vpwyma = ymax; + /* The true plot window is made slightly larger than requested so that */ /* the end limits will be on the graph */ +/* Get the (slightly extended) window limits. */ + plP_xgvpw(&xvpwxmin, &xvpwxmax, &xvpwymin, &xvpwymax); - plsc->vpwxmi = xmin - dx; - plsc->vpwxma = xmax + dx; - plsc->vpwymi = ymin - dy; - plsc->vpwyma = ymax + dy; - /* Compute the scaling between coordinate systems */ - dx = plsc->vpwxma - plsc->vpwxmi; - dy = plsc->vpwyma - plsc->vpwymi; + dx = xvpwxmax - xvpwxmin; + dy = xvpwymax - xvpwymin; plsc->wpxscl = (plsc->vppxma - plsc->vppxmi) / dx; plsc->wpxoff = (xmax * plsc->vppxmi - xmin * plsc->vppxma) / dx; @@ -100,10 +100,10 @@ w.dymi = plsc->vpdymi; w.dyma = plsc->vpdyma; - w.wxmi = plsc->vpwxmi; - w.wxma = plsc->vpwxma; - w.wymi = plsc->vpwymi; - w.wyma = plsc->vpwyma; + w.wxmi = xvpwxmin; + w.wxma = xvpwxmax; + w.wymi = xvpwymin; + w.wyma = xvpwymax; plP_swin(&w); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-11-24 21:46:21
|
Revision: 9017 http://plplot.svn.sourceforge.net/plplot/?rev=9017&view=rev Author: smekal Date: 2008-11-24 21:43:58 +0000 (Mon, 24 Nov 2008) Log Message: ----------- Locate, button and key handlers provided by the user are now called at the appropriate places. Not tested, but code compiles. Mentioned the locate mode implementation in README.release. Modified Paths: -------------- trunk/README.release trunk/drivers/wxwidgets_app.cpp Modified: trunk/README.release =================================================================== --- trunk/README.release 2008-11-24 16:43:30 UTC (rev 9016) +++ trunk/README.release 2008-11-24 21:43:58 UTC (rev 9017) @@ -122,8 +122,12 @@ The option "text" changed its meaning, since it enabled the FreeType library support, while now the option enables the driver's own text routines. -In addition the wxWidgets driver now correctly clears the background -(or parts of it) and transparency support was added. +Some other features were added: + * the wxWidgets driver now correctly clears the background (or parts of it) + * transparency support was added + * the "locate mode" (already availale in the xwin and tk driver) was + implemented, where graphics input events are processed and translated + to world coordinates 1.4 pdf driver improvements @@ -380,6 +384,13 @@ The option "text" changed its meaning, since it enabled the FreeType library support, while now the option enables the driver's own text routines. +Some other features were added: + * the wxWidgets driver now correctly clears the background (or parts of it) + * transparency support was added + * the "locate mode" (already availale in the xwin and tk driver) was + implemented, where graphics input events are processed and translated + to world coordinates + 2.12 pdf driver improvements The pdf driver (which is based on the haru library http://www.libharu.org) Modified: trunk/drivers/wxwidgets_app.cpp =================================================================== --- trunk/drivers/wxwidgets_app.cpp 2008-11-24 16:43:30 UTC (rev 9016) +++ trunk/drivers/wxwidgets_app.cpp 2008-11-24 21:43:58 UTC (rev 9017) @@ -416,11 +416,14 @@ Locate(); } else { /* Call user keypress event handler. Since this is called first, the user - * can disable all internal event handling by setting key.keysym to 0. */ - //if (pls->KeyEH != NULL) - // (*pls->KeyEH) (gin, pls->KeyEH_data, &dev->exit_eventloop); - // TODO: This must be tested and implemented - + * can disable all internal event handling by setting gin.keysym to 0. */ + if( m_pls->KeyEH != NULL ) { + int advance=0; + (*m_pls->KeyEH)( gin, m_pls->KeyEH_data, &advance ); + if( advance ) + wxGetApp().SetAdvanceFlag(); + } + switch( gin->keysym ) { case 'L': m_dev->locate_mode = LOCATE_INVOKED_VIA_DRIVER; @@ -554,9 +557,12 @@ else { /* Call user event handler. Since this is called first, the user can * disable all PLplot internal event handling by setting gin->button to 0. */ - //if( pls->ButtonEH != NULL) - // (*pls->ButtonEH)( gin, pls->ButtonEH_data, &dev->exit_eventloop ); - // TODO: This must be tested and implemented! + if( m_pls->ButtonEH != NULL) { + int advance=0; + (*m_pls->ButtonEH)( gin, m_pls->ButtonEH_data, &advance ); + if( advance ) + wxGetApp().SetAdvanceFlag(); + } /* Handle internal events */ switch( gin->button ) { @@ -591,10 +597,14 @@ wxGetApp().SetAdvanceFlag(); /* Call user locate mode handler if provided */ - //if( pls->LocateEH != NULL ) - // (*pls->LocateEH)( gin, pls->LocateEH_data, &dev->locate_mode ); - // TODO: This must be tested and implemented! - // else { + if( m_pls->LocateEH != NULL ) { + int locate_mode=m_dev->locate_mode; + (*m_pls->LocateEH)( gin, m_pls->LocateEH_data, &locate_mode ); + if( !locate_mode ) { + m_dev->locate_mode = 0; + m_dev->draw_xhair=false; + } + } else { if( plTranslateCursor(gin) ) { /* If invoked by the API, we're done */ /* Otherwise send report to stdout */ @@ -606,9 +616,9 @@ } else { /* Selected point is out of bounds, so end locate mode */ m_dev->locate_mode = 0; - m_dev->draw_xhair=false; + m_dev->draw_xhair=false; } - //} + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-12-01 10:49:54
|
Revision: 9027 http://plplot.svn.sourceforge.net/plplot/?rev=9027&view=rev Author: andrewross Date: 2008-12-01 10:49:49 +0000 (Mon, 01 Dec 2008) Log Message: ----------- Fix two small bugs affecting the building and testing of the install tree examples. Modified Paths: -------------- trunk/examples/Makefile.examples trunk/plplot_test/plplot-test.sh.cmake Modified: trunk/examples/Makefile.examples =================================================================== --- trunk/examples/Makefile.examples 2008-11-28 19:38:00 UTC (rev 9026) +++ trunk/examples/Makefile.examples 2008-12-01 10:49:49 UTC (rev 9027) @@ -25,7 +25,7 @@ # convenience to the user for building all the examples without having # to invoke make in the individual sub-directories of examples. -SUBDIRS = c c++ f77 f95 tk java ada +SUBDIRS = c c++ f77 f95 tk java ada ocaml all clean: target=`echo $@`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ Modified: trunk/plplot_test/plplot-test.sh.cmake =================================================================== --- trunk/plplot_test/plplot-test.sh.cmake 2008-11-28 19:38:00 UTC (rev 9026) +++ trunk/plplot_test/plplot-test.sh.cmake 2008-12-01 10:49:49 UTC (rev 9027) @@ -178,7 +178,7 @@ @PLPLOT_OCTAVE_DIR@/support:\ @OCTAVE_M_DIR@/PLplot:\ @OCTAVE_OCT_DIR@: -PATH=$EXAMPLES_DIR/../utils:@exec_prefix@/bin:$PATH +PATH=$EXAMPLES_DIR/../utils:@BIN_DIR@:$PATH export cdir cxxdir f77dir f95dir pythondir javadir octave octavedir tcldir perldir adadir ocamldir PATH fe="" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-12-04 10:46:24
|
Revision: 9034 http://plplot.svn.sourceforge.net/plplot/?rev=9034&view=rev Author: andrewross Date: 2008-12-04 10:46:20 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Patch from Davide Cesari to allow the physical page size to be set for the ps / psttf drivers using plspage. Modified Paths: -------------- trunk/drivers/ps.c trunk/drivers/psttf.cc trunk/include/ps.h Modified: trunk/drivers/ps.c =================================================================== --- trunk/drivers/ps.c 2008-12-03 15:48:46 UTC (rev 9033) +++ trunk/drivers/ps.c 2008-12-04 10:46:20 UTC (rev 9034) @@ -156,6 +156,14 @@ { PSDev *dev; + /* Set default values - 7.5 x 10 [inches] (72 points = 1 inch) */ + if (pls->xlength <= 0 || pls->ylength <=0) { + pls->xlength = 540; + pls->ylength = 720; + } + if (pls->xdpi <= 0) pls->xdpi = 72.; + if (pls->ydpi <= 0) pls->ydpi = 72.; + PLFLT pxlx = YPSSIZE/LPAGE_X; PLFLT pxly = XPSSIZE/LPAGE_Y; Modified: trunk/drivers/psttf.cc =================================================================== --- trunk/drivers/psttf.cc 2008-12-03 15:48:46 UTC (rev 9033) +++ trunk/drivers/psttf.cc 2008-12-04 10:46:20 UTC (rev 9034) @@ -195,6 +195,15 @@ PSDev *dev; PostscriptDocument *doc; + /* Set default values - 7.5 x 10 [inches] (72 points = 1 inch) */ + if (pls->xlength <= 0 || pls->ylength <=0) { + pls->xlength = 540; + pls->ylength = 720; + } + if (pls->xdpi <= 0) pls->xdpi = 72.; + if (pls->ydpi <= 0) pls->ydpi = 72.; + + PLFLT pxlx = YPSSIZE/LPAGE_X; PLFLT pxly = XPSSIZE/LPAGE_Y; Modified: trunk/include/ps.h =================================================================== --- trunk/include/ps.h 2008-12-03 15:48:46 UTC (rev 9033) +++ trunk/include/ps.h 2008-12-04 10:46:20 UTC (rev 9034) @@ -10,8 +10,8 @@ #define LINELENGTH 78 #define COPIES 1 -#define XSIZE 540 /* 7.5 x 10 [inches] */ -#define YSIZE 720 /* (72 points = 1 inch) */ +#define XSIZE (int) (pls->xlength*(pls->xdpi/72.)) +#define YSIZE (int) (pls->ylength*(pls->ydpi/72.)) #define ENLARGE 5 #define XPSSIZE ENLARGE*XSIZE #define YPSSIZE ENLARGE*YSIZE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-12-05 20:11:10
|
Revision: 9043 http://plplot.svn.sourceforge.net/plplot/?rev=9043&view=rev Author: airwin Date: 2008-12-05 20:11:08 +0000 (Fri, 05 Dec 2008) Log Message: ----------- AWI for Hezekiah M. Carty. Change the GRID_* names in the OCaml bindings to PL_GRID_* to help avoid potential name clashes. Modified Paths: -------------- trunk/bindings/ocaml/plplot.idl trunk/examples/ocaml/x21.ml Modified: trunk/bindings/ocaml/plplot.idl =================================================================== --- trunk/bindings/ocaml/plplot.idl 2008-12-05 19:37:35 UTC (rev 9042) +++ trunk/bindings/ocaml/plplot.idl 2008-12-05 20:11:08 UTC (rev 9043) @@ -133,14 +133,14 @@ "let plunset_defined () = Callback.register \"caml_plplot_defined\" 0"); quote(mli, "val plunset_defined : unit -> unit"); -// Hand-translated GRID_* flags for use with plgriddata +// Hand-translated PL_GRID_* flags for use with plgriddata quote(mlmli, "type plplot_grid_method_type = \ - GRID_CSA | \ - GRID_DTLI | \ - GRID_NNI | \ - GRID_NNIDW | \ - GRID_NNLI | \ - GRID_NNAIDW"); + PL_GRID_CSA | \ + PL_GRID_DTLI | \ + PL_GRID_NNI | \ + PL_GRID_NNIDW | \ + PL_GRID_NNLI | \ + PL_GRID_NNAIDW"); // Hand-translated PL_PARSE_* flags for use with plparseopts quote(mlmli, "type plplot_parse_method_type = \ Modified: trunk/examples/ocaml/x21.ml =================================================================== --- trunk/examples/ocaml/x21.ml 2008-12-05 19:37:35 UTC (rev 9042) +++ trunk/examples/ocaml/x21.ml 2008-12-05 20:11:08 UTC (rev 9043) @@ -86,7 +86,8 @@ related integer values are distinct. The array provides a mapping to make conversion of this example from C easier. *) let alg_array = - [|GRID_CSA; GRID_DTLI; GRID_NNI; GRID_NNIDW; GRID_NNLI; GRID_NNAIDW|] + [|PL_GRID_CSA; PL_GRID_DTLI; PL_GRID_NNI; PL_GRID_NNIDW; PL_GRID_NNLI; + PL_GRID_NNAIDW|] in let title = [| @@ -140,10 +141,10 @@ * the neighbors is done. *) if - named_alg = GRID_CSA || - named_alg = GRID_DTLI || - named_alg = GRID_NNLI || - named_alg = GRID_NNI + named_alg = PL_GRID_CSA || + named_alg = PL_GRID_DTLI || + named_alg = PL_GRID_NNLI || + named_alg = PL_GRID_NNI then ( for i = 0 to xp - 1 do for j = 0 to yp - 1 do This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-12-08 09:08:19
|
Revision: 9053 http://plplot.svn.sourceforge.net/plplot/?rev=9053&view=rev Author: andrewross Date: 2008-12-08 09:08:15 +0000 (Mon, 08 Dec 2008) Log Message: ----------- ANR for Hezekiah M Carty. Convert integer constants in plbin and plhist to use PL_* variant type list. Update example 5 to use these. Modified Paths: -------------- trunk/bindings/ocaml/plplot.idl trunk/bindings/ocaml/plplot_h trunk/bindings/ocaml/plplot_h.inc trunk/examples/ocaml/x05.ml Modified: trunk/bindings/ocaml/plplot.idl =================================================================== --- trunk/bindings/ocaml/plplot.idl 2008-12-06 17:44:55 UTC (rev 9052) +++ trunk/bindings/ocaml/plplot.idl 2008-12-08 09:08:15 UTC (rev 9053) @@ -33,6 +33,23 @@ }; typedef [set] enum plplot3d_style_enum plplot3d_style; +enum plplot_bin_enum { + PL_BIN_DEFAULT = 0, + PL_BIN_CENTRED = 1, + PL_BIN_NOEXPAND = 2, + PL_BIN_NOEMPTY = 4, +}; +typedef [set] enum plplot_bin_enum plplot_bin_style; + +enum plplot_hist_enum { + PL_HIST_DEFAULT = 0, + PL_HIST_NOSCALING = 1, + PL_HIST_IGNORE_OUTLIERS = 2, + PL_HIST_NOEXPAND = 8, + PL_HIST_NOEMPTY = 16, +}; +typedef [set] enum plplot_hist_enum plplot_hist_style; + // This is a simplified and modified version of the plplot.h file. #include "plplot_h.inc" Modified: trunk/bindings/ocaml/plplot_h =================================================================== --- trunk/bindings/ocaml/plplot_h 2008-12-06 17:44:55 UTC (rev 9052) +++ trunk/bindings/ocaml/plplot_h 2008-12-08 09:08:15 UTC (rev 9053) @@ -37,7 +37,7 @@ const char *yopt, PLFLT ytick, PLINT nysub); void -c_plbin(PLINT nbin, PLFLT *x, PLFLT *y, PLINT opt); +c_plbin(PLINT nbin, PLFLT *x, PLFLT *y, plplot_bin_style opt); void c_plbop(void); @@ -216,7 +216,7 @@ void c_plhist(PLINT n, PLFLT *data, PLFLT datmin, PLFLT datmax, - PLINT nbin, PLINT opt); + PLINT nbin, plplot_hist_style opt); void c_plhls(PLFLT h, PLFLT l, PLFLT s); Modified: trunk/bindings/ocaml/plplot_h.inc =================================================================== --- trunk/bindings/ocaml/plplot_h.inc 2008-12-06 17:44:55 UTC (rev 9052) +++ trunk/bindings/ocaml/plplot_h.inc 2008-12-08 09:08:15 UTC (rev 9053) @@ -3,7 +3,7 @@ [mlname(pladv)] void c_pladv ( int page ); [mlname(plsvect)] void c_plsvect ( [in, size_is(npts)] double * arrowx, [in, size_is(npts)] double * arrowy, int npts, boolean fill ); [mlname(plaxes)] void c_plaxes ( double x0, double y0, [string] const char * xopt, double xtick, int nxsub, [string] const char * yopt, double ytick, int nysub ); -[mlname(plbin)] void c_plbin ( int nbin, [in, size_is(nbin)] double * x, [in, size_is(nbin)] double * y, int opt ); +[mlname(plbin)] void c_plbin ( int nbin, [in, size_is(nbin)] double * x, [in, size_is(nbin)] double * y, plplot_bin_style opt ); [mlname(plbop)] void c_plbop ( void ); [mlname(plbox)] void c_plbox ( [string] const char * xopt, double xtick, int nxsub, [string] const char * yopt, double ytick, int nysub ); [mlname(plbox3)] void c_plbox3 ( [string] const char * xopt, [string] const char * xlabel, double xtick, int nsubx, [string] const char * yopt, [string] const char * ylabel, double ytick, int nsuby, [string] const char * zopt, [string] const char * zlabel, double ztick, int nsubz ); @@ -50,7 +50,7 @@ [mlname(plgxax)] void c_plgxax ( [out] int * p_digmax, [out] int * p_digits ); [mlname(plgyax)] void c_plgyax ( [out] int * p_digmax, [out] int * p_digits ); [mlname(plgzax)] void c_plgzax ( [out] int * p_digmax, [out] int * p_digits ); -[mlname(plhist)] void c_plhist ( int n, [in, size_is(n), size_is(n)] double * data, double datmin, double datmax, int nbin, int opt ); +[mlname(plhist)] void c_plhist ( int n, [in, size_is(n), size_is(n)] double * data, double datmin, double datmax, int nbin, plplot_hist_style opt ); [mlname(plhls)] void c_plhls ( double h, double l, double s ); [mlname(plhlsrgb)] void c_plhlsrgb ( double h, double l, double s, [out] double * p_r, [out] double * p_g, [out] double * p_b ); [mlname(plinit)] void c_plinit ( void ); Modified: trunk/examples/ocaml/x05.ml =================================================================== --- trunk/examples/ocaml/x05.ml 2008-12-06 17:44:55 UTC (rev 9052) +++ trunk/examples/ocaml/x05.ml 2008-12-08 09:08:15 UTC (rev 9053) @@ -26,7 +26,7 @@ let data = Array.init npts (fun i -> sin (float_of_int i *. delta)) in plcol0 1; - plhist data (-1.1) 1.1 44 0; + plhist data (-1.1) 1.1 44 [PL_HIST_DEFAULT]; plcol0 2; pllab "#frValue" "#frFrequency" "#frPLplot Example 5 - Probability function of Oscillator"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-12-08 19:03:53
|
Revision: 9057 http://plplot.svn.sourceforge.net/plplot/?rev=9057&view=rev Author: airwin Date: 2008-12-08 19:03:50 +0000 (Mon, 08 Dec 2008) Log Message: ----------- Add example 27 to appropriate lists. Modified Paths: -------------- trunk/examples/perl/CMakeLists.txt trunk/plplot_test/test_perl.sh.in Modified: trunk/examples/perl/CMakeLists.txt =================================================================== --- trunk/examples/perl/CMakeLists.txt 2008-12-08 19:02:48 UTC (rev 9056) +++ trunk/examples/perl/CMakeLists.txt 2008-12-08 19:03:50 UTC (rev 9057) @@ -45,6 +45,7 @@ "24" "25" "26" +"27" ) set(perl_SCRIPTS) Modified: trunk/plplot_test/test_perl.sh.in =================================================================== --- trunk/plplot_test/test_perl.sh.in 2008-12-08 19:02:48 UTC (rev 9056) +++ trunk/plplot_test/test_perl.sh.in 2008-12-08 19:03:50 UTC (rev 9057) @@ -38,10 +38,10 @@ fi if [ "@HAVE_PDL_GRAPHICS_PLPLOT_40@" = "ON" ] ; then - INDEX_LIST="01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 22 23 24 25 26" + INDEX_LIST="01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 22 23 24 25 26 27" else # For versions of PDL_GRAPHICS_PLPLOT prior to 0.40, examples - # 02, 20 and 21 don't work. + # 02, 20 and 21 don't work. Not sure about 27 so didn't include it. INDEX_LIST="01 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 24 25 26" fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-12-08 20:58:56
|
Revision: 9059 http://plplot.svn.sourceforge.net/plplot/?rev=9059&view=rev Author: andrewross Date: 2008-12-08 20:58:53 +0000 (Mon, 08 Dec 2008) Log Message: ----------- ANR for Hezekiah M. Carty. Cleanup to make plparseopt option handling consistent with other API functions. Modified Paths: -------------- trunk/bindings/ocaml/plplot.idl trunk/bindings/ocaml/plplot_impl.c trunk/examples/ocaml/x01.ml trunk/examples/ocaml/x02.ml trunk/examples/ocaml/x03.ml trunk/examples/ocaml/x04.ml trunk/examples/ocaml/x05.ml trunk/examples/ocaml/x06.ml trunk/examples/ocaml/x07.ml trunk/examples/ocaml/x08.ml trunk/examples/ocaml/x09.ml trunk/examples/ocaml/x10.ml trunk/examples/ocaml/x11.ml trunk/examples/ocaml/x12.ml trunk/examples/ocaml/x13.ml trunk/examples/ocaml/x15.ml trunk/examples/ocaml/x16.ml trunk/examples/ocaml/x18.ml trunk/examples/ocaml/x19.ml trunk/examples/ocaml/x20.ml trunk/examples/ocaml/x21.ml trunk/examples/ocaml/x22.ml trunk/examples/ocaml/x23.ml trunk/examples/ocaml/x24.ml trunk/examples/ocaml/x25.ml trunk/examples/ocaml/x26.ml trunk/examples/ocaml/x27.ml trunk/examples/ocaml/x28.ml trunk/examples/ocaml/x29.ml trunk/examples/ocaml/x30.ml Modified: trunk/bindings/ocaml/plplot.idl =================================================================== --- trunk/bindings/ocaml/plplot.idl 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/bindings/ocaml/plplot.idl 2008-12-08 20:58:53 UTC (rev 9059) @@ -172,5 +172,5 @@ PL_PARSE_SKIP"); RAW_ML(external plgriddata : float array -> float array -> float array -> float array -> float array -> plplot_grid_method_type -> float -> float array array = "ml_plgriddata_bytecode" "ml_plgriddata") -RAW_ML(external plparseopts : string array -> plplot_parse_method_type array -> int = "ml_plparseopts") +RAW_ML(external plparseopts : string array -> plplot_parse_method_type list -> int = "ml_plparseopts") Modified: trunk/bindings/ocaml/plplot_impl.c =================================================================== --- trunk/bindings/ocaml/plplot_impl.c 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/bindings/ocaml/plplot_impl.c 2008-12-08 20:58:53 UTC (rev 9059) @@ -429,21 +429,21 @@ int i; int result; int argv_length; - int parse_method_length; int combined_parse_method; argv_length = Wosize_val(argv); - parse_method_length = Wosize_val(parse_method); // Make a copy of the command line argument strings const char* argv_copy[argv_length]; for (i = 0; i < argv_length; i++) { argv_copy[i] = String_val( Field(argv, i) ); } - // OR the elements of the parse_method array together - combined_parse_method = Int_val(Field(parse_method, 0)); - for (i = 1; i < parse_method_length; i++) { + // OR the elements of the parse_method list together + combined_parse_method = 0; + while (parse_method != Val_emptylist) { combined_parse_method = combined_parse_method | - translate_parse_option(Int_val(Field(parse_method, i))); + translate_parse_option(Int_val(Field(parse_method, 0))); + // Point to the tail of the list for the next loop + parse_method = Field(parse_method, 1); } result = plparseopts(&argv_length, argv_copy, combined_parse_method); CAMLreturn( Val_int(result) ); Modified: trunk/examples/ocaml/x01.ml =================================================================== --- trunk/examples/ocaml/x01.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x01.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -245,7 +245,7 @@ (* Parse and process command line arguments *) plMergeOpts(options, "x01c options", notes); *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Get version number, just for kicks *) let plplot_version = plgver () in Modified: trunk/examples/ocaml/x02.ml =================================================================== --- trunk/examples/ocaml/x02.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x02.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -129,7 +129,7 @@ let main () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x03.ml =================================================================== --- trunk/examples/ocaml/x03.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x03.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -36,7 +36,7 @@ let y0 = Array.init 361 (fun i -> sin (dtr *. float_of_int i)) in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x04.ml =================================================================== --- trunk/examples/ocaml/x04.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x04.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -81,7 +81,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit(); Modified: trunk/examples/ocaml/x05.ml =================================================================== --- trunk/examples/ocaml/x05.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x05.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -15,7 +15,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x06.ml =================================================================== --- trunk/examples/ocaml/x06.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x06.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -11,7 +11,7 @@ \*--------------------------------------------------------------------------*) let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x07.ml =================================================================== --- trunk/examples/ocaml/x07.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x07.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -15,7 +15,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x08.ml =================================================================== --- trunk/examples/ocaml/x08.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x08.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -85,7 +85,7 @@ let rosen = true in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x09.ml =================================================================== --- trunk/examples/ocaml/x09.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x09.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -249,7 +249,7 @@ let space = [|1500|] in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x10.ml =================================================================== --- trunk/examples/ocaml/x10.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x10.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -10,7 +10,7 @@ \*--------------------------------------------------------------------------*) let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x11.ml =================================================================== --- trunk/examples/ocaml/x11.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x11.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -54,7 +54,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x12.ml =================================================================== --- trunk/examples/ocaml/x12.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x12.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -20,7 +20,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x13.ml =================================================================== --- trunk/examples/ocaml/x13.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x13.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -24,7 +24,7 @@ let per = [|10.0; 32.0; 12.0; 30.0; 16.0|] in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x15.ml =================================================================== --- trunk/examples/ocaml/x15.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x15.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -120,7 +120,7 @@ \*--------------------------------------------------------------------------*) let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Set up color map 1 *) cmap1_init2 (); Modified: trunk/examples/ocaml/x16.ml =================================================================== --- trunk/examples/ocaml/x16.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x16.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -56,7 +56,7 @@ let cont_width = 0 in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display *) plscmap0n 3; Modified: trunk/examples/ocaml/x18.ml =================================================================== --- trunk/examples/ocaml/x18.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x18.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -76,7 +76,7 @@ \*--------------------------------------------------------------------------*) let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x19.ml =================================================================== --- trunk/examples/ocaml/x19.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x19.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -55,7 +55,7 @@ let maxy = 80.0 in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); plinit(); Modified: trunk/examples/ocaml/x20.ml =================================================================== --- trunk/examples/ocaml/x20.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x20.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -105,7 +105,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x21.ml =================================================================== --- trunk/examples/ocaml/x21.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x21.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -102,7 +102,7 @@ let opt = [|0.0; 0.0; wmin; float_of_int knn_order; threshold; 0.0|] in - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x22.ml =================================================================== --- trunk/examples/ocaml/x22.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x22.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -234,7 +234,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x23.ml =================================================================== --- trunk/examples/ocaml/x23.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x23.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -216,7 +216,7 @@ |] let () = - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); plinit (); Modified: trunk/examples/ocaml/x24.ml =================================================================== --- trunk/examples/ocaml/x24.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x24.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -111,7 +111,7 @@ |] let () = - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); plinit (); Modified: trunk/examples/ocaml/x25.ml =================================================================== --- trunk/examples/ocaml/x25.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x25.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -10,7 +10,7 @@ let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plssub 3 3; Modified: trunk/examples/ocaml/x26.ml =================================================================== --- trunk/examples/ocaml/x26.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x26.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -170,7 +170,7 @@ \*--------------------------------------------------------------------------*) let () = (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x27.ml =================================================================== --- trunk/examples/ocaml/x27.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x27.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -93,7 +93,7 @@ (* plplot initialization *) (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x28.ml =================================================================== --- trunk/examples/ocaml/x28.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x28.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -69,7 +69,7 @@ let z = Array.make_matrix xpts ypts 0.0 in (* Parse and process command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); plinit (); Modified: trunk/examples/ocaml/x29.ml =================================================================== --- trunk/examples/ocaml/x29.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x29.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -169,7 +169,7 @@ \*--------------------------------------------------------------------------*) let () = (* Parse command line arguments *) - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); (* Initialize plplot *) plinit (); Modified: trunk/examples/ocaml/x30.ml =================================================================== --- trunk/examples/ocaml/x30.ml 2008-12-08 19:06:27 UTC (rev 9058) +++ trunk/examples/ocaml/x30.ml 2008-12-08 20:58:53 UTC (rev 9059) @@ -43,7 +43,7 @@ let rev = [|false; false|] let () = - ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + ignore (plparseopts Sys.argv [PL_PARSE_FULL]); plinit (); plscmap0n 4; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-12-10 11:55:09
|
Revision: 9077 http://plplot.svn.sourceforge.net/plplot/?rev=9077&view=rev Author: andrewross Date: 2008-12-10 11:55:03 +0000 (Wed, 10 Dec 2008) Log Message: ----------- Fix up a couple of visibility issues with python. Modified Paths: -------------- trunk/bindings/gnome2/python/CMakeLists.txt trunk/bindings/gnome2/python/cplplotcanvas.override trunk/bindings/gnome2/python/cplplotcanvasmodule.c trunk/bindings/python/CMakeLists.txt trunk/bindings/python/plplot_widgetmodule.c trunk/include/pldll.h trunk/include/plplotcanvas.h Modified: trunk/bindings/gnome2/python/CMakeLists.txt =================================================================== --- trunk/bindings/gnome2/python/CMakeLists.txt 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/bindings/gnome2/python/CMakeLists.txt 2008-12-10 11:55:03 UTC (rev 9077) @@ -95,7 +95,7 @@ set_source_files_properties( ${gcwmodule_SRCS} ${cplplotcanvasmodule_SRCS} PROPERTIES COMPILE_FLAGS -"${gcw_COMPILE_FLAGS} ${PYGCW_CFLAGS}" +"${gcw_COMPILE_FLAGS} ${PYGCW_CFLAGS} -DUSINGDLL" ) include_directories( Modified: trunk/bindings/gnome2/python/cplplotcanvas.override =================================================================== --- trunk/bindings/gnome2/python/cplplotcanvas.override 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/bindings/gnome2/python/cplplotcanvas.override 2008-12-10 11:55:03 UTC (rev 9077) @@ -60,7 +60,7 @@ %% %%modulename c_plplotcanvas %% -import gnome.canvas.Canvas as PyGnomeCanvas_Type +import gnomecanvas.Canvas as PyGnomeCanvas_Type %% ignore-glob *_get_type Modified: trunk/bindings/gnome2/python/cplplotcanvasmodule.c =================================================================== --- trunk/bindings/gnome2/python/cplplotcanvasmodule.c 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/bindings/gnome2/python/cplplotcanvasmodule.c 2008-12-10 11:55:03 UTC (rev 9077) @@ -30,11 +30,13 @@ #define PY_ARRAY_UNIQUE_SYMBOL plplotcanvasapi #include "Numeric/arrayobject.h" - + +#include "plplot.h" + void cplplotcanvas_register_classes (PyObject *d); extern PyMethodDef cplplotcanvas_functions[]; -DL_EXPORT(void) +PLDLLIMPEXP_CPLPLOTCANVASMODULE DL_EXPORT(void) initcplplotcanvas(void) { PyObject *m, *d; Modified: trunk/bindings/python/CMakeLists.txt =================================================================== --- trunk/bindings/python/CMakeLists.txt 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/bindings/python/CMakeLists.txt 2008-12-10 11:55:03 UTC (rev 9077) @@ -72,6 +72,12 @@ add_library(plplot_widgetmodule MODULE plplot_widgetmodule.c) set_target_properties(plplot_widgetmodule PROPERTIES PREFIX "") +set_source_files_properties( + plplot_widgetmodule.c + PROPERTIES COMPILE_FLAGS + "-DUSINGDLL" +) + target_link_libraries(plplot_widgetmodule plplot${LIB_TAG} ${PYTHON_LIBRARIES}) if(USE_RPATH) set_target_properties( Modified: trunk/bindings/python/plplot_widgetmodule.c =================================================================== --- trunk/bindings/python/plplot_widgetmodule.c 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/bindings/python/plplot_widgetmodule.c 2008-12-10 11:55:03 UTC (rev 9077) @@ -90,7 +90,7 @@ {NULL, NULL, 0, NULL} }; -void initplplot_widget(void) +PLDLLIMPEXP_PLPLOT_WIDGETMODULE void initplplot_widget(void) { PyObject *m; PyObject *d; Modified: trunk/include/pldll.h =================================================================== --- trunk/include/pldll.h 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/include/pldll.h 2008-12-10 11:55:03 UTC (rev 9077) @@ -123,4 +123,20 @@ #define PLDLLIMPEXP_GNOME2_DATA(type) PLDLLIMPORT type #endif +#if defined(cplplotcanvasmodule_EXPORTS) + #define PLDLLIMPEXP_CPLPLOTCANVASMODULE PLDLLEXPORT + #define PLDLLIMPEXP_CPLPLOTCANVASMODULE_DATA(type) PLDLLEXPORT type +#else + #define PLDLLIMPEXP_CPLPLOTCANVASMODULE PLDLLIMPORT + #define PLDLLIMPEXP_CPLPLOTCANVASMODULE_DATA(type) PLDLLIMPORT type +#endif + +#if defined(plplot_widgetmodule_EXPORTS) + #define PLDLLIMPEXP_PLPLOT_WIDGETMODULE PLDLLEXPORT + #define PLDLLIMPEXP_PLPLOT_MODULE_DATA(type) PLDLLEXPORT type +#else + #define PLDLLIMPEXP_PLPLOT_MODULE PLDLLIMPORT + #define PLDLLIMPEXP_PLPLOT_MODULE_DATA(type) PLDLLIMPORT type +#endif + #endif /* __PL_DLL_H */ Modified: trunk/include/plplotcanvas.h =================================================================== --- trunk/include/plplotcanvas.h 2008-12-10 11:30:22 UTC (rev 9076) +++ trunk/include/plplotcanvas.h 2008-12-10 11:55:03 UTC (rev 9077) @@ -64,7 +64,7 @@ GnomeCanvasClass parent; }; -GType plplot_canvas_get_type(); +PLDLLIMPEXP_GNOME2 GType plplot_canvas_get_type(); PLDLLIMPEXP_GNOME2 PlplotCanvas* plplot_canvas_new(); PLDLLIMPEXP_GNOME2 void plplot_canvas_devinit(PlplotCanvas* self); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-12-11 06:58:05
|
Revision: 9084 http://plplot.svn.sourceforge.net/plplot/?rev=9084&view=rev Author: airwin Date: 2008-12-11 06:58:02 +0000 (Thu, 11 Dec 2008) Log Message: ----------- Changes to make PLplot take advantage of PDL::Graphics::PLplot, version 0.45 features. Modified Paths: -------------- trunk/cmake/modules/pdl.cmake trunk/examples/perl/CMakeLists.txt trunk/examples/perl/README.perldemos trunk/plplot_test/test_perl.sh.in Modified: trunk/cmake/modules/pdl.cmake =================================================================== --- trunk/cmake/modules/pdl.cmake 2008-12-10 21:12:20 UTC (rev 9083) +++ trunk/cmake/modules/pdl.cmake 2008-12-11 06:58:02 UTC (rev 9084) @@ -61,17 +61,17 @@ ERROR_VARIABLE PDL_PLPLOT_VERSION ) #message("PDL_PLPLOT_VERSION = ${PDL_PLPLOT_VERSION}") - transform_version(NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION "0.44.0") + transform_version(NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION "0.45.0") transform_version(NUMERICAL_PDL_PLPLOT_VERSION "${PDL_PLPLOT_VERSION}.0") #message("NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION = ${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") #message("NUMERICAL_PDL_PLPLOT_VERSION = ${NUMERICAL_PDL_PLPLOT_VERSION}") if(NUMERICAL_PDL_PLPLOT_VERSION LESS "${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") message(STATUS "WARNING: " - "perl PDL PLplot version < 0.44 " + "perl PDL PLplot version < 0.45 " "Using more limited set of Perl/PDL examples that work with old versions") - set(HAVE_PDL_GRAPHICS_PLPLOT_40 OFF CACHE BOOL "PDL-Graphics-PLplot version is 0.44 or higher" FORCE) + set(HAVE_PDL_GRAPHICS_PLPLOT_40 OFF CACHE BOOL "PDL-Graphics-PLplot version is 0.45 or higher" FORCE) else(NUMERICAL_PDL_PLPLOT_VERSION LESS "${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") - set(HAVE_PDL_GRAPHICS_PLPLOT_40 ON CACHE BOOL "PDL-Graphics-PLplot version is 0.44 or higher" FORCE) + set(HAVE_PDL_GRAPHICS_PLPLOT_40 ON CACHE BOOL "PDL-Graphics-PLplot version is 0.45 or higher" FORCE) endif(NUMERICAL_PDL_PLPLOT_VERSION LESS "${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") endif(NUMERICAL_PDL_VERSION LESS "${NUMERICAL_PDL_MINIMUM_VERSION}") else(NOT PDL_RETURNCODE) Modified: trunk/examples/perl/CMakeLists.txt =================================================================== --- trunk/examples/perl/CMakeLists.txt 2008-12-10 21:12:20 UTC (rev 9083) +++ trunk/examples/perl/CMakeLists.txt 2008-12-11 06:58:02 UTC (rev 9084) @@ -46,6 +46,9 @@ "25" "26" "27" +"28" +"29" +"30" ) set(perl_SCRIPTS) Modified: trunk/examples/perl/README.perldemos =================================================================== --- trunk/examples/perl/README.perldemos 2008-12-10 21:12:20 UTC (rev 9083) +++ trunk/examples/perl/README.perldemos 2008-12-11 06:58:02 UTC (rev 9084) @@ -9,9 +9,9 @@ module. Instructions for building and installing Doug Hunt's latest version of the -PDL Graphics PLplot module (version 0.44 at the time of writing) +PDL Graphics PLplot module (version 0.45 at the time of writing) -export TARBALL_ROOT_NAME=PDL-Graphics-PLplot-0.44 +export TARBALL_ROOT_NAME=PDL-Graphics-PLplot-0.45 wget \ http://search.cpan.org/CPAN/authors/id/D/DH/DHUNT/$TARBALL_ROOT_NAME.tar.gz Modified: trunk/plplot_test/test_perl.sh.in =================================================================== --- trunk/plplot_test/test_perl.sh.in 2008-12-10 21:12:20 UTC (rev 9083) +++ trunk/plplot_test/test_perl.sh.in 2008-12-11 06:58:02 UTC (rev 9084) @@ -38,10 +38,10 @@ fi if [ "@HAVE_PDL_GRAPHICS_PLPLOT_40@" = "ON" ] ; then - INDEX_LIST="01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 22 23 24 25 26 27" + INDEX_LIST="01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30" else # For versions of PDL_GRAPHICS_PLPLOT prior to 0.40, examples - # 02, 20 and 21 don't work. Not sure about 27 so didn't include it. + # 02, 20 and 21 don't work. Not sure about 27-30 so didn't include them. INDEX_LIST="01 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 24 25 26" fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-12-11 22:53:43
|
Revision: 9088 http://plplot.svn.sourceforge.net/plplot/?rev=9088&view=rev Author: airwin Date: 2008-12-11 22:53:39 +0000 (Thu, 11 Dec 2008) Log Message: ----------- Changes to make PLplot consistent with PDL::Graphics::PLplot, version 0.46. Modified Paths: -------------- trunk/cmake/modules/pdl.cmake trunk/examples/perl/README.perldemos Modified: trunk/cmake/modules/pdl.cmake =================================================================== --- trunk/cmake/modules/pdl.cmake 2008-12-11 20:27:27 UTC (rev 9087) +++ trunk/cmake/modules/pdl.cmake 2008-12-11 22:53:39 UTC (rev 9088) @@ -61,17 +61,17 @@ ERROR_VARIABLE PDL_PLPLOT_VERSION ) #message("PDL_PLPLOT_VERSION = ${PDL_PLPLOT_VERSION}") - transform_version(NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION "0.45.0") + transform_version(NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION "0.46.0") transform_version(NUMERICAL_PDL_PLPLOT_VERSION "${PDL_PLPLOT_VERSION}.0") #message("NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION = ${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") #message("NUMERICAL_PDL_PLPLOT_VERSION = ${NUMERICAL_PDL_PLPLOT_VERSION}") if(NUMERICAL_PDL_PLPLOT_VERSION LESS "${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") message(STATUS "WARNING: " - "perl PDL PLplot version < 0.45 " + "perl PDL PLplot version < 0.46 " "Using more limited set of Perl/PDL examples that work with old versions") - set(HAVE_PDL_GRAPHICS_PLPLOT_40 OFF CACHE BOOL "PDL-Graphics-PLplot version is 0.45 or higher" FORCE) + set(HAVE_PDL_GRAPHICS_PLPLOT_40 OFF CACHE BOOL "PDL-Graphics-PLplot version is 0.46 or higher" FORCE) else(NUMERICAL_PDL_PLPLOT_VERSION LESS "${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") - set(HAVE_PDL_GRAPHICS_PLPLOT_40 ON CACHE BOOL "PDL-Graphics-PLplot version is 0.45 or higher" FORCE) + set(HAVE_PDL_GRAPHICS_PLPLOT_40 ON CACHE BOOL "PDL-Graphics-PLplot version is 0.46 or higher" FORCE) endif(NUMERICAL_PDL_PLPLOT_VERSION LESS "${NUMERICAL_PDL_PLPLOT_MINIMUM_VERSION}") endif(NUMERICAL_PDL_VERSION LESS "${NUMERICAL_PDL_MINIMUM_VERSION}") else(NOT PDL_RETURNCODE) Modified: trunk/examples/perl/README.perldemos =================================================================== --- trunk/examples/perl/README.perldemos 2008-12-11 20:27:27 UTC (rev 9087) +++ trunk/examples/perl/README.perldemos 2008-12-11 22:53:39 UTC (rev 9088) @@ -9,9 +9,9 @@ module. Instructions for building and installing Doug Hunt's latest version of the -PDL Graphics PLplot module (version 0.45 at the time of writing) +PDL Graphics PLplot module (version 0.46 at the time of writing) -export TARBALL_ROOT_NAME=PDL-Graphics-PLplot-0.45 +export TARBALL_ROOT_NAME=PDL-Graphics-PLplot-0.46 wget \ http://search.cpan.org/CPAN/authors/id/D/DH/DHUNT/$TARBALL_ROOT_NAME.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-12-13 19:57:43
|
Revision: 9095 http://plplot.svn.sourceforge.net/plplot/?rev=9095&view=rev Author: airwin Date: 2008-12-13 19:57:36 +0000 (Sat, 13 Dec 2008) Log Message: ----------- Disable tk, itk, and itcl by default as discussed on list. Modified Paths: -------------- trunk/README.release trunk/cmake/modules/tcl-related.cmake Modified: trunk/README.release =================================================================== --- trunk/README.release 2008-12-12 06:03:43 UTC (rev 9094) +++ trunk/README.release 2008-12-13 19:57:36 UTC (rev 9095) @@ -15,30 +15,41 @@ Notices for Users. -This is the official notice that our deprecated autotools-based build system -has now been removed. Instead, use the CMake-based build system following -the directions in the INSTALL file. +I. This is the official notice that our deprecated autotools-based build +system has now been removed. Instead, use the CMake-based build system +following the directions in the INSTALL file. -This is official notice that we no longer support Octave-2.1.73 which has a -variety of run-time issues in our tests of the Octave examples on different -platforms. In contrast our tests show we get good run-time results with all -our Octave examples for Octave-3.0.1. Also, that is the recommended stable -version of Octave at http://www.gnu.org/software/octave/download.html so -that is the only version of Octave we support at this time. +II. This is official notice that the tk, itk, and itcl components of PLplot +have been disabled by default for this release. We reluctantly take this +step for these venerable PLplot components because we found segfaults with +most of our Tk-related interactive tests for this release. We hope these +issues are addressed before our next release so that the tk, itk, and itcl +components of PLplot can be enabled by default again. For now, if you want +to try these components of PLplot to help us debug the problem, you must +specifically use the cmake options -DENABLE_tk=ON -DENABLE_itk=ON +-DENABLE_itcl=ON to build and install these components. -This is official notice that the PLplot team have decided for consistency -sake to change the PLplot stream variables plsc->vpwxmi, plsc->vpwxma, -plsc->vpwymi, and plsc->vpwyma and the results returned by plgvpw to reflect -the exact window limit values input by users using plwind. Previously to -this change, the stream variables and the values returned by plgvpw -reflected the internal slightly expanded range of window limits used by -PLplot so that the user's specified limits would be on the graph. Two users -noted this slight difference, and we agree with them it should not be there. -Note that internally, PLplot still uses the expanded ranges so most users -results will be identical. However, you may notice some small changes to -your plot results if you use these stream variables directly (only possible -in C/C++) or use plgvpw. +III. This is official notice that we no longer support Octave-2.1.73 which +has a variety of run-time issues in our tests of the Octave examples on +different platforms. In contrast our tests show we get good run-time +results with all our Octave examples for Octave-3.0.1. Also, that is the +recommended stable version of Octave at +http://www.gnu.org/software/octave/download.html so that is the only version +of Octave we support at this time. +IV. This is official notice that the PLplot team have decided for +consistency sake to change the PLplot stream variables plsc->vpwxmi, +plsc->vpwxma, plsc->vpwymi, and plsc->vpwyma and the results returned by +plgvpw to reflect the exact window limit values input by users using plwind. +Previously to this change, the stream variables and the values returned by +plgvpw reflected the internal slightly expanded range of window limits used +by PLplot so that the user's specified limits would be on the graph. Two +users noted this slight difference, and we agree with them it should not be +there. Note that internally, PLplot still uses the expanded ranges so most +users results will be identical. However, you may notice some small changes +to your plot results if you use these stream variables directly (only +possible in C/C++) or use plgvpw. + INDEX 1. Changes relative to PLplot 5.9.0 (the previous development release) Modified: trunk/cmake/modules/tcl-related.cmake =================================================================== --- trunk/cmake/modules/tcl-related.cmake 2008-12-12 06:03:43 UTC (rev 9094) +++ trunk/cmake/modules/tcl-related.cmake 2008-12-13 19:57:36 UTC (rev 9095) @@ -27,9 +27,9 @@ option(ENABLE_itk "Enable incr TK interface code" OFF) else(DEFAULT_NO_BINDINGS) option(ENABLE_tcl "Enable Tcl bindings" ON) - option(ENABLE_itcl "Enable incr Tcl interface code" ON) - option(ENABLE_tk "Enable Tk interface code" ON) - option(ENABLE_itk "Enable incr TK interface code" ON) + option(ENABLE_itcl "Enable incr Tcl interface code" OFF) + option(ENABLE_tk "Enable Tk interface code" OFF) + option(ENABLE_itk "Enable incr TK interface code" OFF) endif(DEFAULT_NO_BINDINGS) # Depending on these above options and system resources may also determine This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |