WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: FLTK-full/tiny split question  (Read 2473 times)

Offline madRat

  • Newbie
  • *
  • Posts: 6
FLTK-full/tiny split question
« on: May 17, 2017, 08:41:01 AM »
Dear Maintainers,
I have understood the main idea to decrease size of main package ('fltk-1.3'), but add possibility use opengl/printer features fltk ('fltk-full').

But when I have tried to migrate from 7.2 - face the following issue the classes for working with images is not available:
  • Fl_RGB_Image - and system independent in-code bitmap manipulation
  • Fl_PNG_Image/Fl_JPEG_Image - working with files
the underlying libraries libpng and libjpeg-turbo is installed in 8.0, so supporting for png/jpeg available in system, but  in fltk it is not native.

Is this behavior a feature, which possibilities I have not seen or a bug?
« Last Edit: May 17, 2017, 08:42:53 AM by madRat »

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: FLTK-full/tiny split question
« Reply #1 on: May 17, 2017, 01:18:30 PM »
Those classes are in the fltk_images library, on both 7.x and 8.x?
The only barriers that can stop you are the ones you create yourself.

Offline madRat

  • Newbie
  • *
  • Posts: 6
Re: FLTK-full/tiny split question
« Reply #2 on: May 22, 2017, 12:18:23 PM »
Dear Curaga, thank you for answer.

Yes, these classes are available with 7.x and 8.x and thank you for idea - so looks I have found reason:

FLTK 1.3.3 - Fl_Image::Fl_Image(int, int, int) and Fl_RGB_Image::Fl_RGB_Image(const uchar *bits, int W, int H, int D=3, int LD=0) are inline-functions.
FLTK 1.3.4 they have been moved to cxx and should be exportable from libfltk.so.1.3.

« Last Edit: May 22, 2017, 12:38:41 PM by madRat »

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: FLTK-full/tiny split question
« Reply #3 on: May 22, 2017, 01:31:02 PM »
They are exported correctly in 8.x libfltk.so.1.3. Where exactly do you see this issue?
The only barriers that can stop you are the ones you create yourself.

Offline madRat

  • Newbie
  • *
  • Posts: 6
Re: FLTK-full/tiny split question
« Reply #4 on: May 23, 2017, 05:43:46 AM »
Dear Curaga,

TinyCore Linux 8.0 x86 32bit image (iso's md5 f7fee34a73a7f8e3adb30778c7c32c51) downloaded from the cite.

It's fltk-1.3.tcz (md5: 6d342fa56...) exports (I will skip all unrelated to items):
Code: [Select]
$nm -D /usr/local/lib/libfltk.so.1.3 | grep Fl_Image
00043b70 T _ZN8Fl_Image10desaturateEv ; Fl_Image::desaturate()
00044192 T _ZN8Fl_Image10draw_emptyEii ; Fl_Image::draw_empty(int, int)
00044240 T _ZN8Fl_Image11RGB_scalingE14Fl_RGB_Scaling ; Fl_Image::RGB_scaling(Fl_RGB_Scaling)
0004425a T _ZN8Fl_Image11RGB_scalingEv ; Fl_Image::RGB_scaling()
000b78ec B _ZN8Fl_Image12RGB_scaling_E ; Fl_Image::RGB_scaling_
00043b6a T _ZN8Fl_Image13color_averageEjf ; Fl_Image::color_average(unsigned int, float)
00043c16 T _ZN8Fl_Image4copyEii ; Fl_Image::copy(int, int)
00044218 T _ZN8Fl_Image4drawEiiiiii ; Fl_Image::draw(int, int, int, int, int, int)
00043c6c T _ZN8Fl_Image5labelEP12Fl_Menu_Item ; Fl_Image::label(Fl_Menu_Item*)
00043b76 T _ZN8Fl_Image5labelEP9Fl_Widget ; Fl_Image::label(Fl_Widget*)
00043b84 T _ZN8Fl_Image7measureEPK8Fl_LabelRiS3_ ; Fl_Image::measure(Fl_Label const*, int&, int&)
00043b70 T _ZN8Fl_Image7uncacheEv ; Fl_Image::uncache()
00044102 T _ZN8Fl_Image9labeltypeEPK8Fl_Labeliiiij ; Fl_Image::labeltype(Fl_Label const*, int, int, int, int, unsigned int)
00043be8 T _ZN8Fl_ImageD0Ev ;Fl_Image::~Fl_Image()
00043b64 T _ZN8Fl_ImageD1Ev ;Fl_Image::~Fl_Image()
000b38a0 V _ZTV8Fl_Image ;vtable for Fl_Image

$nm -D /usr/local/lib/libfltk.so.1.3 | grep Fl_RGB_Image
00043d80 T Fl_RGB_Image::desaturate()
00043ed4 T Fl_RGB_Image::color_average(unsigned int, float)
00044272 T Fl_RGB_Image::copy(int, int)
00043b9e T Fl_RGB_Image::draw(int, int, int, int, int, int)
00043c6c T Fl_RGB_Image::label(Fl_Menu_Item*)
00043bda T Fl_RGB_Image::label(Fl_Widget*)
00043ca6 T Fl_RGB_Image::uncache()
000b5358 D Fl_RGB_Image::max_size_
000448f6 T Fl_RGB_Image::Fl_RGB_Image(Fl_Pixmap const*, unsigned int)
000448f6 T Fl_RGB_Image::Fl_RGB_Image(Fl_Pixmap const*, unsigned int)
00043d52 T Fl_RGB_Image::~Fl_RGB_Image()
00043cfc T Fl_RGB_Image::~Fl_RGB_Image()
00043cfc T Fl_RGB_Image::~Fl_RGB_Image()
000b38cc V vtable for Fl_RGB_Image
So - there are no constructors Fl_Image::Fl_Image(int, int, int) "_ZN8Fl_ImageC1Eiii" and Fl_RGB_Image::Fl_RGB_Image(unsigned char const*, int, int, int, int) "_ZN12Fl_RGB_ImageC1EPKhiiii".

But when installed fltk-full.tcz (md5sum starts 5a25) and its libfltk.so.1.3 (md5sum starts with 799)
Code: [Select]
$nm -D /usr/local/lib/libfltk.so.1.3 | grep Fl_ImageC
0004b570 T _ZN8Fl_ImageC1Eiii Fl_Image::Fl_Image(int, int, int)
0004b570 T _ZN8Fl_ImageC2Eiii : Fl_Image::Fl_Image(int, int, int)

$nm -D /usr/local/lib/libfltk.so.1.3 | grep Fl_RGB_ImageC
0004b6f6 T _ZN12Fl_RGB_ImageC1EPKhiiii ; Fl_RGB_Image::Fl_RGB_Image(unsigned char const*, int, int, int, int)
« Last Edit: May 23, 2017, 05:45:42 AM by madRat »

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: FLTK-full/tiny split question
« Reply #5 on: May 23, 2017, 01:43:00 PM »
The 6d.. md5sum is from the older fltk, used in 7.x. Okay, I see the problem: the isos were released a month before the fltk update, so trying to build on them (and not via a TC install) would have mismatched -dev and the normal lib.

Two solutions:
- do a normal install, and update extensions so the fltk lib is the latest one, same version as the -dev
- wait for 8.1 which would include updated extensions
The only barriers that can stop you are the ones you create yourself.

Offline madRat

  • Newbie
  • *
  • Posts: 6
Re: FLTK-full/tiny split question
« Reply #6 on: May 24, 2017, 05:49:14 AM »
Thank you, will update the fltk.tcz