I'm using wxWidgets-3.0.0 with MinGW (tdm-gcc-4.8.1-3).

When building wxArt2D I get the following error.

C:\user_data\david\dajac\source_pool\wxArt2D\wxArt2D\packages\wxart2d\artbase\sr
c\drawer2d.cpp: In member function 'void a2dDrawer2D::FillPolygon(int, 
wxRealPoi
nt*)':
C:\user_data\david\dajac\source_pool\wxArt2D\wxArt2D\packages\wxart2d\artbase\sr
c\drawer2d.cpp:2792:42: error: invalid conversion from 'int (*)(const 
a2dAET**,
const a2dAET**)' to 'wxSortCompareFunction {aka int (*)(const void*, 
const void*
)}' [-fpermissive]
                  m_AETlist.Sort( SortonXs );
                                           ^
In file included from 
C:/user_data/david/dajac/source_pool/wxWidgets-3.0.0/inclu
de/wx/wx.h:17:0,
                  from 
C:\user_data\david\dajac\source_pool\wxArt2D\wxArt2D\packa
ges\wxart2d\artbase\src\drawer2d.cpp:18:
C:/user_data/david/dajac/source_pool/wxWidgets-3.0.0/include/wx/list.h:320:14: 
e
rror:   initializing argument 1 of 'void 
a2dAETList::Sort(wxSortCompareFunction)
' [-fpermissive]
          void Sort( wxSortCompareFunction compfunc 
)                           \

               ^
C:/user_data/david/dajac/source_pool/wxWidgets-3.0.0/include/wx/list.h:66:5: 
not
e: in expansion of macro 'WX_DECLARE_LIST_XO'
      WX_DECLARE_LIST_XO(elT*, liT, decl)
      ^
C:/user_data/david/dajac/source_pool/wxArt2D/wxArt2D/packages/wxart2d/include/wx
/artbase/artglob.h:323:1: note: in expansion of macro 
'WX_DECLARE_LIST_WITH_DECL
'
  WX_DECLARE_LIST_WITH_DECL( a2dAET, a2dAETList, class A2DARTBASEDLLEXP );
  ^
artbase\src\CMakeFiles\artbase.dir\build.make:57: recipe for target 
'artbase/src
/CMakeFiles/artbase.dir/drawer2d.cpp.obj' failed
mingw32-make[2]: *** 
[artbase/src/CMakeFiles/artbase.dir/drawer2d.cpp.obj] Error
  1
CMakeFiles\Makefile2:222: recipe for target 
'artbase/src/CMakeFiles/artbase.dir/
all' failed
mingw32-make[1]: *** [artbase/src/CMakeFiles/artbase.dir/all] Error 2
Makefile:115: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

To make the compiler happy, I changed the SortonXs() function to accept 
void* parameters and explicitly cast to a2sAET** as follows.

static int SortonXs( const void* f, const void* s )
{
     const a2dAET** first =(const a2dAET **)f;
     const a2dAET** second =(const a2dAET **)s;

     if ( ( *first )->m_xs < ( *second )->m_xs )
         return -1;
     else if ( ( *first )->m_xs > ( *second )->m_xs )
         return 1;

     return 0;
}

This hasn't been tested (beyond compiling) so I'm not sure it actually 
gives the desired results. Beware if you have issues with filled polygons.

David

------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Wxart2d-users_dev mailing list
Wxart2d-users_dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxart2d-users_dev

Reply via email to