home *** CD-ROM | disk | FTP | other *** search
/ ftp.xmission.com / 2014.06.ftp.xmission.com.tar / ftp.xmission.com / pub / lists / fractdev / archive / fractdev.199905 < prev    next >
Internet Message Format  |  1999-05-26  |  120KB

  1. From: "Tim Wegner" <twegner@phoenix.net>
  2. Subject: Re: (fractdev) GPL clarification
  3. Date: 01 May 1999 10:31:21 -0600
  4.  
  5. Kragen wrote:
  6.  
  7. > The response to my email to gnu@gnu.org:
  8. > If GMP is under the GPL, then Fractint would have to be
  9. > GPLed to use GMP code.  Under the GPL you can have
  10. > commercial sale, although license fees are illegal of
  11. > course.
  12. > --
  13. >                                    Brian Youmans
  14. >                                    FSF Office Staff
  15.  
  16.  
  17. Folks if you want to kill the idea of Fractint's using somebody's 
  18. code, quote some bureaucrat who uses unintelligible  acronyms 
  19. who is trying to tell us what to do.
  20.  
  21. As Rich said, arbitrary precision is very low on our list of priorities. 
  22. We have working portable code written by ourselves. At some 
  23. future time we might rework it. 
  24.  
  25. FWIW, Fractint has the policy of not using any libraries that we 
  26. can't provide in source form. We do have a need to redo our license 
  27. agreement, which is very badly written. However this interchange 
  28. has not warmed me up to  FSF (Free Software Foundation???).
  29.  
  30. Tim Wegner
  31.  
  32.  
  33.  
  34.  
  35. Thanks for using Fractdev, The Fractint Developer's Discussion List
  36. Post Message:   fractdev@lists.xmission.com
  37. Get Commands:   majordomo@lists.xmission.com "help"
  38. Administrator:  twegner@phoenix.net
  39. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  40.  
  41.  
  42. -------------------------------------------------------------------------------
  43.  
  44. From: Phil McRevis <legalize@xmission.com>
  45. Subject: Re: (fractdev) GPL clarification 
  46. Date: 02 May 1999 19:26:30 -0600
  47.  
  48. Don't worry about what Brian Youmans said.  He hasn't read the license
  49. file that comes with GMP.  That file really is the last word on this
  50. subject.  <ftp://mirrors.xmission.com/gnu/gmp/gmp-2.0.2.tar.gz>
  51. --
  52. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  53.     ``Ain't it funny that they all fire the pistol,     
  54.       at the wrong end of the race?''--PDBT     
  55. legalize@xmission.com    <http://www.eden.com/~thewho>
  56.  
  57. Thanks for using Fractdev, The Fractint Developer's Discussion List
  58. Post Message:   fractdev@lists.xmission.com
  59. Get Commands:   majordomo@lists.xmission.com "help"
  60. Administrator:  twegner@phoenix.net
  61. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  62.  
  63.  
  64. -------------------------------------------------------------------------------
  65.  
  66. From: Phil McRevis <legalize@xmission.com>
  67. Subject: (fractdev) device extraction -- 2nd try
  68. Date: 03 May 1999 08:08:40 -0600
  69.  
  70. ------- =_aaaaaaaaaa0
  71. Content-Type: text/plain; charset="us-ascii"
  72. Content-ID: <6646.925740513.1@xmission.xmission.com>
  73.  
  74. Looks like my first try was too long again, here we go...
  75.  
  76. Well I've made the first pass through the code and ripped out the
  77. XFRACT specific parts and separated the code into two and a half
  78. drivers: "disk", "x11", and "fractint".  Its only two and a half
  79. drivers because the "fractint" driver hasn't had its guts (i.e. the
  80. existing video drivers written in assembly) ported to a 32bit DPMI
  81. environment, which is the target of this effort.
  82.  
  83. "disk" uses curses for text I/O, uses a piece of memory as a
  84. framebuffer for graphical output and uses the diskvideo code already in
  85. fractint.
  86.  
  87. "x11" has the X11 graphical output code, but none of the curses text
  88. I/O code.  Next for X11 will be to have its text I/O implemented with
  89. X text.
  90.  
  91. "fractint" won't work completely in this flat-memory model port (i.e.
  92. djgpp) until the assembly code is ported for the video drivers.  Where
  93. there was a routine that was only partially #ifdef'ed on XFRACT, the
  94. non-XFACT version of the routine went into the fractint driver.  This
  95. code has not been compiled, but would serve a useful scaffold to
  96. whoever wanted to port the assembly. ;-)
  97.  
  98. I've only gone so far as to make the edits to the code (quite a lot)
  99. and verify that everything compiles like it should.  I ran the curses
  100. version and it came up like it should, although it didn't save a proper
  101. GIF correctly when I typed 's'.
  102.  
  103. FYI Attachments: driver header file
  104. --
  105. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  106.     ``Ain't it funny that they all fire the pistol, 
  107.       at the wrong end of the race?''--PDBT
  108.           <http://www.eden.com/~thewho>
  109.  
  110. ------- =_aaaaaaaaaa0
  111. Content-Type: text/plain; name="drivers.h"; charset="us-ascii"
  112. Content-ID: <6646.925740513.2@xmission.xmission.com>
  113.  
  114. #if !defined(DRIVERS_H)
  115. #define DRIVERS_H
  116.  
  117. /*------------------------------------------------------------
  118.  * Driver Methods:
  119.  *
  120.  * init
  121.  * Initialize the driver and return non-zero on success.
  122.  *
  123.  * terminate
  124.  * flush
  125.  * schedule_alarm
  126.  * start_video
  127.  * end_video
  128.  
  129.  * window
  130.  * Do whatever is necessary to open up a window after the screen size
  131.  * has been set.  In a windowed environment, the window may provide
  132.  * scroll bars to pan a cropped view across the screen.
  133.  *
  134.  * resize
  135.  * redraw
  136.  * read_palette, write_palette
  137.  * read_pixel, write_pixel
  138.  * read_span, write_span
  139.  * set_line_mode
  140.  * draw_line
  141.  * get_key
  142.  * shell
  143.  * set_video_mode
  144.  * put_string
  145.  * set_for_text, set_for_graphics, set_clear
  146.  * find_font
  147.  * move_cursor
  148.  * hide_text_cursor
  149.  * set_attr
  150.  * scroll_up
  151.  * stack_screen, unstack_screen, discard_screen
  152.  */
  153. struct tagDriver {
  154.   const char *name;            /* name of driver */
  155.   int (*init)(int *argc, char **argv);  /* init the driver */
  156.   void (*terminate)(void);        /* shutdown the driver */
  157.   void (*flush)(void);            /* flush pending updates */
  158.   void (*schedule_alarm)(int secs);    /* refresh alarm */
  159.  
  160.   int (*start_video)(void);
  161.   int (*end_video)(void);
  162.  
  163.   void (*window)(void);            /* creates a window */
  164.   int (*resize)(void);            /* handles window resize.  */
  165.   void (*redraw)(void);            /* redraws the screen */
  166.  
  167.   int (*read_palette)(void);        /* reads palette into dacbox */
  168.   int (*write_palette)(void);        /* writes dacbox into palette */
  169.  
  170.   int (*read_pixel)(int x, int y);
  171.   void (*write_pixel)(int x, int y, int color);
  172.                     /* reads a line of pixels */
  173.   void (*read_span)(int y, int x, int lastx, BYTE *pixels);
  174.                     /* writes a line of pixels */
  175.   void (*write_span)(int y, int x, int lastx, BYTE *pixels);
  176.  
  177.   void (*set_line_mode)(int mode);    /* set copy/xor line */
  178.   void (*draw_line)(int x1, int y1, int x2, int y2); /* draw line */
  179.   
  180.   int (*get_key)(int block);        /* poll or block for a key */
  181.   void (*shell)(void);            /* invoke a command shell */
  182.   void (*set_video_mode)(int ax, int bx, int cx, int dx);
  183.   void (*put_string)(int row, int col, int attr, const char *msg);
  184.  
  185.   void (*set_for_text)(void);        /* set for text mode & save gfx */
  186.   void (*set_for_graphics)(void);    /* restores graphics and data */
  187.   void (*set_clear)(void);        /* clears text screen */
  188.  
  189.   BYTE *(*find_font)(int parm);        /* for palette editor */
  190.  
  191.   /* text screen functions */
  192.   void (*move_cursor)(int row, int col);
  193.   void (*hide_text_cursor)(void);
  194.   void (*set_attr)(int row, int col, int attr, int count);
  195.   void (*scroll_up)(int top, int bot);
  196.   void (*stack_screen)(void);
  197.   void (*unstack_screen)(void);
  198.   void (*discard_screen)(void);
  199.  
  200.   /* sound routines */
  201.   int (*init_fm)(void);
  202.   void (*buzzer)(int kind);
  203.   void (*sound_on)(int frequency);
  204.   void (*sound_off)(void);
  205.   
  206. };
  207. typedef struct tagDriver Driver;
  208.  
  209. #define STD_DRIVER_STRUCT(name_) \
  210.   { \
  211.     "##name_##", \
  212.     name_##_init, \
  213.     name_##_terminate, \
  214.     name_##_flush, \
  215.     name_##_schedule_alarm, \
  216.     name_##_start_video, \
  217.     name_##_end_video, \
  218.     name_##_window, \
  219.     name_##_resize, \
  220.     name_##_redraw, \
  221.     name_##_read_palette, \
  222.     name_##_write_palette, \
  223.     name_##_read_pixel, \
  224.     name_##_write_pixel, \
  225.     name_##_read_span, \
  226.     name_##_write_span, \
  227.     name_##_set_line_mode, \
  228.     name_##_draw_line, \
  229.     name_##_get_key, \
  230.     name_##_shell, \
  231.     name_##_set_video_mode, \
  232.     name_##_put_string, \
  233.     name_##_set_for_text, \
  234.     name_##_set_for_graphics, \
  235.     name_##_set_clear, \
  236.     name_##_find_font, \
  237.     name_##_move_cursor, \
  238.     name_##_hide_text_cursor, \
  239.     name_##_set_attr, \
  240.     name_##_scroll_up, \
  241.     name_##_stack_screen, \
  242.     name_##_unstack_screen, \
  243.     name_##_discard_screen, \
  244.     name_##_init_fm, \
  245.     name_##_buzzer, \
  246.     name_##_sound_on, \
  247.     name_##_sound_off \
  248.   }
  249.  
  250. #define HAVE_X11_DRIVER 1
  251. #define HAVE_DISK_DRIVER 1
  252.  
  253. extern int init_drivers(int *argc, char **argv);
  254. extern void close_drivers(void);
  255.  
  256. #define USE_DRIVER_FUNCTIONS 1
  257.  
  258. #if defined(USE_DRIVER_FUNCTIONS)
  259.  
  260. extern void driver_terminate(void);
  261. extern void driver_flush(void);
  262. extern void driver_schedule_alarm(int secs);
  263. extern int driver_start_video(void);
  264. extern int driver_end_video(void);
  265. extern void driver_window(void);
  266. extern int driver_resize(void);
  267. extern void driver_redraw(void);
  268. extern int driver_read_palette(void);
  269. extern int driver_write_palette(void);
  270. extern int driver_read_pixel(int x, int y);
  271. extern void driver_write_pixel(int x, int y, int color);
  272. extern void driver_read_span(int y, int x, int lastx, BYTE *pixels);
  273. extern void driver_write_span(int y, int x, int lastx, BYTE *pixels);
  274. extern void driver_set_line_mode(int mode);
  275. extern void driver_draw_line(int x1, int y1, int x2, int y2);
  276. extern int driver_get_key(int block);
  277. extern void driver_shell(void);
  278. extern void driver_set_video_mode(int ax, int bx, int cx, int dx);
  279. extern void driver_put_string(int row, int col, int attr, const char *msg);
  280. extern void driver_set_for_text(void);
  281. extern void driver_set_for_graphics(void);
  282. extern void driver_set_clear(void);
  283. extern BYTE *driver_find_font(int parm);
  284. extern void driver_move_cursor(int row, int col);
  285. extern void driver_hide_text_cursor(void);
  286. extern void driver_set_attr(int row, int col, int attr, int count);
  287. extern void driver_scroll_up(int top, int bot);
  288. extern void driver_stack_screen(void);
  289. extern void driver_unstack_screen(void);
  290. extern void driver_discard_screen(void);
  291. extern int driver_init_fm(void);
  292. extern void driver_buzzer(int kind);
  293. extern void driver_sound_on(int frequency);
  294. extern void driver_sound_off(void);
  295.  
  296. #else
  297.  
  298. extern Driver *display;
  299. #define driver_terminate()        (*display->terminate)()
  300. #define driver_flush()            (*display->flush)()
  301. #define void driver_schedule_alarm(_secs) \
  302.     (*display->schedule_alarm)(_secs)
  303. #define driver_start_video()        (*display->start_video)()
  304. #define driver_end_video()        (*display->end_video)()
  305. #define driver_window()            (*display->window)()
  306. #define driver_resize()            (*display->resize)()
  307. #define driver_redraw()            (*display->redraw)()
  308. #define driver_read_palette()        (*display->read_palette)()
  309. #define driver_write_palette()        (*display->write_palette)()
  310. #define driver_read_pixel(_x, _y)    (*display->read_pixel)(_x, _y)
  311. #define driver_write_pixel(_x, _y, _color) \
  312.     (*display->write_pixel)(_x, _y, _color)
  313. #define driver_read_span(_y, _x, _lastx, _pixels) \
  314.     (*display->read_span(_y, _x, _lastx, _pixels)
  315. #define driver_write_span(_y, _x, _lastx, _pixels) \
  316.     (*display->write_span)(_y, _x, _lastx, _pixels)
  317. #define driver_set_line_mode(_m)    (*display->set_line_mode)(_m)
  318. #define driver_draw_line(x1_, y1_, x2_, y2_) \
  319.     (*display->draw_line)(x1_, y1_, x1_, y2_)
  320. #define driver_get_key(_block)        (*display->get_key)(_block)
  321. #define driver_shell()            (*display->shell)()
  322. #define driver_set_video_mode(_ax, _bx, _cx, _dx) \
  323.     (*display->set_video_mode)(_ax, _bx, _cx, _dx)
  324. #define driver_put_string(_row, _col, _attr, _msg) \
  325.     (*display->put_string)(_row, _col, _attr, _msg)
  326. #define driver_set_for_text()        (*display->set_for_text)()
  327. #define driver_set_for_graphics()    (*display->set_for_graphics)()
  328. #define driver_set_clear()        (*display->set_clear)()
  329. #define driver_find_font(_parm)        (*display->find_font)(_parm)
  330. #define driver_move_cursor(_row, _col)    (*display->move_cursor)(_row, _col)
  331. #define driver_hide_text_cursor()    (*display->hide_text_cursor)()
  332. #define driver_set_attr(_row, _col, _attr, _count) \
  333.     (*display->set_attr)(_row, _col, _attr, _count)
  334. #define driver_scroll_up(_top, _bot) \
  335.     (*display->scroll_up)(_top, _bot)
  336. #define driver_stack_screen()        (*display->stack_screen)()
  337. #define driver_unstack_screen()        (*display->unstack_screen)()
  338. #define driver_discard_screen()        (*display->discard_screen)()
  339. #define driver_init_fm()        (*display->init_fm)()
  340. #define driver_buzzer(_kind)        (*display->buzzer)(_kind)()
  341. #define driver_sound_on(_freq)        (*display->sound)(_freq)
  342. #define driver_sound_off()        (*display->sound_off)()
  343.  
  344. #endif
  345.  
  346. #endif /* DRIVERS_H */
  347.  
  348. ------- =_aaaaaaaaaa0--
  349.  
  350. Thanks for using Fractdev, The Fractint Developer's Discussion List
  351. Post Message:   fractdev@lists.xmission.com
  352. Get Commands:   majordomo@lists.xmission.com "help"
  353. Administrator:  twegner@phoenix.net
  354. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  355.  
  356.  
  357. -------------------------------------------------------------------------------
  358.  
  359. From: "Tim Wegner" <twegner@phoenix.net>
  360. Subject: (fractdev) Patch 71
  361. Date: 03 May 1999 17:56:18 -0600
  362.  
  363. We're up to patch 71 with the fractint source.
  364.  
  365. I have incorporated all the patches to my no-integer-math version. I 
  366. also tried dropping the DOS no-integer source into Xfractint, and it 
  367. works fine. I'll package this up and upload in the next day or so.
  368.  
  369. I have looked at the changes proposed by Rich. The changes that 
  370. affect the X source are fine, but most of the changes that affect the 
  371. shared source are not right. This is not a big deal - I just need to 
  372. work this out with Rich.
  373.  
  374. I haven't looked at Rich's new changes yet, but will do so ASAP.
  375.  
  376. Tim
  377.  
  378.  
  379. Thanks for using Fractdev, The Fractint Developer's Discussion List
  380. Post Message:   fractdev@lists.xmission.com
  381. Get Commands:   majordomo@lists.xmission.com "help"
  382. Administrator:  twegner@phoenix.net
  383. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  384.  
  385.  
  386. -------------------------------------------------------------------------------
  387.  
  388. From: Phil McRevis <legalize@xmission.com>
  389. Subject: Re: (fractdev) Patch 71 
  390. Date: 03 May 1999 17:02:09 -0600
  391.  
  392.  
  393. In article <199905032256.RAA15712@voyager.c-com.net>,
  394.     "Tim Wegner" <twegner@phoenix.net>  writes:
  395.  
  396. > I haven't looked at Rich's new changes yet, but will do so ASAP.
  397.  
  398. That's because I haven't sent you any real changes yet. :-).  I tried
  399. to include a summary of changes from CVS, but it went over the message
  400. lenght limit.
  401. --
  402. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  403.     ``Ain't it funny that they all fire the pistol,     
  404.       at the wrong end of the race?''--PDBT     
  405. legalize@xmission.com    <http://www.eden.com/~thewho>
  406.  
  407. Thanks for using Fractdev, The Fractint Developer's Discussion List
  408. Post Message:   fractdev@lists.xmission.com
  409. Get Commands:   majordomo@lists.xmission.com "help"
  410. Administrator:  twegner@phoenix.net
  411. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  412.  
  413.  
  414. -------------------------------------------------------------------------------
  415.  
  416. From: Phil McRevis <legalize@xmission.com>
  417. Subject: (fractdev) gamma correction
  418. Date: 04 May 1999 11:59:43 -0600
  419.  
  420. Is anyone working on making fractint smarter in its dealings with
  421. gamma correction, or should I add that to the projects.txt file I was
  422. maintaining?  Speaking of that file.... Tim, I thought the idea was to
  423. include it in the fractint sources to help developers coordinate?  The
  424. source that I've downloaded from your FTP area didn't contain the
  425. file.
  426. --
  427. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  428.     ``Ain't it funny that they all fire the pistol, 
  429.       at the wrong end of the race?''--PDBT
  430.           <http://www.eden.com/~thewho>
  431.  
  432. Thanks for using Fractdev, The Fractint Developer's Discussion List
  433. Post Message:   fractdev@lists.xmission.com
  434. Get Commands:   majordomo@lists.xmission.com "help"
  435. Administrator:  twegner@phoenix.net
  436. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  437.  
  438.  
  439. -------------------------------------------------------------------------------
  440.  
  441. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  442. Subject: Re: (fractdev) gamma correction
  443. Date: 04 May 1999 22:12:09 -0300 (EST)
  444.  
  445. On Tue, 4 May 1999, Phil McRevis wrote:
  446.  
  447. > Is anyone working on making fractint smarter in its dealings with
  448. > gamma correction, or should I add that to the projects.txt file I was
  449. > maintaining?  Speaking of that file.... Tim, I thought the idea was to
  450. > include it in the fractint sources to help developers coordinate?  The
  451. > source that I've downloaded from your FTP area didn't contain the
  452. > file.
  453.  
  454.     Yes. I have this in my todos.txt file too :-) Along with other color
  455. models for Fractint, but the main point here is your comment: what about a
  456. general todo list (with all sorts of tasks, with authors working or just waiting
  457. for someone to take them up) it would be a moderated an refined list not much
  458. like http://web.ukonline.co.uk/members/robin.b2/olig/fracwish.htm the "Official
  459. Wish List" bu can feedback one on another.
  460.  
  461.     If you all think this is a good idea I can set up something like this in
  462. one of my servers and someone would have to volunteer to trim and modetate all
  463. the tasks  (i volunteer for the first round ;-) This way we could all summ up
  464. our projects.txt todos.txt etc. in one place.
  465.  
  466.     []'s
  467.  
  468.     Humberto R. Baptista
  469.     humberto@insite.com.br
  470.  
  471. Insite - Solucoes Internet                         http://www.insite.com.br
  472.  
  473. -----BEGIN GEEK CODE BLOCK-----
  474. Version: 3.1
  475. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  476. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  477. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  478. y+++*
  479. ------END GEEK CODE BLOCK------
  480.  
  481.  
  482.  
  483. Thanks for using Fractdev, The Fractint Developer's Discussion List
  484. Post Message:   fractdev@lists.xmission.com
  485. Get Commands:   majordomo@lists.xmission.com "help"
  486. Administrator:  twegner@phoenix.net
  487. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  488.  
  489.  
  490. -------------------------------------------------------------------------------
  491.  
  492. From: Phil McRevis <legalize@xmission.com>
  493. Subject: Re: (fractdev) gamma correction 
  494. Date: 04 May 1999 19:22:43 -0600
  495.  
  496. ------- =_aaaaaaaaaa0
  497. Content-Type: text/plain; charset="us-ascii"
  498. Content-ID: <5349.925867298.1@xmission.xmission.com>
  499.  
  500. Humberto, I think you joined this list after I created such files last
  501. year.... I'm attaching the "todo" and "progress" files here.  You can
  502. get at them on the web in my "fractdev" area
  503. <http://www.xmission.com/~legalize/fractals/fractdev/>.  I admit the
  504. "progress" file is a tiny bit stale in that it doesn't include
  505. anything I've been doing with respect to these drivers.
  506.  
  507. -- Rich
  508.  
  509.  
  510. ------- =_aaaaaaaaaa0
  511. Content-Type: text/plain; name="progress.txt"; charset="us-ascii"
  512. Content-ID: <5349.925867298.3@xmission.xmission.com>
  513.  
  514. This file attempts to list the works "in progress" at the time of the
  515. current fractint release (19.6) and the people working on them.  It is
  516. hoped that this file will help developers coordinate their efforts and
  517. eliminate any duplicate effort.
  518.  
  519. This file last updated January 29th, 1998
  520.  
  521. Project(s)                              Developer & Status
  522. PNG support                             TW
  523. 24-bit support                          RBa, TW, others? (just starting)
  524. SIMPLGIF improvements                   TW (encoder done, decoder needed)
  525. GIF encoder fix                         TW (done)
  526. Relaxing 2K image sizelimit             TW (nearly done) 
  527. float-only version                      TW (mostly done)
  528. synchronous orbits                      TW (under way)
  529. Formula parser improvements:            
  530.   C optimizer                           GM (under way)
  531. xfractint visual selection              RT
  532. Parameter Evolver                       RBu, JO (mostly done)
  533. Memory use overhaul                     JO
  534. Pentium M-set assembly optimization     DJ (approx. 1/2 done)
  535.  
  536. Current Developers:
  537. -------------------
  538. RBa     Ron Barnett <rbarnett@telenet.net>
  539.         Win95/DOS (MS VC++ 1.52, MASM 6.0, MS VC++ 5.0)
  540. RBu     Robin Bussell <robin.bussell@lucent.com>
  541. DJ      Damien M. Jones <dmj@fractalus.com>
  542. GM      George Martin <76440.1143@compuserve.com>
  543.         Win3.1/DOS (Borland 3.1)
  544. JO      Jonathan Osuch <73277.1432@compuserve.com>
  545. RT      Rich Thomson <rich.thomson@xmission.com>
  546.         Win95/DOS (Borland C++ Builder 1.0, 3.0), Solaris (unix/gcc)
  547. TW      Tim Wegner <twegner@phoenix.net>
  548.         Win95/DOS (MSC 7.0, MASM 6.1, djgpp), linux (gcc)
  549.  
  550. ------- =_aaaaaaaaaa0
  551. Content-Type: text/plain; name="todo.txt"; charset="us-ascii"
  552. Content-ID: <5349.925867298.2@xmission.xmission.com>
  553.  
  554. This file contains a list of things that are on the "To Do" list of
  555. the fractint development team, practiced in the true Stone Soup
  556. tradition.  Any item on this list is up for grabs and you are
  557. encouraged to use this as a starting point for your fractint
  558. contributions!
  559.  
  560. This document is arranged by the functional area within fractint.  The
  561. functional areas are listed in alphabetical order with each idea
  562. that's been suggested for improving the various sections.
  563.  
  564. This file last updated May 4th, 1999
  565.  
  566. 3D Support
  567. ----------
  568. - Provide a way to plug-in a 3D driver by name; platform support
  569.   determines what drivers are available.  Fractint "native" 3D support
  570.   available on all platforms.
  571. - Add arcball for iteractive manipulation of 3D viewing parameters
  572.   (interactively manipulate viewed object by its bounding box)
  573.  
  574. Arbitrary Precision
  575. -------------------
  576. - Extend arbitrary precision arithmetic to other fractal types, most
  577.   notably formula types
  578. - Allow arbitrary precision values to be entered into text field boxes
  579.   and PAR files
  580.  
  581. Deep Color Support
  582. ------------------
  583. - 24-bit color modes
  584. - 32-bit color modes (RGB plus alpha)
  585. - PNG 24/32-bit output/input
  586. - Coloring pixels by formulas
  587. - Texture mapping (probably best integrated into formula coloring)
  588.  
  589. Formula Parser
  590. --------------
  591. - Add type information for expressions and variables
  592. - Add remainder (modulus) operator/function
  593. - Make C versions of corresponding assembly functions more efficient
  594.   (reduce function call overhead, apply optimizations)
  595. - Provide a way to perform user-defined computations once per-image
  596. - Provide a way to define and call named user functions like regular
  597.   functions
  598.  
  599. Fractal Types
  600. -------------
  601. - Add 2D cellular automata
  602. - Add continuously valued automata, a la CAPOW
  603. - Various 3D fractal types that could be added
  604. - Volume rendered fractal types (3D projection of quaternion julia set)
  605.  
  606. Fractal Types: Cellular
  607. -------------
  608. - Extend 1D cellular automata types beyond existing totalistic automata
  609.  
  610. Help Files
  611. ----------
  612. - Add formula tutorial
  613. - Add formula coloring methods tutorial
  614. - Add color editor tutorial
  615. - Add support to the help compiler for generating postscript / PDF /
  616.   HTML output.
  617. - Add support for inlined images in help browser (initially present
  618.   only in PS/PDF/HTML versions)
  619.  
  620. Image Computation
  621. -----------------
  622. - Provide anti-aliasing support directly (requires deep color)
  623. - Synchronous Orbits Iteration
  624. - Gamma correction
  625.  
  626. Map Files
  627. ---------
  628. - Gamma correction
  629.  
  630. Image I/O
  631. ---------
  632. - Provide PNG support for both 8-bit and deeper video modes; handle
  633.   gamma correction properly on output
  634.  
  635. Platform Support
  636. ----------------
  637. - Create "fractint GUI API" that abstracts out fractint's ideas of
  638.   dialogs, text boxes, number boxes, keyboard navigation of dialogs,
  639.   etc., so that ports to other windowing systems are more readily
  640.   accomplished from the same body of source code a la xfractint/fractint
  641.   as opposed to the completely native port of winfract (which lags);
  642.   this will abstract out the interface from the computation engine,
  643.   which enhances portablity (something fractint sorely lacks) to other
  644.   platforms and also makes it easy to reuse fractint's compute engine.
  645. - Support for generalizing the assembly code to other architectures
  646.   such as 68k, MIPS, etc., by segregating assembly code into
  647.   architecture specific directories and integrating xfractint C
  648.   emulation of assembly routines for all other architectures.
  649. - Support "video modes" by name/number/capability rather than by
  650.   function key assignment.  Since video modes vary by platform, and
  651.   even on the same platform they can vary from user to user, a way of
  652.   specifying the video mode in terms of its capability is needed.
  653.   Something like video=x-res/y-res/depth, i.e. video=640/480/8.  In a
  654.   windowed environment, the video "mode" is used to guide window size,
  655.   palette emulation, etc.
  656.  
  657. Platform Support: DOS
  658. ---------------------
  659. - Eliminate overlays / move to 32-bit flat address space DOS protected
  660.   mode app (gives up 286 support)
  661. - Option for displaying dialogs and text screens in graphics video
  662.   mode with image save/restore; eliminates switching back and forth
  663.   from text mode to graphics mode, saving wear and tear on monitors
  664. - port code to DOS version of "fractint GUI API"
  665. - Improve performance of native DOS 3D driver
  666. - Compute an image larger than the screen resolution and allow panning
  667.   through the larger image by the screen.
  668.  
  669. Platform Support: Win95/NT
  670. --------------------------
  671. - Win32 port
  672. - long filename problems?
  673. - DirectX support?
  674. - 3D drivers: Direct3D / OpenGL
  675. - animation support? (AVI, MPEG, etc.)
  676.  
  677. Platform Support: unix/X
  678. ------------------------
  679. - Visual selection assumed root is 8-bit psuedocolor; improve to
  680.   select appropriate visual for requested video mode (could be 24-bit
  681.   with deep color support)
  682. - Eliminate use of curses and xterm in favor of native X-based text
  683.   windows
  684. - Fix function key support (probably a free side-effect of previous item)
  685. - Use Xt for interface components of "fractint GUI API"
  686. - 3D drivers: OpenGL, PEX, native X
  687. - Generate /bin/sh scripts instead of MS-DOS bat files for "b" command
  688. - long filename problems?
  689.  
  690. Platform Support: Mac/Amiga/BeOS/NeXT/other
  691. - Someone needs to do the port! :)
  692.  
  693. Zoom Box
  694. --------
  695. - Use XaoS like techniques to speedup the zoom box and/or initialize
  696.   the screen from the zoomed section.
  697.  
  698. ------- =_aaaaaaaaaa0--
  699.  
  700. Thanks for using Fractdev, The Fractint Developer's Discussion List
  701. Post Message:   fractdev@lists.xmission.com
  702. Get Commands:   majordomo@lists.xmission.com "help"
  703. Administrator:  twegner@phoenix.net
  704. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  705.  
  706.  
  707. -------------------------------------------------------------------------------
  708.  
  709. From: "Tim Wegner" <twegner@phoenix.net>
  710. Subject: (fractdev) Unix timer
  711. Date: 04 May 1999 22:55:58 -0600
  712.  
  713. I'm improving the timer sleepms(). It looks like the same primitive 
  714. timer is used by both Xfract and the DOS version.
  715.  
  716. Is the best way to get a portable microsecond timer under UNIX 
  717. gettimeofday()? I don't actually need microseconds, 100's of 
  718. microseconds (tenths of millisecs) is good enough.
  719.  
  720. I haven't had time yet to respond to all Rich's mail and upload 
  721. patch 71 source, but I probably will on Thursday night.
  722.  
  723. Tim
  724.  
  725.  
  726. Thanks for using Fractdev, The Fractint Developer's Discussion List
  727. Post Message:   fractdev@lists.xmission.com
  728. Get Commands:   majordomo@lists.xmission.com "help"
  729. Administrator:  twegner@phoenix.net
  730. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  731.  
  732.  
  733. -------------------------------------------------------------------------------
  734.  
  735. From: Phil McRevis <legalize@xmission.com>
  736. Subject: Re: (fractdev) Unix timer 
  737. Date: 04 May 1999 22:53:13 -0600
  738.  
  739.  
  740. How about getitimer?  I'm not sure how portable it is.  This is one of
  741. those things where the standard library was extended after bell labs
  742. unix, so vendors went in different directions.  Try to see if posix
  743. has anything on usec timers.
  744. --
  745. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  746.     ``Ain't it funny that they all fire the pistol,     
  747.       at the wrong end of the race?''--PDBT     
  748. legalize@xmission.com    <http://www.eden.com/~thewho>
  749.  
  750. Thanks for using Fractdev, The Fractint Developer's Discussion List
  751. Post Message:   fractdev@lists.xmission.com
  752. Get Commands:   majordomo@lists.xmission.com "help"
  753. Administrator:  twegner@phoenix.net
  754. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  755.  
  756.  
  757. -------------------------------------------------------------------------------
  758.  
  759. From: kragen@pobox.com (Kragen Sitaker)
  760. Subject: Re: (fractdev) Unix timer
  761. Date: 05 May 1999 09:35:52 -0400 (EDT)
  762.  
  763. Tim Wegner writes:
  764. > Is the best way to get a portable microsecond timer under UNIX
  765. > gettimeofday()? I don't actually need microseconds, 100's of
  766. > microseconds (tenths of millisecs) is good enough.
  767.  
  768. Is this to report computation time on the <Tab> information screen?
  769. times() might be more like what you want, since it doesn't report time
  770. spent running other processes, but I haven't yet figured out how to
  771. portably figure out what units it reports time in.  (On Linux, it's
  772. HZ.)
  773.  
  774. gettimeofday() is available at least on Linux, Solaris, and *BSD.  I'm
  775. fairly sure some of the old System Vs don't have it, but they are
  776. mostly dead languages now; the main remaining holdout would be SCO,
  777. which until recently (maybe even still?) was based on SVR3.  It might
  778. even be the case that more recent SysVs don't have it, like IRIX; I
  779. haven't used one of them since 1995, though, so I don't know.
  780.  
  781. -- 
  782. <kragen@pobox.com>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
  783. TurboLinux is outselling NT in Japan's retail software market 10 to 1,
  784. so I hear. 
  785. -- http://www.performancecomputing.com/opinions/unixriot/981218.shtml
  786.  
  787.  
  788. Thanks for using Fractdev, The Fractint Developer's Discussion List
  789. Post Message:   fractdev@lists.xmission.com
  790. Get Commands:   majordomo@lists.xmission.com "help"
  791. Administrator:  twegner@phoenix.net
  792. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  793.  
  794.  
  795. -------------------------------------------------------------------------------
  796.  
  797. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  798. Subject: Re: (fractdev) gamma correction 
  799. Date: 05 May 1999 17:41:36 -0300 (EST)
  800.  
  801. On Tue, 4 May 1999, Phil McRevis wrote:
  802.  
  803. > Humberto, I think you joined this list after I created such files last
  804. > year.... I'm attaching the "todo" and "progress" files here.  You can
  805. > get at them on the web in my "fractdev" area
  806. > <http://www.xmission.com/~legalize/fractals/fractdev/>.  I admit the
  807. > "progress" file is a tiny bit stale in that it doesn't include
  808. > anything I've been doing with respect to these drivers.
  809.  
  810.     Hm. Almost like what I've proposed, but done by hand :-)
  811.  
  812.     BTW, there isa crucial thing missing :-) a form so send you new items on
  813. the list (proposed and on work). The currente projects list is very outdated
  814. (more than one year). 
  815.  
  816.     []'s
  817.  
  818.     Humberto R. Baptista
  819.     humberto@insite.com.br
  820.  
  821. Insite - Solucoes Internet                         http://www.insite.com.br
  822.  
  823. -----BEGIN GEEK CODE BLOCK-----
  824. Version: 3.1
  825. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  826. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  827. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  828. y+++*
  829. ------END GEEK CODE BLOCK------
  830.  
  831.  
  832.  
  833. Thanks for using Fractdev, The Fractint Developer's Discussion List
  834. Post Message:   fractdev@lists.xmission.com
  835. Get Commands:   majordomo@lists.xmission.com "help"
  836. Administrator:  twegner@phoenix.net
  837. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  838.  
  839.  
  840. -------------------------------------------------------------------------------
  841.  
  842. From: Phil McRevis <legalize@xmission.com>
  843. Subject: Re: (fractdev) gamma correction 
  844. Date: 05 May 1999 17:28:41 -0600
  845.  
  846.  
  847. In article <Pine.LNX.4.02.9905051739500.30458-100000@tatui.insite.com.br>,
  848.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  849.  
  850. > BTW, there isa crucial thing missing :-) a form so send you new items on
  851. > the list (proposed and on work). The currente projects list is very outdated
  852. > (more than one year). 
  853.  
  854. Feel free to send any updates to this list.  I've sent the projects
  855. file to this list several times and only received minor corrections,
  856. so I figured that people were still working on what they said they
  857. were working on before :-).
  858.  
  859. That web page isn't for general consumption, its just an area I put up
  860. for sharing things relevant to this list.
  861. --
  862. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  863.     ``Ain't it funny that they all fire the pistol,     
  864.       at the wrong end of the race?''--PDBT     
  865. legalize@xmission.com    <http://www.eden.com/~thewho>
  866.  
  867. Thanks for using Fractdev, The Fractint Developer's Discussion List
  868. Post Message:   fractdev@lists.xmission.com
  869. Get Commands:   majordomo@lists.xmission.com "help"
  870. Administrator:  twegner@phoenix.net
  871. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  872.  
  873.  
  874. -------------------------------------------------------------------------------
  875.  
  876. From: "Tim Wegner" <twegner@phoenix.net>
  877. Subject: Re: (fractdev) Unix timer
  878. Date: 05 May 1999 22:50:44 -0600
  879.  
  880. Kragen asked:
  881.  
  882. > Is this to report computation time on the <Tab> information screen?
  883.  
  884. No, the current way of recording elapsed time works find, and 
  885. certainly doesn't need mictrosecond precision.
  886.  
  887. The sleepms() function inserts delays between orbits, mostly for 
  888. sound purposes. The trouble with this is that even if the delay is 
  889. device independent, the orbit execution ir roughly proportional to 
  890. CPU speed, so the over all result is an effect that runs faster on 
  891. faster machines.
  892.  
  893. On the PC I have found source for a microsecond timer. I have 
  894. used it to write a wait_until() function. The idea is that at each call, 
  895. a future time is recorded. On the next call, if the time hasn't been 
  896. reached, the function waits. As long as the wait time is greater 
  897. than the execution time, the result is reasonably device 
  898. independent.
  899.  
  900. The gettimeofday function returns two values, one with seconds, 
  901. the other with microseconds. I have tested it, and it works fine. So 
  902. if it is reasonably portable, this will take care of the Unix/Linux end.
  903.  
  904. Bill Jemison and some of the other artists have created some 
  905. terrific music with Fractint. Robin Bussell has written a driver for a 
  906. SOund Blaster (I don't know the details, I haven't followed too 
  907. closely.) Eventually we'll need to port the driver to Linux. I know 
  908. there is a lot of Linux sound code available.
  909.  
  910. Tim
  911.  
  912.  
  913.  
  914. Thanks for using Fractdev, The Fractint Developer's Discussion List
  915. Post Message:   fractdev@lists.xmission.com
  916. Get Commands:   majordomo@lists.xmission.com "help"
  917. Administrator:  twegner@phoenix.net
  918. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  919.  
  920.  
  921. -------------------------------------------------------------------------------
  922.  
  923. From: Phil McRevis <legalize@xmission.com>
  924. Subject: Re: (fractdev) Unix timer 
  925. Date: 06 May 1999 12:00:18 -0600
  926.  
  927.  
  928. In article <199905060350.WAA04630@voyager.c-com.net>,
  929.     "Tim Wegner" <twegner@phoenix.net>  writes:
  930.  
  931. > Bill Jemison and some of the other artists have created some 
  932. > terrific music with Fractint. Robin Bussell has written a driver for a 
  933. > SOund Blaster (I don't know the details, I haven't followed too 
  934. > closely.) Eventually we'll need to port the driver to Linux. I know 
  935. > there is a lot of Linux sound code available.
  936.  
  937. Has anyone thought about sound under X/linux?  I don't know what linux
  938. supports; X has minimal sound features intended only to reproduce the
  939. fidelity of your typical PC keyboard speaker.
  940. --
  941. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  942.     ``Ain't it funny that they all fire the pistol,     
  943.       at the wrong end of the race?''--PDBT     
  944. legalize@xmission.com    <http://www.eden.com/~thewho>
  945.  
  946. Thanks for using Fractdev, The Fractint Developer's Discussion List
  947. Post Message:   fractdev@lists.xmission.com
  948. Get Commands:   majordomo@lists.xmission.com "help"
  949. Administrator:  twegner@phoenix.net
  950. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  951.  
  952.  
  953. -------------------------------------------------------------------------------
  954.  
  955. From: comdotatdotcom@csi.com
  956. Subject: RE: Re: (fractdev) Unix timer 
  957. Date: 06 May 1999 23:41 0000
  958.  
  959. Hi Rich,
  960. Welcome to the soup kitchen :-)
  961. I see you've been dropping in some good ingredients, nice one!
  962.  
  963. >Has anyone thought about sound under X/linux?
  964.  
  965. Well the drivers I've put in write directly to the OPL3 chip so the O/S
  966. might not matter if the hardware's there. I'm not sure about the matter of
  967. cpu  mode though, maybe the code won't have access to the I/O bus,
  968. anyone know better?
  969.  
  970. It's all set up with wrapper functions anyway so adding on appropriate
  971. ifdefs or whatever shoukd present no problems.
  972.  
  973. Cheers,
  974.          Robin.
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981. Thanks for using Fractdev, The Fractint Developer's Discussion List
  982. Post Message:   fractdev@lists.xmission.com
  983. Get Commands:   majordomo@lists.xmission.com "help"
  984. Administrator:  twegner@phoenix.net
  985. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  986.  
  987.  
  988. -------------------------------------------------------------------------------
  989.  
  990. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  991. Subject: Re: (fractdev) gamma correction 
  992. Date: 06 May 1999 23:30:22 -0300 (EST)
  993.  
  994. On Wed, 5 May 1999, Phil McRevis wrote:
  995.  
  996. > Feel free to send any updates to this list.  I've sent the projects
  997.  
  998.     Not only me: list anyone? What are we working on now?
  999.  
  1000. > so I figured that people were still working on what they said they
  1001. > were working on before :-).
  1002.  
  1003.     One or another new stuff came in. ;-)
  1004.  
  1005.     OK: I (HB) have generalized the Pickover Popcorn Julia and implemented a
  1006. new drawing methos (diffusion). and some more stuff I'll work as time permits,
  1007. but should be listed in the "future work" list if anyone wants to get them first
  1008. :-)
  1009.  
  1010. - Generalize the functions (user-defined) defaults and incorporate this in the
  1011. formula parser and related areas.
  1012.  
  1013. - Extend the parser support to deal w/ orbits (orbit-like fractals)
  1014.  
  1015. - Retouch epsilon cross method to support more colloring schemes
  1016.  
  1017. - Space mappings (maybe using the parser also) like generalizations to inversion
  1018. but allowing any distortion/mapping to be applied.
  1019.  
  1020. - Support to plot grids, axes, scales, color scales, legends etc. to illustrate
  1021. the images onscreen
  1022.  
  1023. - Support fot HSB/HLS color models.
  1024.  
  1025. - Network distribution of work.
  1026.  
  1027. - dL-systems (need more research first)
  1028.  
  1029. - HIFS (Hierachical IFS) seems easy.
  1030.  
  1031.     Other stuff that I'm intending to steal, aham, get inspiration from
  1032. other programs, like XaoS and Ultra Fractal (the first being very interesting
  1033. since it is free and the second is commecial but presents all algorithms to
  1034. almost everything in configuration files, seem very flexible).
  1035.  
  1036.     Of cours i'll not be able to cope with this list so soon, and the order
  1037. is not the one I wish to follow, but all these points seem worth some work form
  1038. me. :-))
  1039.  
  1040.     []'s
  1041.  
  1042.     Humberto R. Baptista
  1043.     humberto@insite.com.br
  1044.  
  1045. Insite - Solucoes Internet                         http://www.insite.com.br
  1046.  
  1047. -----BEGIN GEEK CODE BLOCK-----
  1048. Version: 3.1
  1049. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  1050. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  1051. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  1052. y+++*
  1053. ------END GEEK CODE BLOCK------
  1054.  
  1055.  
  1056.  
  1057. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1058. Post Message:   fractdev@lists.xmission.com
  1059. Get Commands:   majordomo@lists.xmission.com "help"
  1060. Administrator:  twegner@phoenix.net
  1061. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1062.  
  1063.  
  1064. -------------------------------------------------------------------------------
  1065.  
  1066. From: "Tim Wegner" <twegner@phoenix.net>
  1067. Subject: (fractdev) Patches 65 through 73
  1068. Date: 09 May 1999 23:19:28 -0600
  1069.  
  1070. I have uploaded the latest patches to
  1071.  
  1072. ftp.phoenix.net/pub/USERS/twegner/patches_65_through_73.zip
  1073.  
  1074. This file has both DOS and UNIX diffs. The UNIX diffs end in X - e.g. 
  1075. 1961p73x.dif
  1076.  
  1077. The probably have CR/LF in them, so I suggest unzipping with the 
  1078. freeware unzip using the -a option.
  1079.  
  1080. Now I need to wade through Rich's changes ...
  1081.  
  1082. Tim
  1083.  
  1084.  
  1085.  
  1086. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1087. Post Message:   fractdev@lists.xmission.com
  1088. Get Commands:   majordomo@lists.xmission.com "help"
  1089. Administrator:  twegner@phoenix.net
  1090. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1091.  
  1092.  
  1093. -------------------------------------------------------------------------------
  1094.  
  1095. From: Phil McRevis <legalize@xmission.com>
  1096. Subject: Re: (fractdev) Patches 65 through 73 
  1097. Date: 10 May 1999 17:08:51 -0600
  1098.  
  1099. Tim, how important is it that I try to sync up my device-driver fork
  1100. with this patch?
  1101.  
  1102. I'm touching almost every file in the distribution...
  1103. --
  1104. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1105.     ``Ain't it funny that they all fire the pistol,     
  1106.       at the wrong end of the race?''--PDBT     
  1107. legalize@xmission.com    <http://www.eden.com/~thewho>
  1108.  
  1109. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1110. Post Message:   fractdev@lists.xmission.com
  1111. Get Commands:   majordomo@lists.xmission.com "help"
  1112. Administrator:  twegner@phoenix.net
  1113. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1114.  
  1115.  
  1116. -------------------------------------------------------------------------------
  1117.  
  1118. From: Phil McRevis <legalize@xmission.com>
  1119. Subject: (fractdev) "todo" and "progress" files updated
  1120. Date: 10 May 1999 17:18:04 -0600
  1121.  
  1122. I've incorporated Humberto's suggestions from his last email and added
  1123. him to the list of current fractint developers.  The updated files can
  1124. be fetched from <http://www.xmission.com/~legalize/fractals/fractdev/>
  1125. --
  1126. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1127.     ``Ain't it funny that they all fire the pistol, 
  1128.       at the wrong end of the race?''--PDBT
  1129.           <http://www.eden.com/~thewho>
  1130.  
  1131. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1132. Post Message:   fractdev@lists.xmission.com
  1133. Get Commands:   majordomo@lists.xmission.com "help"
  1134. Administrator:  twegner@phoenix.net
  1135. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1136.  
  1137.  
  1138. -------------------------------------------------------------------------------
  1139.  
  1140. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  1141. Subject: Re: (fractdev) "todo" and "progress" files updated
  1142. Date: 12 May 1999 10:21:12 -0300 (EST)
  1143.  
  1144. On Mon, 10 May 1999, Phil McRevis wrote:
  1145.  
  1146. > I've incorporated Humberto's suggestions from his last email and added
  1147. > him to the list of current fractint developers.  The updated files can
  1148. > be fetched from <http://www.xmission.com/~legalize/fractals/fractdev/>
  1149.  
  1150.     Hi Rich
  1151.  
  1152.     Cool, just to help:
  1153. Generalized popcorn julia sets          HB (done)
  1154. Diffusion drawing method                HB (done)
  1155.                                            ^^^^^^=Status
  1156.  
  1157.     And other stuff: (i'm not shure this is big enoughtto get in the list,
  1158. but anyway):
  1159.  
  1160. Latoocarfians                           HB (done)
  1161. New Epsilon Cross coloring              HB (patch submited)
  1162.  
  1163.  
  1164.     I guess this was my idea on the "project to be done list":
  1165. - Retouch epsilon cross method to support more colloring schemes
  1166.     :-)
  1167.  
  1168.     OK, lets check the rest:  havent seen RB (Robin) on the list isn't he
  1169. working on the sound routines? 
  1170.     Is anybody else out?
  1171.  
  1172.     And you? Where is YOUR entry? I wnat to see the line "Flat model/32 bit
  1173. porting " on the list and a nice <done>  status following ;-))))))))))) An
  1174. <under way> wold by nice also :-)
  1175.  
  1176.     PS: have you got the time to try djgpp? or are you on gcc/linux. Have
  1177. you (all) seen thar egcs will become the new gcc? 
  1178.  
  1179.     Humberto R. Baptista
  1180.     humberto@insite.com.br
  1181.  
  1182. Insite - Solucoes Internet                         http://www.insite.com.br
  1183.  
  1184. -----BEGIN GEEK CODE BLOCK-----
  1185. Version: 3.1
  1186. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  1187. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  1188. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  1189. y+++*
  1190. ------END GEEK CODE BLOCK------
  1191.  
  1192.  
  1193.  
  1194. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1195. Post Message:   fractdev@lists.xmission.com
  1196. Get Commands:   majordomo@lists.xmission.com "help"
  1197. Administrator:  twegner@phoenix.net
  1198. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1199.  
  1200.  
  1201. -------------------------------------------------------------------------------
  1202.  
  1203. From: Phil McRevis <legalize@xmission.com>
  1204. Subject: Re: (fractdev) "todo" and "progress" files updated 
  1205. Date: 12 May 1999 11:55:16 -0600
  1206.  
  1207.  
  1208. In article <Pine.LNX.4.02.9905121008130.5370-100000@tatui.insite.com.br>,
  1209.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  1210.  
  1211. >     Cool, just to help:
  1212. > Generalized popcorn julia sets          HB (done)
  1213. > Diffusion drawing method                HB (done)
  1214. >                                            ^^^^^^=Status
  1215.  
  1216. OK, if they're done then we take them off the "progress" file, because
  1217. that's for stuff that's in progress :-)
  1218.  
  1219. I will also add my current project to the progress list (thanks for
  1220. the reminder).
  1221.  
  1222. >     PS: have you got the time to try djgpp? or are you on gcc/linux. Have
  1223. > you (all) seen thar egcs will become the new gcc? 
  1224.  
  1225. Currently I'm working on unix.  When I have the native X text working
  1226. on unix, then I'll bring the code over to my PC and compile with djgpp
  1227. and GNU curses to verify disk video is working on the PC.  Then I'll
  1228. begin removing all the MK_FP()'s and so-on that's associated with the
  1229. medium memory model tricks.
  1230. --
  1231. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1232.     ``Ain't it funny that they all fire the pistol,     
  1233.       at the wrong end of the race?''--PDBT     
  1234. legalize@xmission.com    <http://www.eden.com/~thewho>
  1235.  
  1236. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1237. Post Message:   fractdev@lists.xmission.com
  1238. Get Commands:   majordomo@lists.xmission.com "help"
  1239. Administrator:  twegner@phoenix.net
  1240. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1241.  
  1242.  
  1243. -------------------------------------------------------------------------------
  1244.  
  1245. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  1246. Subject: Re: (fractdev) "todo" and "progress" files updated 
  1247. Date: 12 May 1999 15:28:18 -0300 (EST)
  1248.  
  1249. On Wed, 12 May 1999, Phil McRevis wrote:
  1250.  
  1251. > OK, if they're done then we take them off the "progress" file, because
  1252. > that's for stuff that's in progress :-)
  1253.  
  1254.     For me its ok, I just assumed you're keeping things around until the
  1255. final release and then flushing the list.
  1256.  
  1257. > I will also add my current project to the progress list (thanks for
  1258. > the reminder).
  1259.  
  1260.     :-)))))
  1261.  
  1262.     []'s
  1263.  
  1264.     Humberto R. Baptista
  1265.     humberto@insite.com.br
  1266.  
  1267. Insite - Solucoes Internet                         http://www.insite.com.br
  1268.  
  1269. -----BEGIN GEEK CODE BLOCK-----
  1270. Version: 3.1
  1271. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  1272. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  1273. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  1274. y+++*
  1275. ------END GEEK CODE BLOCK------
  1276.  
  1277.  
  1278.  
  1279. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1280. Post Message:   fractdev@lists.xmission.com
  1281. Get Commands:   majordomo@lists.xmission.com "help"
  1282. Administrator:  twegner@phoenix.net
  1283. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1284.  
  1285.  
  1286. -------------------------------------------------------------------------------
  1287.  
  1288. From: Phil McRevis <legalize@xmission.com>
  1289. Subject: (fractdev) evolution of fractint source code as a package
  1290. Date: 13 May 1999 16:08:51 -0600
  1291.  
  1292. I'm curious how others feel about adopting the GNU conventions for
  1293. the fractint source.  Use of autoconf/automake, conventions for
  1294. Makefile targets, conventions for making source code distributions
  1295. from the makefile, etc.
  1296. --
  1297. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1298.     ``Ain't it funny that they all fire the pistol, 
  1299.       at the wrong end of the race?''--PDBT
  1300.           <http://www.eden.com/~thewho>
  1301.  
  1302. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1303. Post Message:   fractdev@lists.xmission.com
  1304. Get Commands:   majordomo@lists.xmission.com "help"
  1305. Administrator:  twegner@phoenix.net
  1306. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1307.  
  1308.  
  1309. -------------------------------------------------------------------------------
  1310.  
  1311. From: "Tim Wegner" <twegner@phoenix.net>
  1312. Subject: Re: (fractdev) Patches 65 through 73 
  1313. Date: 13 May 1999 17:29:25 -0600
  1314.  
  1315.  
  1316.  
  1317. > Tim, how important is it that I try to sync up my device-driver fork
  1318. > with this patch?
  1319.  
  1320. It's a pain now or later. Either method works <g!>
  1321.  
  1322. If it's a problem, we can get synched later. Then it is very important 
  1323. to keep the sources you started from.
  1324.  
  1325. If your changes are compatible with our DOS version, we could 
  1326. merge whenever your version is self-consistent.
  1327.  
  1328. Tim
  1329.  
  1330.  
  1331.  
  1332. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1333. Post Message:   fractdev@lists.xmission.com
  1334. Get Commands:   majordomo@lists.xmission.com "help"
  1335. Administrator:  twegner@phoenix.net
  1336. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1337.  
  1338.  
  1339. -------------------------------------------------------------------------------
  1340.  
  1341. From: "Tim Wegner" <twegner@phoenix.net>
  1342. Subject: Re: (fractdev) evolution of fractint source code as a package
  1343. Date: 13 May 1999 17:31:53 -0600
  1344.  
  1345.  
  1346. > I'm curious how others feel about adopting the GNU conventions for
  1347. > the fractint source.  Use of autoconf/automake, conventions for
  1348. > Makefile targets, conventions for making source code distributions
  1349. > from the makefile, etc.
  1350.  
  1351. I know little about what this entails, but for starters I have no 
  1352. objections.
  1353.  
  1354. Tim
  1355.  
  1356.  
  1357. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1358. Post Message:   fractdev@lists.xmission.com
  1359. Get Commands:   majordomo@lists.xmission.com "help"
  1360. Administrator:  twegner@phoenix.net
  1361. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1362.  
  1363.  
  1364. -------------------------------------------------------------------------------
  1365.  
  1366. From: Phil McRevis <legalize@xmission.com>
  1367. Subject: Re: (fractdev) Patches 65 through 73 
  1368. Date: 13 May 1999 16:37:56 -0600
  1369.  
  1370.  
  1371. In article <199905132229.RAA19368@voyager.c-com.net>,
  1372.     "Tim Wegner" <twegner@phoenix.net>  writes:
  1373.  
  1374. > It's a pain now or later. Either method works <g!>
  1375.  
  1376. OK, I'll work my device-driver/memory model changes on a branch of
  1377. patch level 66.  I will keep an updated trunk for xfractint with the
  1378. patch level.  Then I will be able to make a merged diff when we're
  1379. ready to reintegrate the branch.
  1380.  
  1381. > If your changes are compatible with our DOS version, we could 
  1382. > merge whenever your version is self-consistent.
  1383.  
  1384. The plan is that all versions will join in the end, and the DOS
  1385. version will be djgpp with DPMI.  There will be one source; but only
  1386. relevant drivers will be compiled on different systems.
  1387.  
  1388. I have replaced the #ifdef'ed code with code that calls into the
  1389. currently active driver.  Each driver provides an implementation of a
  1390. set of functions, which are called throughout the source.  The set of
  1391. drivers available is based on what you compiled.  So DOS versions
  1392. compile drivers that work in DOS, win32 versions compile the drivers
  1393. that work there (gdi, directx, OpenGL, etc.) and unix versions compile the
  1394. drivers that work there (i.e. X11, OpenGL, etc.).  Fractint's "text
  1395. screens" still exist in a graphics environment like X11 or win32, just
  1396. that the keystrokes cause window-system text to be drawn instead of
  1397. curses-based text.  This unifies the existing ports of fractint into
  1398. one source-code and execution model: windows, unix, and DOS.
  1399.  
  1400. Each driver is implemented in a file called d_<driver>.c, so my
  1401. existing code has d_disk.c, d_fract.c (routines that would call into
  1402. ported versions of fractint's 16-bit DOS video assembly code), and
  1403. d_x11.c.  Working from one of those as an example, it shouldn't be
  1404. hard to create a d_win.c and d_mac.c, bringing the mac and the windows
  1405. port also into the same code base.
  1406. --
  1407. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1408.     ``Ain't it funny that they all fire the pistol,     
  1409.       at the wrong end of the race?''--PDBT     
  1410. legalize@xmission.com    <http://www.eden.com/~thewho>
  1411.  
  1412. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1413. Post Message:   fractdev@lists.xmission.com
  1414. Get Commands:   majordomo@lists.xmission.com "help"
  1415. Administrator:  twegner@phoenix.net
  1416. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1417.  
  1418.  
  1419. -------------------------------------------------------------------------------
  1420.  
  1421. From: Phil McRevis <legalize@xmission.com>
  1422. Subject: Re: (fractdev) Patches 65 through 73 
  1423. Date: 13 May 1999 16:40:32 -0600
  1424.  
  1425.  
  1426. In article <199905100419.XAA14634@voyager.c-com.net>,
  1427.     "Tim Wegner" <twegner@phoenix.net>  writes:
  1428.  
  1429. > This file has both DOS and UNIX diffs. The UNIX diffs end in X - e.g. 
  1430. > 1961p73x.dif
  1431.  
  1432. There aren't unix versions of all the diffs, how are the unix diffs
  1433. supposed to be applied?
  1434.  
  1435. Archive:  ../patches_65_through_73.zip
  1436.  Length    Date    Time    Name
  1437.  ------    ----    ----    ----
  1438.   28943  02-09-99  19:01   1961P65.DIF
  1439.    4416  02-09-99  19:01   1961P65X.DIF
  1440.   14589  03-06-99  13:36   1961P66.DIF
  1441.   49292  03-22-99  22:59   1961P67.DIF        <= no unix patch 67
  1442.    7259  05-04-99  19:47   GENERAL.OBJ
  1443.   17429  04-05-99  19:47   1961P68.DIF
  1444.    2707  04-02-99  19:45   1961P68X.DIF
  1445.    4947  04-06-99  20:46   1961P69.DIF        <= no unix patch 69
  1446.   42684  04-26-99  21:05   1961P70.DIF
  1447.    2168  04-26-99  21:06   1961P70X.DIF
  1448.    3340  05-02-99  17:16   MUSICV20.PAR
  1449.   19730  04-30-99  20:15   1961P71.DIF        <= no unix patch 71
  1450.   46618  05-09-99  12:45   1961P72.DIF        <= no unix patch 72
  1451.   13784  05-09-99  17:16   1961P73.DIF
  1452.    1051  05-09-99  18:49   1961P73X.DIF
  1453.  ------                    -------
  1454.  258957                    15 files
  1455.  
  1456. --
  1457. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1458.     ``Ain't it funny that they all fire the pistol,     
  1459.       at the wrong end of the race?''--PDBT     
  1460. legalize@xmission.com    <http://www.eden.com/~thewho>
  1461.  
  1462. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1463. Post Message:   fractdev@lists.xmission.com
  1464. Get Commands:   majordomo@lists.xmission.com "help"
  1465. Administrator:  twegner@phoenix.net
  1466. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1467.  
  1468.  
  1469. -------------------------------------------------------------------------------
  1470.  
  1471. From: Phil McRevis <legalize@xmission.com>
  1472. Subject: Re: (fractdev) evolution of fractint source code as a package 
  1473. Date: 13 May 1999 16:44:49 -0600
  1474.  
  1475.  
  1476. In article <199905132231.RAA19940@voyager.c-com.net>,
  1477.     "Tim Wegner" <twegner@phoenix.net>  writes:
  1478.  
  1479. > I know little about what this entails, but for starters I have no 
  1480. > objections.
  1481.  
  1482. There several things that the GNU folks have as conventions:
  1483.  
  1484. 1) the GNU project has a coding standard (not that all the GPL'ed code
  1485. follows it, but it is recommended practice for the GNU project, not
  1486. necessarily all GPL'ed code).  The GNU project is specifically the
  1487. unix replacement project, not necessarily any code that is maintained
  1488. or provided by FSF.  I think they call it the "GNU Hurd" or something
  1489. like that now.
  1490.  
  1491. 2) makefile contentions.  This is stuff like standard targets for
  1492. "clean", "all", "dist" (makes a source code distribution), etc.  If
  1493. you use autoconf/automake, you get all this for free.
  1494.  
  1495. 3) other conventions.  Things like your source code should be stored
  1496. in an archive file named package-major.minor.patch, so xfractint would
  1497. be distributed as xfractint-19.61.73.tar.gz when you use automake's
  1498. default.
  1499.  
  1500. Since fractint's code base targets DOS, there are obviously some of
  1501. the GNU conventions you can't follow because they assume the
  1502. availability of long filenames.
  1503. --
  1504. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1505.     ``Ain't it funny that they all fire the pistol,     
  1506.       at the wrong end of the race?''--PDBT     
  1507. legalize@xmission.com    <http://www.eden.com/~thewho>
  1508.  
  1509. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1510. Post Message:   fractdev@lists.xmission.com
  1511. Get Commands:   majordomo@lists.xmission.com "help"
  1512. Administrator:  twegner@phoenix.net
  1513. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1514.  
  1515.  
  1516. -------------------------------------------------------------------------------
  1517.  
  1518. From: kragen@pobox.com (Kragen Sitaker)
  1519. Subject: Re: (fractdev) evolution of fractint source code as a package
  1520. Date: 13 May 1999 19:01:47 -0400 (EDT)
  1521.  
  1522. Rich writes:
  1523. > 1) the GNU project has a coding standard 
  1524.  
  1525. It should probably be discussed among the folks who will be writing
  1526. code whether the GNU coding standard is a good coding standard.
  1527. Presumably the idea that there should be *some* consistent standard
  1528. will not be too controversial, but it might be a good idea to find one
  1529. that will entail minimal changes to the currently-existing code.
  1530.  
  1531. > (not that all the GPL'ed code
  1532. > follows it, but it is recommended practice for the GNU project, not
  1533. > necessarily all GPL'ed code).  The GNU project is specifically the
  1534. > unix replacement project, not necessarily any code that is maintained
  1535. > or provided by FSF.  I think they call it the "GNU Hurd" or something
  1536. > like that now.
  1537.  
  1538. The Hurd is the kernel -- intended to replace the Linux kernel for
  1539. example.  GNU is the whole OS -- the compiler, the C library, X, and
  1540. the user programs.
  1541.  
  1542. Please don't become offended at this post.
  1543.  
  1544. -- 
  1545. <kragen@pobox.com>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
  1546. TurboLinux is outselling NT in Japan's retail software market 10 to 1,
  1547. so I hear. 
  1548. -- http://www.performancecomputing.com/opinions/unixriot/981218.shtml
  1549.  
  1550.  
  1551. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1552. Post Message:   fractdev@lists.xmission.com
  1553. Get Commands:   majordomo@lists.xmission.com "help"
  1554. Administrator:  twegner@phoenix.net
  1555. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1556.  
  1557.  
  1558. -------------------------------------------------------------------------------
  1559.  
  1560. From: Phil McRevis <legalize@xmission.com>
  1561. Subject: (fractdev) unix patch 70
  1562. Date: 13 May 1999 17:03:17 -0600
  1563.  
  1564. This patch replaces SignalHandler (which is a portability typedef in
  1565. unix.h) with __sighandler_t, which is an implementation dependent
  1566. signal.  This symbol isn't even defined on Solaris.  Why was this
  1567. change made?  In unix.h, SignalHandler is defined as:
  1568.  
  1569.     typedef void (*SignalHandler)(int);
  1570.  
  1571. If there is some problem with that prototype for a signal handler on a
  1572. unix system (i.e. signal handler returns int, not void), then an
  1573. #ifdef should be added in unix.h factoring out this problem, rather
  1574. than sprinkling __sighandler_t over unixscr.c.
  1575.  
  1576. This is an example of the kinds of differences between unix boxes that
  1577. configure can handle.  Unfortunately there isn't "one unix API"; which
  1578. is why configure probes the target system to determine what set of
  1579. options are provided.
  1580. --
  1581. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1582.     ``Ain't it funny that they all fire the pistol, 
  1583.       at the wrong end of the race?''--PDBT
  1584.           <http://www.eden.com/~thewho>
  1585.  
  1586. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1587. Post Message:   fractdev@lists.xmission.com
  1588. Get Commands:   majordomo@lists.xmission.com "help"
  1589. Administrator:  twegner@phoenix.net
  1590. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1591.  
  1592.  
  1593. -------------------------------------------------------------------------------
  1594.  
  1595. From: Phil McRevis <legalize@xmission.com>
  1596. Subject: Re: (fractdev) evolution of fractint source code as a package 
  1597. Date: 13 May 1999 17:04:39 -0600
  1598.  
  1599.  
  1600. In article <Pine.GSU.4.10.9905131857350.1639-100000@kirk.dnaco.net>,
  1601.     kragen@pobox.com (Kragen Sitaker)  writes:
  1602.  
  1603. > but it might be a good idea to find one
  1604. > that will entail minimal changes to the currently-existing code.
  1605.  
  1606. LOL.  The existing code has a haphazard collection of styles and
  1607. practices, none of which are consistent.
  1608. --
  1609. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1610.     ``Ain't it funny that they all fire the pistol,     
  1611.       at the wrong end of the race?''--PDBT     
  1612. legalize@xmission.com    <http://www.eden.com/~thewho>
  1613.  
  1614. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1615. Post Message:   fractdev@lists.xmission.com
  1616. Get Commands:   majordomo@lists.xmission.com "help"
  1617. Administrator:  twegner@phoenix.net
  1618. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1619.  
  1620.  
  1621. -------------------------------------------------------------------------------
  1622.  
  1623. From: Jonathan Osuch <73277.1432@compuserve.com>
  1624. Subject: Re: (fractdev) unix patch 70
  1625. Date: 13 May 1999 21:03:48 -0400
  1626.  
  1627. Rich wrote:
  1628.  
  1629. >> This patch replaces SignalHandler (which is a portability typedef in
  1630. unix.h) with __sighandler_t, which is an implementation dependent
  1631. signal.  This symbol isn't even defined on Solaris.  Why was this
  1632. change made? <<
  1633.  
  1634. Because SignalHandler works fine with what is provided with Slakware Linu=
  1635. x,
  1636. but is not provided with the version of Red Hat Linux (5.1) that I have. =
  1637.  
  1638. This obviously may change in the future.  I do intend to get Red Hat
  1639. version 6.0 in the next month.
  1640.  
  1641. >> This is an example of the kinds of differences between unix boxes that=
  1642.  
  1643. configure can handle. <<
  1644.  
  1645. Go for it.
  1646.  
  1647. >> There aren't unix versions of all the diffs, how are the unix diffs
  1648. supposed to be applied? <<
  1649.  
  1650. Both diffs need to be applied to Xfractint.  The diffs with the x contain=
  1651.  
  1652. changes that do not apply to the DOS version.
  1653.  
  1654. Jonathan
  1655.  
  1656. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1657. Post Message:   fractdev@lists.xmission.com
  1658. Get Commands:   majordomo@lists.xmission.com "help"
  1659. Administrator:  twegner@phoenix.net
  1660. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1661.  
  1662.  
  1663. -------------------------------------------------------------------------------
  1664.  
  1665. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  1666. Subject: (fractdev) Drivers API :-)
  1667. Date: 14 May 1999 14:15:47 -0300 (EST)
  1668.  
  1669.  
  1670.     Hi Rich:
  1671.  
  1672.     I've checked your driver API :-) and it looked very nice, resembles from
  1673. a distance the XaoS one but I guess it's a bit cleaner.
  1674.  
  1675.     Let me add what I feel about the API (i'll comment the routine bellow my
  1676. coments for those who have not read the driver.h you sent):
  1677.  
  1678.     - Hm besides driver_name there should be a driverversion variable or are
  1679. you planning to put thisn in the name string?
  1680.  
  1681.     - the window, resize and redraw routines recieve no parameters, so I
  1682. suppose the set_video_mode function sets the size and attributes of the windows,
  1683. but this can be a little messy on multiwindows environments. How are you seeing
  1684. this?
  1685.  
  1686.     - the read_picel shoudn't return an int, what about a user defined type?
  1687. Like pixel (could go from RGB+al, RGB to Byte etc.)
  1688.  
  1689.     - the same applies to the put_pixel function (the color argument
  1690. shoudn't be int);
  1691.     
  1692.     - besides read and write_span (functions that write a row of pixels)
  1693. there should be something like write_block and read_blovk to deal with
  1694. rectangular areas. And maybe we could come up with something to allow the use of
  1695. hw optimizations avaliable on the hw beneath.
  1696.  
  1697.     - set_line_mode: why "line" mode? Shoudn't it be "draw" mode?
  1698.     (this routine sets whether to copy or t xor the line w/ the bckgrnd)
  1699.  
  1700.     - set_video_mode recieves four parameters: ax,bx,cx,dx what do they do? 
  1701.  
  1702.     - the same obs regarding color on the put_string  routine.
  1703.  
  1704.     - what the find_font routine does?
  1705.  
  1706.     I have not seen the mouse routines in the API!
  1707.  
  1708.     The sound routines do not seem to help in the case of the new
  1709. developments in the sound area (i'm not sure which routines should be added).
  1710.  
  1711.     Uf. Its a lot of things, but I rather make this in the beguinning of the
  1712. process that later on :-)
  1713.  
  1714.     []'s
  1715.  
  1716.     Humberto R. Baptista
  1717.     humberto@insite.com.br
  1718.  
  1719. Insite - Solucoes Internet                         http://www.insite.com.br
  1720.  
  1721. -----BEGIN GEEK CODE BLOCK-----
  1722. Version: 3.1
  1723. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  1724. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  1725. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  1726. y+++*
  1727. ------END GEEK CODE BLOCK------
  1728.  
  1729.  
  1730.  
  1731. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1732. Post Message:   fractdev@lists.xmission.com
  1733. Get Commands:   majordomo@lists.xmission.com "help"
  1734. Administrator:  twegner@phoenix.net
  1735. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1736.  
  1737.  
  1738. -------------------------------------------------------------------------------
  1739.  
  1740. From: Phil McRevis <legalize@xmission.com>
  1741. Subject: Re: (fractdev) unix patch 70 
  1742. Date: 14 May 1999 11:35:13 -0600
  1743.  
  1744.  
  1745. In article <199905132103_MC2-75A8-2EA9@compuserve.com>,
  1746.     Jonathan Osuch <73277.1432@compuserve.com>  writes:
  1747.  
  1748. > Because SignalHandler works fine with what is provided with Slakware Linux
  1749. > but is not provided with the version of Red Hat Linux (5.1) that I have.
  1750.  
  1751. Then put an #ifdef in unix.h to redefine the typedef for SignalHandler
  1752. instead of changing everything to a redhat specific type.
  1753. --
  1754. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1755.     ``Ain't it funny that they all fire the pistol,     
  1756.       at the wrong end of the race?''--PDBT     
  1757. legalize@xmission.com    <http://www.eden.com/~thewho>
  1758.  
  1759. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1760. Post Message:   fractdev@lists.xmission.com
  1761. Get Commands:   majordomo@lists.xmission.com "help"
  1762. Administrator:  twegner@phoenix.net
  1763. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1764.  
  1765.  
  1766. -------------------------------------------------------------------------------
  1767.  
  1768. From: Phil McRevis <legalize@xmission.com>
  1769. Subject: Re: (fractdev) Drivers API :-) 
  1770. Date: 14 May 1999 11:45:40 -0600
  1771.  
  1772.  
  1773. In article <Pine.LNX.4.02.9905141245200.12807-100000@tatui.insite.com.br>,
  1774.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  1775.  
  1776. >     I've checked your driver API :-) [...]
  1777.  
  1778. In all fairness, its not really a designed API.  Its just taking the
  1779. existing routines in fractint and forcing them through a level of
  1780. indirection.  The indirection is what supports the idea of multiple
  1781. drivers coexisting.
  1782.  
  1783. > - Hm besides driver_name there should be a driverversion variable or ar
  1784. e
  1785. > you planning to put thisn in the name string?
  1786.  
  1787. A driver can report its version, but since drivers don't change unless
  1788. a release of fractint changes, I don't see much point in that.  In
  1789. other words, fractint 21.0 will always have whatever drivers were
  1790. compiled with fractint 21.0, so there's no need for a driver version
  1791. number as I see it.  It could be added, but I'd rather not add extra
  1792. confusion to the equation about "driver versions" when in fact all
  1793. that matters is the fractint version.
  1794.  
  1795. >     - the window, resize and redraw routines recieve no parameters, so I
  1796. > suppose the set_video_mode function sets the size and attributes of the windo
  1797. ws,
  1798. > but this can be a little messy on multiwindows environments. How are you seei
  1799. ng
  1800. > this?
  1801.  
  1802. As I said, its not a designed API, its just taking the existing
  1803. fractint code and adding a level of indirection.  Fractint just has a
  1804. zillion global variables and many of the functions communicate
  1805. information through these global variables.  I am eliminating any
  1806. variables that are internal to drivers and encapsulating them inside a
  1807. state structure that is created and maintained by the driver.
  1808.  
  1809. Eventually most if not all of fractint's globals will have to go a
  1810. similar route if we want multithreading, reentrancy and distributed
  1811. processing of the SMP variety.
  1812.  
  1813. >     - the read_picel shoudn't return an int, what about a user defined type
  1814.  
  1815. Read pixel returns an int because to fractint an int is a pixel since
  1816. a pixel is only considered an index into a LUT.  Again, this API is
  1817. not designed, its just an evolution of fractint's existing code, so
  1818. fractint's assumptions (i.e. the world is a LUT-based frame buffer) go
  1819. along with it.
  1820.  
  1821. > [read_span, write_span, set_line_mode, set_video_mode, etc.]
  1822.  
  1823. All your questions are answered by looking at the existing fractint
  1824. source.  I'm *not* trying to rewrite fracint from scratch!  The job of
  1825. inserting the driver indirection is big enough!  Trying to change too
  1826. much at once just gets you into a quicksand of changes.
  1827.  
  1828. Regarding the sound routines, its difficult to say what's needed
  1829. exactly because the xfractint version of the code didn't have the
  1830. necessary routines until the latest round of patches.
  1831.  
  1832. Whereas X11 does provide device-independent graphics, it doesn't
  1833. provide device-independent sound beyond a few little functions to make
  1834. the keyboard beep at different hertz.  Sound has to be programmed
  1835. differently on the SGI, on the Sun, on Linux, etc.  Under DirectX, you
  1836. have a higher-level interface to sound on the PCs, but otherwise
  1837. you're stuck with win32's idea of sound, which isn't all that great, I
  1838. gather.
  1839. --
  1840. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1841.     ``Ain't it funny that they all fire the pistol,     
  1842.       at the wrong end of the race?''--PDBT     
  1843. legalize@xmission.com    <http://www.eden.com/~thewho>
  1844.  
  1845. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1846. Post Message:   fractdev@lists.xmission.com
  1847. Get Commands:   majordomo@lists.xmission.com "help"
  1848. Administrator:  twegner@phoenix.net
  1849. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1850.  
  1851.  
  1852. -------------------------------------------------------------------------------
  1853.  
  1854. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  1855. Subject: Re: (fractdev) Drivers API :-) 
  1856. Date: 14 May 1999 15:00:53 -0300 (EST)
  1857.  
  1858. On Fri, 14 May 1999, Phil McRevis wrote:
  1859.  
  1860. > In all fairness, its not really a designed API.  Its just taking the
  1861. [... explanations about taking the existing routines ...]
  1862.  
  1863.     OK, I get it, this was just a suggestion to things to add (eve if non
  1864. functional right now). But there is one point that I stll have no seen in this:
  1865. the mouse.
  1866.  
  1867.     []'s
  1868.  
  1869.     Humberto R. Baptista
  1870.     humberto@insite.com.br
  1871.  
  1872. Insite - Solucoes Internet                         http://www.insite.com.br
  1873.  
  1874. -----BEGIN GEEK CODE BLOCK-----
  1875. Version: 3.1
  1876. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  1877. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  1878. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  1879. y+++*
  1880. ------END GEEK CODE BLOCK------
  1881.  
  1882.  
  1883.  
  1884. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1885. Post Message:   fractdev@lists.xmission.com
  1886. Get Commands:   majordomo@lists.xmission.com "help"
  1887. Administrator:  twegner@phoenix.net
  1888. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1889.  
  1890.  
  1891. -------------------------------------------------------------------------------
  1892.  
  1893. From: Phil McRevis <legalize@xmission.com>
  1894. Subject: Re: (fractdev) Drivers API :-) 
  1895. Date: 14 May 1999 12:07:48 -0600
  1896.  
  1897.  
  1898. In article <Pine.LNX.4.02.9905141458090.25795-100000@tatui.insite.com.br>,
  1899.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  1900.  
  1901. >     OK, I get it, this was just a suggestion to things to add (eve if non
  1902. > functional right now). But there is one point that I stll have no seen in thi
  1903. s:
  1904. > the mouse.
  1905.  
  1906. Well it turns out it really is there, you just don't know it. :-)
  1907.  
  1908. Fractint's mouse support was added by diddling the keyboard routine!
  1909.  
  1910. Why was it done this way?  Because fractint has a polling input model.
  1911. All over the code places "check the keyboard" to see if there is any
  1912. input waiting.  So the place that checks for mouse code is squirreled
  1913. away inside the keyboard routine.  This is also how the X version
  1914. manages to read the event queue: its hidden inside the keyboard input
  1915. routine.
  1916.  
  1917. The next big thing I'd like to do to fractint regarding its overall
  1918. structure is to convert the polling I/O to event-oriented I/O, but
  1919. that's a benefit for programmers, not users.  I don't think it will be
  1920. that hard, but as I say, I'd rather not try to do too many things at
  1921. once.
  1922. --
  1923. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1924.     ``Ain't it funny that they all fire the pistol,     
  1925.       at the wrong end of the race?''--PDBT     
  1926. legalize@xmission.com    <http://www.eden.com/~thewho>
  1927.  
  1928. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1929. Post Message:   fractdev@lists.xmission.com
  1930. Get Commands:   majordomo@lists.xmission.com "help"
  1931. Administrator:  twegner@phoenix.net
  1932. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1933.  
  1934.  
  1935. -------------------------------------------------------------------------------
  1936.  
  1937. From: Jonathan Osuch <73277.1432@compuserve.com>
  1938. Subject: Re: (fractdev) unix patch 70
  1939. Date: 14 May 1999 17:56:49 -0400
  1940.  
  1941. Rich wrote:
  1942.  
  1943. >> Then put an #ifdef in unix.h to redefine the typedef for SignalHandler=
  1944.  
  1945. instead of changing everything to a redhat specific type. <<
  1946.  
  1947. Of course.  I tried that (not in unix.h, however) and it didn't work when=
  1948.  I
  1949. went back to the Slackware Linux.  I got a redefinition error.  I'll try =
  1950. it
  1951. again in unix.h, and see what happens.
  1952.  
  1953. Jonathan
  1954.  
  1955. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1956. Post Message:   fractdev@lists.xmission.com
  1957. Get Commands:   majordomo@lists.xmission.com "help"
  1958. Administrator:  twegner@phoenix.net
  1959. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1960.  
  1961.  
  1962. -------------------------------------------------------------------------------
  1963.  
  1964. From: Phil McRevis <legalize@xmission.com>
  1965. Subject: Re: (fractdev) unix patch 70 
  1966. Date: 14 May 1999 21:43:17 -0600
  1967.  
  1968.  
  1969. In article <199905141757_MC2-75CD-3A7C@compuserve.com>,
  1970.     Jonathan Osuch <73277.1432@compuserve.com>  writes:
  1971.  
  1972. > > I tried that (not in unix.h, however) and it didn't work when >  I >
  1973. > went back to the Slackware Linux.  I got a redefinition error.  I'll
  1974. > try = > it > again in unix.h, and see what happens.
  1975.  
  1976. What is the exact problem with the existing prototype of
  1977. SignalHandler?  What problem did you originally have that caused you
  1978. to change SignalHandler to __sighandler_t?
  1979. --
  1980. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  1981.     ``Ain't it funny that they all fire the pistol,     
  1982.       at the wrong end of the race?''--PDBT     
  1983. legalize@xmission.com    <http://www.eden.com/~thewho>
  1984.  
  1985. Thanks for using Fractdev, The Fractint Developer's Discussion List
  1986. Post Message:   fractdev@lists.xmission.com
  1987. Get Commands:   majordomo@lists.xmission.com "help"
  1988. Administrator:  twegner@phoenix.net
  1989. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  1990.  
  1991.  
  1992. -------------------------------------------------------------------------------
  1993.  
  1994. From: Jonathan Osuch <73277.1432@compuserve.com>
  1995. Subject: Re: (fractdev) unix patch 70
  1996. Date: 15 May 1999 08:55:37 -0400
  1997.  
  1998. Rich wrote:
  1999.  
  2000. >> What is the exact problem with the existing prototype of
  2001. SignalHandler?  What problem did you originally have that caused you
  2002. to change SignalHandler to __sighandler_t? <<
  2003.  
  2004. In Redhat Linux, the SignalHandler prototype doesn't exist in any of the
  2005. signal.h files.  I see that we have a define for it in unix.h.  Which isn=
  2006. 't
  2007. used if LINUX is defined.  Defining REDHAT and using a copy of the
  2008. SignalHandler prototype works fine.
  2009.  
  2010. What concerns me is that the signal.h files with the Redhat Linux are new=
  2011. er
  2012. than the ones which came with the Slakware Linux.  When Slakware updates
  2013. its gcc compiler will it then have the same problem?  I'm guessing, yes.
  2014.  
  2015. Jonathan
  2016.  
  2017. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2018. Post Message:   fractdev@lists.xmission.com
  2019. Get Commands:   majordomo@lists.xmission.com "help"
  2020. Administrator:  twegner@phoenix.net
  2021. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2022.  
  2023.  
  2024. -------------------------------------------------------------------------------
  2025.  
  2026. From: Phil McRevis <legalize@xmission.com>
  2027. Subject: Re: (fractdev) unix patch 70 
  2028. Date: 15 May 1999 18:10:53 -0600
  2029.  
  2030.  
  2031. So your signal handler prototype is a pointer to function taking int
  2032. returning void, correct?
  2033.  
  2034. What I'm trying to learn is: what's the prototype for the signal
  2035. handler you need, and why isn't the one defined in unix.h working.
  2036. --
  2037. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2038.     ``Ain't it funny that they all fire the pistol,     
  2039.       at the wrong end of the race?''--PDBT     
  2040. legalize@xmission.com    <http://www.eden.com/~thewho>
  2041.  
  2042. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2043. Post Message:   fractdev@lists.xmission.com
  2044. Get Commands:   majordomo@lists.xmission.com "help"
  2045. Administrator:  twegner@phoenix.net
  2046. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2047.  
  2048.  
  2049. -------------------------------------------------------------------------------
  2050.  
  2051. From: Jonathan Osuch <73277.1432@compuserve.com>
  2052. Subject: Re: (fractdev) unix patch 70
  2053. Date: 16 May 1999 17:42:03 -0400
  2054.  
  2055. Rich wrote:
  2056.  
  2057. >> What I'm trying to learn is: what's the prototype for the signal
  2058. handler you need, and why isn't the one defined in unix.h working. <<
  2059.  
  2060. The one in unix.h works fine.  But, notice that it is just after an
  2061. "#ifndef LINUX", which is what I'm running on.  I have two Linux systems,=
  2062.  
  2063. one that requires the prototype in unix.h and one that doesn't.
  2064.  
  2065. As you said earlier, this is an excellent example for why we need to star=
  2066. t
  2067. using configure.
  2068.  
  2069. Jonathan
  2070.  
  2071. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2072. Post Message:   fractdev@lists.xmission.com
  2073. Get Commands:   majordomo@lists.xmission.com "help"
  2074. Administrator:  twegner@phoenix.net
  2075. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2076.  
  2077.  
  2078. -------------------------------------------------------------------------------
  2079.  
  2080. From: Phil McRevis <legalize@xmission.com>
  2081. Subject: Re: (fractdev) "todo" and "progress" files updated 
  2082. Date: 21 May 1999 01:37:11 -0600
  2083.  
  2084.  
  2085. Tim, I hope you don't mind me sharing a little bit of your mail to me
  2086. with the fractdev list.
  2087.  
  2088. In article <199905210352.UAA10342@scruz.net>,
  2089.     tgilman <tgilman@scruznet.com>  writes:
  2090.  
  2091. > [...] I'll be pointing my head at getting some of the 
  2092. > flow-control of fractint away from all the menuing to a more 
  2093. > abstraction-friendly engine.
  2094.  
  2095. After having studied the code, I've come to the conclusion that it
  2096. shouldn't be too hard to get fractint away from the polling I/O model
  2097. and move it to an event-driven model.  There are several main points:
  2098.  
  2099. 1) computations check for "has a key been pressed?" in order to
  2100. prematurely terminate or interrupt some computation.  This can be
  2101. replaced by code that checks some termination condition other than
  2102. "key pressed".  The check is the easy part; the harder part is
  2103. massaging that check into the surrounding control logic.  A little
  2104. tedious, but definately doable.
  2105.  
  2106. 2) handling of keystrokes for menus, parameter screens and so-on.  This
  2107. is already abstracted out in fractint (see the fullscreen_choice
  2108. routine in realdos.c) so it shouldn't be hard to convert from polling.
  2109. The key is to change a control structure that looks like this:
  2110.  
  2111.     ...setup calculations...
  2112.     while 1
  2113.     get a key press
  2114.     switch on key
  2115.         case ESC
  2116.         /* handle ESC */
  2117.         case F1
  2118.         /* handle help (F1) */
  2119.         ...etc...
  2120.     ...final calculations...
  2121.  
  2122. This is what in Xt parlance one would call an "action table" -- it maps
  2123. events to application action procedures.  In fractint, the mapping is
  2124. embedded in the switch statement and the surrounding control logic,
  2125. and the "action procedures" aren't necessarily C procedures/functions,
  2126. they are usually just a block of code in the case statement.  In
  2127. order to turn this into an event driven situation, you want to build a
  2128. table associating keys with actions to be taken when those keys are
  2129. pressed.  The surrounding control logic is converted into a state
  2130. machine, so that the setup calculations are done once (not on every key
  2131. stroke).  Usually the setup calculations are things like initialization
  2132. of variables used in the keystroke handling and writing the menu to the
  2133. text screen.
  2134.  
  2135. 3) handling of the zoom box; this is a little tricky since the mouse
  2136. and the keyboard are used to navigate the zoom box.  However, the same
  2137. mechanism holds -- the zoom box is manipulated in response to specific
  2138. keys on the keyboard.  This is another event/action table, where mouse
  2139. events are also mapped to application actions.
  2140.  
  2141. 4) handling of the palette editor; the mouse handling is more involved
  2142. than the zoom box, but the same principle applies.
  2143.  
  2144. There might be a few other hidden places where the control flow has to
  2145. be considered.  Certain portions of the fractint code become easier
  2146. under this event/action table model when you consider the timer as
  2147. just another source of events.
  2148.  
  2149. Under an event/action table paradigm, think of fractint's interface
  2150. like this: at any given moment there is an action table in effect.  An
  2151. event is received from the system and the action table is searched for
  2152. a match.  If no match is found, the event is discarded.  If a match is
  2153. found, the associated action procedure is called with the event.  The
  2154. action procedure processes the event and takes the appropriate action,
  2155. returning to the event dispatcher.  The dispatcher then looks for
  2156. another event from the system.
  2157.  
  2158. Of course, if you have something computing in the background (the user
  2159. pressed F1 during image generation, and then pressed escape, for
  2160. instance), the main event loop can always use a non-blocking method of
  2161. checking for events so that background processing can continue when
  2162. there are no events to process.  In X11, this means using something
  2163. like select() or XPending() to check to see if the connection to the
  2164. X server has anything waiting.  If not, you perform another quantum
  2165. of background processing before checking for events again.
  2166.  
  2167. Under this model, a keystroke that results in a menu or parameter
  2168. field screen works by pushing its action table onto a stack, replacing
  2169. the current action table with its menu/screen specific table.
  2170. Eventually the user will do something that causes the menu/screen to
  2171. be replaced with the graphic image (pressing ESC or RETURN, for
  2172. instance) at which point the action table stack is popped and we
  2173. return to the original event processing context from which we invoked
  2174. the menu/screen in the first place.  Am I making sense?
  2175.  
  2176. If we followed this sort of abstraction, its a relatively small code
  2177. delta from what fractint currently has.  It does touch lots of files
  2178. and change lots of control logic in the code, however.  Its a
  2179. reasonable change to make, but it is a rather significant change.  The
  2180. current X11 port essentially polls the X server socket connection
  2181. (almost) every time the keyboard would have been polled under DOS.
  2182. This results in frequent checking of the X11 event queue, and there is
  2183. currently a fudge factor that prevents this check from happening too
  2184. often.  X11 wasn't meant to be used in a polling fashion, so its not
  2185. efficient when used in that manner -- which is why we have the fudge
  2186. factor in the xfractint code.
  2187.  
  2188. I think a change to an event-driven model is a good thing because the
  2189. window system ports all want to use an event-driven I/O model.  Only
  2190. DOS uses the polling model, and there isn't any reason why the DOS
  2191. version couldn't use an event-driven model.  Its just that fractint
  2192. grew up as a DOS program, and was architected with polling instead of
  2193. event dispatching.
  2194.  
  2195. Moving to an event-driven system would be a good thing, but I think it
  2196. should be deferred until after we get rid of the memory model stuff
  2197. and move to the driver interface.
  2198. --
  2199. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2200.     ``Ain't it funny that they all fire the pistol,     
  2201.       at the wrong end of the race?''--PDBT     
  2202. legalize@xmission.com    <http://www.eden.com/~thewho>
  2203.  
  2204. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2205. Post Message:   fractdev@lists.xmission.com
  2206. Get Commands:   majordomo@lists.xmission.com "help"
  2207. Administrator:  twegner@phoenix.net
  2208. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2209.  
  2210.  
  2211. -------------------------------------------------------------------------------
  2212.  
  2213. From: Phil McRevis <legalize@xmission.com>
  2214. Subject: (fractdev) Re: (fractint) Re: last bug report 
  2215. Date: 25 May 1999 11:28:28 -0600
  2216.  
  2217.  
  2218. In article <199905241146.GAA18067@voyager.c-com.net>,
  2219.     "Tim Wegner" <twegner@phoenix.net>  writes:
  2220.  
  2221. > [bfdigits=20]
  2222. > The trouble with this sort of fix is one has no idea whether it 
  2223. > disguises the real problem or fixes it. I will say, though, that I am 
  2224. > not happy with fractint's caalculation of the needed precision, 
  2225. > especially for rotated or skewed fractals. The bfdigits command 
  2226. > lets you set whatever you want, for arbitrary precision at least. 
  2227.  
  2228. This leads me to talk about a feature I've been wanting to add to
  2229. fractint, but one which definately requires the flat memory model
  2230. first because it trades space for time.
  2231.  
  2232. An iterated complex plane fractal as actually a special case of a
  2233. procedural texture.  If one approaches rendering a procedural texture
  2234. by computing a MIP-map approximation to the texture and using polygon
  2235. texturing techniques to handle the rotation/skew issue, the problem
  2236. becomes more interesting.  The resolution of the computation is
  2237. directly related to the depth of the mipmap level, symmetry (even for
  2238. rotated and skewed fractals) can be exploited to reduce memory
  2239. consumption.  Even better, refining the mipmap in memory as a source
  2240. for screen rendering results in caching of computation that increases
  2241. panning, zooming and rotating the texture.  XaoS exploits some of
  2242. these cases, but throws away data while zooming in, such that it must
  2243. recompute it when you zoom out.  A mipmap approach wouldn't suffer
  2244. this limitation unless you set a space ceiling on the amount of
  2245. already computed data it remembered.  Of course, even that could be
  2246. extended quite significantly with secondary storage paging.
  2247. --
  2248. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2249.     ``Ain't it funny that they all fire the pistol,     
  2250.       at the wrong end of the race?''--PDBT     
  2251. legalize@xmission.com    <http://www.eden.com/~thewho>
  2252.  
  2253. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2254. Post Message:   fractdev@lists.xmission.com
  2255. Get Commands:   majordomo@lists.xmission.com "help"
  2256. Administrator:  twegner@phoenix.net
  2257. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2258.  
  2259.  
  2260. -------------------------------------------------------------------------------
  2261.  
  2262. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  2263. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2264. Date: 25 May 1999 16:01:18 -0300 (EST)
  2265.  
  2266. On Tue, 25 May 1999, Phil McRevis wrote:
  2267.  
  2268. > In article <199905241146.GAA18067@voyager.c-com.net>,
  2269. >     "Tim Wegner" <twegner@phoenix.net>  writes:
  2270. > > [bfdigits=20]
  2271. [...]
  2272.  
  2273.     Have we lost this posting? 
  2274.  
  2275. > An iterated complex plane fractal as actually a special case of a
  2276. > procedural texture.  If one approaches rendering a procedural texture
  2277. > by computing a MIP-map approximation to the texture and using polygon
  2278.  
  2279.     What is a MIP-map? (be technical) And where i can read more about it? I
  2280. tseems verry interesting to deal with.
  2281.  
  2282.     PS: one thing that would be very easy to do with memory avaliable is to
  2283. store the final outcome of the iteratiosn (the complex or pair of reals resulkt
  2284. and the iteration) of all points in the screen allowing for quick
  2285. experimentation with different colloring methods.
  2286.  
  2287.     []'s
  2288.  
  2289.     Humberto R. Baptista
  2290.     humberto@insite.com.br
  2291.  
  2292. Insite - Solucoes Internet                         http://www.insite.com.br
  2293.  
  2294. -----BEGIN GEEK CODE BLOCK-----
  2295. Version: 3.1
  2296. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>pu s:- a->!@ C++++$ USL+++$ P+++@ 
  2297. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  2298. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>+++++$ h(---)>*$ r+++ 
  2299. y+++*
  2300. ------END GEEK CODE BLOCK------
  2301.  
  2302.  
  2303.  
  2304. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2305. Post Message:   fractdev@lists.xmission.com
  2306. Get Commands:   majordomo@lists.xmission.com "help"
  2307. Administrator:  twegner@phoenix.net
  2308. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2309.  
  2310.  
  2311. -------------------------------------------------------------------------------
  2312.  
  2313. From: Phil McRevis <legalize@xmission.com>
  2314. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2315. Date: 25 May 1999 13:31:01 -0600
  2316.  
  2317.  
  2318. In article <Pine.LNX.4.02.9905251558340.11987-100000@tatui.insite.com.br>,
  2319.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2320.  
  2321. >     Have we lost this posting? 
  2322.  
  2323. No, it was a whine on the fractint list, which reminded me of that
  2324. idea that I wanted to disseminate to fractdev.
  2325.  
  2326. >     What is a MIP-map? (be technical) And where i can read more about it? I
  2327. > tseems verry interesting to deal with.
  2328.  
  2329. A "mipmap" is a data structure used to represent textures in a
  2330. rendering system that supports textured polygons.  As a polygon
  2331. changes its orientation relative to the camera, the texture associated
  2332. with the polygon's surface becomes compressed and expanded.  This can
  2333. introduce aliasing in the textured surface.  The eliminate the
  2334. aliasing, one must implement a convolution over the texture to sum up
  2335. a weighted average of all the texels (texture map pixels) contributing
  2336. to a screen pixel to determine the appropriate texture contribution to
  2337. the screen pixel.  This texture contribution may then be passed
  2338. through lighting, depth cueueing, fog, etc., before becoming the final
  2339. pixel on the screen.
  2340.  
  2341. The mipmap datastructure is an approximation to the true convolution --
  2342. since doing the true convolution is quite expensive.  A mipmap contains
  2343. prefiltered versions of the texture at various levels of decimation.
  2344. For instance a 256x256 texture would be filtered to produce decimated
  2345. versions at resolutions 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2
  2346. and 1x1.  The collection of decimated images plus the original texture
  2347. image is referred to as a "mipmap".  When rendering instead of
  2348. performing the full convolution, it is approximated by interpolating
  2349. both within a single level of a mipmap and between two adjacent levels
  2350. in a mipmap.  This is called bilinear and trilinear filtering,
  2351. respectively.
  2352.  
  2353. The way fractint works, the problem is somewhat easier, since we don't
  2354. allow the user to float above the fractal in perspective.  The view of
  2355. the fractal is equivalent to an orthographic view, which simplifies
  2356. things by eliminating a per-pixel divide in order to obtain correct
  2357. interpolation in a perspective view.
  2358.  
  2359. With a procedural texture, consider the mipmap as an infinite pyramid,
  2360. with the 1x1 version at the apex and finer and finer renderings of the
  2361. procedural texture appearing as the pyramid gets wider and wider.
  2362.  
  2363. > PS: one thing that would be very easy to do with memory avaliable is to
  2364. > store the final outcome of the iteratiosn (the complex or pair of reals resul
  2365. kt
  2366. > and the iteration) of all points in the screen allowing for quick
  2367. > experimentation with different colloring methods.
  2368.  
  2369. Yes, a mipmap like data structure would facilitate this -- instead of
  2370. storing pixels you store the last iterate in the orbit.  There is the
  2371. small wrinkle of storing more bits per iterate as you zoom deeper, but
  2372. its not hard to deal with.
  2373.  
  2374. Another advantage a mipmap like storage technique would get you
  2375. (besides avoiding recomputation of orbits, regardless of the
  2376. orientation of the viewport) is that anti-aliasing comes "for free"
  2377. and getting an anti-aliased image doesn't imply the loss of any data.
  2378. Thus you could swith coloring methods after the anti-aliased view is
  2379. finished and get an anti-aliased view with the new method without
  2380. recomputing any orbits.
  2381.  
  2382. The definitive reference for "mipmaps" and its application to computer
  2383. graphics and anti-aliasing can be found in this paper:
  2384.  
  2385.     Lance Williams
  2386.     Pyramidal Parametrics
  2387.     Computer Graphics, 17(3), pp. 1-11, July 1983. 
  2388.  
  2389. This is the SIGGRAPH conference proceedings from 1983.  The technique
  2390. is popular enough now (for instance consumer gaming cards use
  2391. mipmapping to accelerate texture mapped games; direct3d has
  2392. mipmapping, OpenGL has mipmapping, etc.) that you can also find it
  2393. described in many computer graphics texts, but the paper cited above
  2394. was the first to describe the term "mipmap" and how it applies to
  2395. computer graphics.
  2396. --
  2397. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2398.     ``Ain't it funny that they all fire the pistol,     
  2399.       at the wrong end of the race?''--PDBT     
  2400. legalize@xmission.com    <http://www.eden.com/~thewho>
  2401.  
  2402. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2403. Post Message:   fractdev@lists.xmission.com
  2404. Get Commands:   majordomo@lists.xmission.com "help"
  2405. Administrator:  twegner@phoenix.net
  2406. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2407.  
  2408.  
  2409. -------------------------------------------------------------------------------
  2410.  
  2411. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  2412. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2413. Date: 25 May 1999 16:59:21 -0300 (EST)
  2414.  
  2415. On Tue, 25 May 1999, Phil McRevis wrote:
  2416.  
  2417. > The mipmap datastructure is an approximation to the true convolution --
  2418. > since doing the true convolution is quite expensive.  A mipmap contains
  2419. > prefiltered versions of the texture at various levels of decimation.
  2420. > For instance a 256x256 texture would be filtered to produce decimated
  2421. > versions at resolutions 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2
  2422. > and 1x1.  The collection of decimated images plus the original texture
  2423. > image is referred to as a "mipmap".  When rendering instead of
  2424. > performing the full convolution, it is approximated by interpolating
  2425. > both within a single level of a mipmap and between two adjacent levels
  2426. > in a mipmap.  This is called bilinear and trilinear filtering,
  2427. > respectively.
  2428.  
  2429.     The structure os a MIP map reminds me of two things: the wavlet
  2430. transform and my dithereing drawing method. :-) In this last I effectively start
  2431. with a 1x1 pixel and go down to the full resolution of the image.
  2432.  
  2433. [...]
  2434. > With a procedural texture, consider the mipmap as an infinite pyramid,
  2435. > with the 1x1 version at the apex and finer and finer renderings of the
  2436. > procedural texture appearing as the pyramid gets wider and wider.
  2437.  
  2438.     Even more like my method.
  2439.  
  2440.  
  2441. [...]
  2442. > Another advantage a mipmap like storage technique would get you
  2443. > (besides avoiding recomputation of orbits, regardless of the
  2444. > orientation of the viewport) is that anti-aliasing comes "for free"
  2445. > and getting an anti-aliased image doesn't imply the loss of any data.
  2446. > Thus you could swith coloring methods after the anti-aliased view is
  2447. > finished and get an anti-aliased view with the new method without
  2448. > recomputing any orbits.
  2449.  
  2450.     Hm. or I could make the dithering method go 1 level deeper (with some
  2451. easy adjustments to avoid over calculation of points) and derive anti aliasing
  2452. from there. 
  2453. > The definitive reference for "mipmaps" and its application to computer
  2454. > graphics and anti-aliasing can be found in this paper:
  2455. [...]
  2456.  
  2457.     Thanks, rich.
  2458.  
  2459.     BTW: how're things with the flat memory model?
  2460.  
  2461.     []'s
  2462.  
  2463.     Humberto R. Baptista
  2464.     humberto@insite.com.br
  2465.  
  2466. Insite - Solucoes Internet                         http://www.insite.com.br
  2467.  
  2468. -----BEGIN GEEK CODE BLOCK-----
  2469. Version: 3.1
  2470. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>pu s:- a->!@ C++++$ USL+++$ P+++@ 
  2471. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  2472. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>+++++$ h(---)>*$ r+++ 
  2473. y+++*
  2474. ------END GEEK CODE BLOCK------
  2475.  
  2476.  
  2477.  
  2478. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2479. Post Message:   fractdev@lists.xmission.com
  2480. Get Commands:   majordomo@lists.xmission.com "help"
  2481. Administrator:  twegner@phoenix.net
  2482. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2483.  
  2484.  
  2485. -------------------------------------------------------------------------------
  2486.  
  2487. From: Phil McRevis <legalize@xmission.com>
  2488. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2489. Date: 26 May 1999 08:50:16 -0600
  2490.  
  2491.  
  2492. In article <Pine.LNX.4.02.9905251655370.25476-100000@tatui.insite.com.br>,
  2493.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2494.  
  2495. >     The structure os a MIP map reminds me of two things: the wavlet
  2496. > transform and my dithereing drawing method.
  2497.  
  2498. I don't know what your dithering drawing method is, but its only
  2499. relation to the wavelet transform is that they both have recursive
  2500. elements to their structure.  But then again, so does counting to 100
  2501. by tail recursion.
  2502.  
  2503. >  Hm. or I could make the dithering method go 1 level deeper (with some
  2504. > easy adjustments to avoid over calculation of points) and derive anti
  2505. > aliasing from there. 
  2506.  
  2507. Dithering != anti-aliasing; either we are not using the same terms
  2508. consistently, or we have some confusion on what "anti-aliasing" and
  2509. "dithering" really do.  One would typically apply anti-aliasing to a
  2510. full 24-bit RGB image and then dither it to the resolution of the
  2511. device (i.e. 16-bit color, or 8-bit LUT).  The two techniques are
  2512. often useful at the same time, but you definately do not want to try
  2513. and "anti-alias" a dithered image if you expect to get quality
  2514. results.
  2515.  
  2516. >     BTW: how're things with the flat memory model?
  2517.  
  2518. Clunking along.  I am trying to get my own business off the ground
  2519. before I run out of $$, so I can't work on the flat memory model
  2520. 24/7.
  2521. --
  2522. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2523.     ``Ain't it funny that they all fire the pistol,     
  2524.       at the wrong end of the race?''--PDBT     
  2525. legalize@xmission.com    <http://www.eden.com/~thewho>
  2526.  
  2527. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2528. Post Message:   fractdev@lists.xmission.com
  2529. Get Commands:   majordomo@lists.xmission.com "help"
  2530. Administrator:  twegner@phoenix.net
  2531. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2532.  
  2533.  
  2534. -------------------------------------------------------------------------------
  2535.  
  2536. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  2537. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2538. Date: 26 May 1999 12:16:57 -0300 (EST)
  2539.  
  2540. On Wed, 26 May 1999, Phil McRevis wrote:
  2541.  
  2542. > In article <Pine.LNX.4.02.9905251655370.25476-100000@tatui.insite.com.br>,
  2543. >     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2544. > >     The structure os a MIP map reminds me of two things: the wavlet
  2545. > > transform and my dithereing drawing method.
  2546. > I don't know what your dithering drawing method is, but its only
  2547. > relation to the wavelet transform is that they both have recursive
  2548. > elements to their structure.  But then again, so does counting to 100
  2549. > by tail recursion.
  2550.  
  2551.     Ups, old terminology: i meant diffusion method (i changed the name some
  2552. time ago to avoid confusion, but I keep forgetting :-)
  2553.  
  2554. > >  Hm. or I could make the dithering method go 1 level deeper (with some
  2555. > > easy adjustments to avoid over calculation of points) and derive anti
  2556. > > aliasing from there. 
  2557. [... mess I made ...]
  2558.  
  2559.     What I meant is that the diffusion drawing method uses a spcial
  2560. recursive subdivision method that is very economic in memory and is similar to
  2561. the structure you descibed to the mip maps.
  2562.  
  2563.     Por instance we can star with a 1x1 pixel image (the pixel covers the
  2564. whole screen) then to a 2x2, then a 4x4 and so on until the 2^nx2^n you want.
  2565. Right now my method stops in the screen resolution, but there is nothing that
  2566. stop us to go further, that is calculate all points between the screen points,
  2567. this could help anti-aliasin. This also could be done w/ images generated with
  2568. other drawing method (i can start my method in any point).
  2569.  
  2570.     Since we're on the subject let's check some things that are not clear
  2571. for me.
  2572.  
  2573.     I do not see how we can do anti-aliasing without reducing the resolution
  2574. of the final image. But:
  2575.  
  2576.     *   *  < pixels in the maximum resolution evaluate
  2577.       #    < interpolated pixel calculated on a 2x resolution than above
  2578.  
  2579.     What could the interpolated pixels help on the anti-alias calculation? 
  2580.  
  2581.     I think I miss somenthing here as I see little advantage on the use of
  2582. anti-alias on our fractal drawing work.
  2583.  
  2584. > >     BTW: how're things with the flat memory model?
  2585. > Clunking along.  I am trying to get my own business off the ground
  2586. > before I run out of $$, so I can't work on the flat memory model
  2587. > 24/7.
  2588.  
  2589.     Right. I never expected anyone to get full 24/7 on this (though it would
  2590. be nice to earn a livin like this :-)))) But the scheme you presented was so
  2591. simple (to the sense that it interferes little with the existent code) that I
  2592. was curious to know.
  2593.  
  2594.     I have to come back to my bussiness now too :-)) Gook luck.
  2595.  
  2596.     Humberto R. Baptista
  2597.     humberto@insite.com.br
  2598.  
  2599. Insite - Solucoes Internet                         http://www.insite.com.br
  2600.  
  2601. -----BEGIN GEEK CODE BLOCK-----
  2602. Version: 3.1
  2603. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>pu s:- a->!@ C++++$ USL+++$ P+++@ 
  2604. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  2605. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>+++++$ h(---)>*$ r+++ 
  2606. y+++*
  2607. ------END GEEK CODE BLOCK------
  2608.  
  2609.  
  2610.  
  2611. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2612. Post Message:   fractdev@lists.xmission.com
  2613. Get Commands:   majordomo@lists.xmission.com "help"
  2614. Administrator:  twegner@phoenix.net
  2615. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2616.  
  2617.  
  2618. -------------------------------------------------------------------------------
  2619.  
  2620. From: Phil McRevis <legalize@xmission.com>
  2621. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2622. Date: 26 May 1999 09:37:46 -0600
  2623.  
  2624.  
  2625. In article <Pine.LNX.4.02.9905261205520.30086-100000@tatui.insite.com.br>,
  2626.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2627.  
  2628. >     Ups, old terminology: i meant diffusion method (i changed the name some
  2629. > time ago to avoid confusion, but I keep forgetting :-)
  2630.  
  2631. Ah... OK, that makes much more sense.
  2632.  
  2633. >  I do not see how we can do anti-aliasing without reducing the resolution
  2634. > of the final image.
  2635.  
  2636. In the context of fractals, it is impossible to construct a bandwidth
  2637. limited version of the fractal that you then sample.  Because you are
  2638. always sampling a "thing" which has frequency components higher than
  2639. the highest representable frequency component on the screen, you
  2640. always have aliasing.  If you could bandwidth limit the fractal before
  2641. sampling it, then the samples would reproduce the frequencies exactly
  2642. and no anti-aliasing would be needed.
  2643.  
  2644. So, we're stuck with aliasing and the best we can do is try to
  2645. minimize the aliasing by applying anti-aliasing techniques.  This
  2646. generally implies supersampling the fractal and filtering the
  2647. supersampled fractal to the final resolution.  In order to support
  2648. anti-aliasing, fractint would need to devote memory storage (either
  2649. incrementally on a scanline-by-scanline basis, or in toto) to the
  2650. supersampled image.  The screen displays the result of the
  2651. anti-aliased filter.
  2652.  
  2653. >     *   *  < pixels in the maximum resolution evaluate
  2654. >       #    < interpolated pixel calculated on a 2x resolution than above
  2655. >     What could the interpolated pixels help on the anti-alias calculation? 
  2656.  
  2657. Decimation and interpolation are opposites.  Decimation (usually
  2658. combined with filtering; decimation without filtering just throws away
  2659. pixels and/or scanlines) decreases the number of pixels in an image
  2660. and interpolation increases the number of pixels in an image.  When
  2661. you are approximating a fractal with a few samples, then you
  2662. interpolate.  If you have more samples than your final resolution, you
  2663. decimate -- hopefully with a nice anti-aliasing filter so that you
  2664. don't introduce aliasing in the decimation process.
  2665.  
  2666. >     I think I miss somenthing here as I see little advantage on the use of
  2667. > anti-alias on our fractal drawing work.
  2668.  
  2669. Damien has a wonderful set of images on his web area that exaplains the
  2670. advantage of anti-aliasing for fractals.
  2671.  
  2672. > [...] the scheme you presented was so
  2673. > simple (to the sense that it interferes little with the existent code) that I
  2674. > was curious to know.
  2675.  
  2676. As it stands right now, the X11 "driver" appears to be working OK for
  2677. the code that I migrated from unixscr.c into d_x11.c; what is missing
  2678. is native X11 text output (so that an xterm window + curses isn't
  2679. required for X11 text output).  My plans are:
  2680.  
  2681.     o add native X11 text output
  2682.     o integrate driver into the video mode selection logic, similar to
  2683.     the ASCII mockup I posted earlier
  2684.     o massage curses driver for "graphic" output a la XaoS
  2685.     o massage disk driver for diskvideo output
  2686.  
  2687. Then what remains is to go through the use of memory to remove the
  2688. overlay and wacky memory buffers that fractint uses.  Things like
  2689. MK_FP() will go away, but since a single chunk of memory is aliased
  2690. (like a fortrash common block) by different routines, that will take
  2691. some careful work.  Finally, all the "far/huge/near" qualifiers on
  2692. memory can be removed (FCODE too).  At that point, I'll take the code
  2693. over to the DJGPP -- I'm currently developing everything on unix since
  2694. the tools and debuggers are more familiar to me -- and get disk and
  2695. curses video drivers working on DOS.  The final thing will be to get
  2696. the assembly code working for graphics output on DOS.  This may be
  2697. more trouble than its worth for me, and instead I may just implement
  2698. a graphics driver based on allegro and leave the assembly code to some
  2699. other motivated individual :-).
  2700. --
  2701. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2702.     ``Ain't it funny that they all fire the pistol,     
  2703.       at the wrong end of the race?''--PDBT     
  2704. legalize@xmission.com    <http://www.eden.com/~thewho>
  2705.  
  2706. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2707. Post Message:   fractdev@lists.xmission.com
  2708. Get Commands:   majordomo@lists.xmission.com "help"
  2709. Administrator:  twegner@phoenix.net
  2710. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2711.  
  2712.  
  2713. -------------------------------------------------------------------------------
  2714.  
  2715. From: Phil McRevis <legalize@xmission.com>
  2716. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2717. Date: 26 May 1999 08:50:16 -0600
  2718.  
  2719.  
  2720. In article <Pine.LNX.4.02.9905251655370.25476-100000@tatui.insite.com.br>,
  2721.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2722.  
  2723. >     The structure os a MIP map reminds me of two things: the wavlet
  2724. > transform and my dithereing drawing method.
  2725.  
  2726. I don't know what your dithering drawing method is, but its only
  2727. relation to the wavelet transform is that they both have recursive
  2728. elements to their structure.  But then again, so does counting to 100
  2729. by tail recursion.
  2730.  
  2731. >  Hm. or I could make the dithering method go 1 level deeper (with some
  2732. > easy adjustments to avoid over calculation of points) and derive anti
  2733. > aliasing from there. 
  2734.  
  2735. Dithering != anti-aliasing; either we are not using the same terms
  2736. consistently, or we have some confusion on what "anti-aliasing" and
  2737. "dithering" really do.  One would typically apply anti-aliasing to a
  2738. full 24-bit RGB image and then dither it to the resolution of the
  2739. device (i.e. 16-bit color, or 8-bit LUT).  The two techniques are
  2740. often useful at the same time, but you definately do not want to try
  2741. and "anti-alias" a dithered image if you expect to get quality
  2742. results.
  2743.  
  2744. >     BTW: how're things with the flat memory model?
  2745.  
  2746. Clunking along.  I am trying to get my own business off the ground
  2747. before I run out of $$, so I can't work on the flat memory model
  2748. 24/7.
  2749. --
  2750. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2751.     ``Ain't it funny that they all fire the pistol,     
  2752.       at the wrong end of the race?''--PDBT     
  2753. legalize@xmission.com    <http://www.eden.com/~thewho>
  2754.  
  2755. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2756. Post Message:   fractdev@lists.xmission.com
  2757. Get Commands:   majordomo@lists.xmission.com "help"
  2758. Administrator:  twegner@phoenix.net
  2759. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2760.  
  2761. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2762. Post Message:   fractdev@lists.xmission.com
  2763. Get Commands:   majordomo@lists.xmission.com "help"
  2764. Administrator:  twegner@phoenix.net
  2765. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2766.  
  2767.  
  2768. -------------------------------------------------------------------------------
  2769.  
  2770. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  2771. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2772. Date: 27 May 1999 14:57:38 -0300 (EST)
  2773.  
  2774. On Wed, 26 May 1999, Phil McRevis wrote:
  2775.  
  2776. > In article <Pine.LNX.4.02.9905261205520.30086-100000@tatui.insite.com.br>,
  2777. >     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2778. > >     Ups, old terminology: i meant diffusion method (i changed the name some
  2779. > > time ago to avoid confusion, but I keep forgetting :-)
  2780. > Ah... OK, that makes much more sense.
  2781. > >  I do not see how we can do anti-aliasing without reducing the resolution
  2782. > > of the final image.
  2783. > In the context of fractals, it is impossible to construct a bandwidth
  2784. > limited version of the fractal that you then sample.  Because you are
  2785. > always sampling a "thing" which has frequency components higher than
  2786. > the highest representable frequency component on the screen, you
  2787. > always have aliasing.  If you could bandwidth limit the fractal before
  2788. > sampling it, then the samples would reproduce the frequencies exactly
  2789. > and no anti-aliasing would be needed.
  2790. > So, we're stuck with aliasing and the best we can do is try to
  2791. > minimize the aliasing by applying anti-aliasing techniques.  This
  2792. > generally implies supersampling the fractal and filtering the
  2793. > supersampled fractal to the final resolution.  In order to support
  2794. > anti-aliasing, fractint would need to devote memory storage (either
  2795. > incrementally on a scanline-by-scanline basis, or in toto) to the
  2796. > supersampled image.  The screen displays the result of the
  2797. > anti-aliased filter.
  2798. > >     *   *  < pixels in the maximum resolution evaluate
  2799. > >       #    < interpolated pixel calculated on a 2x resolution than above
  2800. > > 
  2801. > >     What could the interpolated pixels help on the anti-alias calculation? 
  2802. > Decimation and interpolation are opposites.  Decimation (usually
  2803. > combined with filtering; decimation without filtering just throws away
  2804. > pixels and/or scanlines) decreases the number of pixels in an image
  2805. > and interpolation increases the number of pixels in an image.  When
  2806. > you are approximating a fractal with a few samples, then you
  2807. > interpolate.  If you have more samples than your final resolution, you
  2808. > decimate -- hopefully with a nice anti-aliasing filter so that you
  2809. > don't introduce aliasing in the decimation process.
  2810. > >     I think I miss somenthing here as I see little advantage on the use of
  2811. > > anti-alias on our fractal drawing work.
  2812. > Damien has a wonderful set of images on his web area that exaplains the
  2813. > advantage of anti-aliasing for fractals.
  2814. > > [...] the scheme you presented was so
  2815. > > simple (to the sense that it interferes little with the existent code) that I
  2816. > > was curious to know.
  2817. > As it stands right now, the X11 "driver" appears to be working OK for
  2818. > the code that I migrated from unixscr.c into d_x11.c; what is missing
  2819. > is native X11 text output (so that an xterm window + curses isn't
  2820. > required for X11 text output).  My plans are:
  2821. >     o add native X11 text output
  2822. >     o integrate driver into the video mode selection logic, similar to
  2823. >     the ASCII mockup I posted earlier
  2824. >     o massage curses driver for "graphic" output a la XaoS
  2825. >     o massage disk driver for diskvideo output
  2826. > Then what remains is to go through the use of memory to remove the
  2827. > overlay and wacky memory buffers that fractint uses.  Things like
  2828. > MK_FP() will go away, but since a single chunk of memory is aliased
  2829. > (like a fortrash common block) by different routines, that will take
  2830. > some careful work.  Finally, all the "far/huge/near" qualifiers on
  2831. > memory can be removed (FCODE too).  At that point, I'll take the code
  2832. > over to the DJGPP -- I'm currently developing everything on unix since
  2833. > the tools and debuggers are more familiar to me -- and get disk and
  2834. > curses video drivers working on DOS.  The final thing will be to get
  2835. > the assembly code working for graphics output on DOS.  This may be
  2836. > more trouble than its worth for me, and instead I may just implement
  2837. > a graphics driver based on allegro and leave the assembly code to some
  2838. > other motivated individual :-).
  2839. > --
  2840. > <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2841. >     ``Ain't it funny that they all fire the pistol,     
  2842. >       at the wrong end of the race?''--PDBT     
  2843. > legalize@xmission.com    <http://www.eden.com/~thewho>
  2844. > --------------------------------------------------------------
  2845. > Thanks for using Fractdev, The Fractint Developer's Discussion List
  2846. > Post Message:   fractdev@lists.xmission.com
  2847. > Get Commands:   majordomo@lists.xmission.com "help"
  2848. > Administrator:  twegner@phoenix.net
  2849. > Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2850.  
  2851.     Humberto R. Baptista
  2852.     humberto@insite.com.br
  2853.  
  2854. Insite - Solucoes Internet                         http://www.insite.com.br
  2855.  
  2856. -----BEGIN GEEK CODE BLOCK-----
  2857. Version: 3.1
  2858. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>pu s:- a->!@ C++++$ USL+++$ P+++@ 
  2859. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  2860. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>+++++$ h(---)>*$ r+++ 
  2861. y+++*
  2862. ------END GEEK CODE BLOCK------
  2863.  
  2864.  
  2865.  
  2866. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2867. Post Message:   fractdev@lists.xmission.com
  2868. Get Commands:   majordomo@lists.xmission.com "help"
  2869. Administrator:  twegner@phoenix.net
  2870. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2871.  
  2872.  
  2873. -------------------------------------------------------------------------------
  2874.  
  2875. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  2876. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2877. Date: 27 May 1999 16:00:48 -0300 (EST)
  2878.  
  2879.  
  2880.     Sorry last one went without the actual reply.
  2881.  
  2882. On Wed, 26 May 1999, Phil McRevis wrote:
  2883. > So, we're stuck with aliasing and the best we can do is try to
  2884. > minimize the aliasing by applying anti-aliasing techniques.  This
  2885. > generally implies supersampling the fractal and filtering the
  2886. > supersampled fractal to the final resolution.  In order to support
  2887. > anti-aliasing, fractint would need to devote memory storage (either
  2888. > incrementally on a scanline-by-scanline basis, or in toto) to the
  2889. > supersampled image.  The screen displays the result of the
  2890. > anti-aliased filter.
  2891.  
  2892.  
  2893.     Right, now I'm seeing the point.
  2894.  
  2895. > >     *   *  < pixels in the maximum resolution evaluate
  2896. > >       #    < interpolated pixel calculated on a 2x resolution than above
  2897. > > 
  2898. > >     What could the interpolated pixels help on the anti-alias calculation? 
  2899.  
  2900. > Decimation and interpolation are opposites.  Decimation (usually
  2901. [...]
  2902.  
  2903.     Hm. But if we go calculating an over sampled image then we use the pixes
  2904. of higher frequency to influence the cnormal frequency ones and with this (an
  2905. the appropriate filter) generete the anti-alias effect.
  2906.  
  2907. > Damien has a wonderful set of images on his web area that exaplains the
  2908. > advantage of anti-aliasing for fractals.
  2909.  
  2910.     I'll check.
  2911.  
  2912. [...]
  2913. > the assembly code working for graphics output on DOS.  This may be
  2914. > more trouble than its worth for me, and instead I may just implement
  2915. > a graphics driver based on allegro and leave the assembly code to some
  2916. > other motivated individual :-).
  2917.  
  2918.     Great, it seems very interesting and motivating. If you need any help at
  2919. any point (for instance on the setup of DJGPP w/ the appropriate tools) let me
  2920. know. Th idea of linking against allegro seem like a good one for me. I'll allow
  2921. the proliferation of colaboration on the flat model version.
  2922.  
  2923.     []'s
  2924.  
  2925.     Humberto R. Baptista
  2926.     humberto@insite.com.br
  2927.  
  2928. Insite - Solucoes Internet                         http://www.insite.com.br
  2929.  
  2930. -----BEGIN GEEK CODE BLOCK-----
  2931. Version: 3.1
  2932. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>pu s:- a->!@ C++++$ USL+++$ P+++@ 
  2933. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  2934. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>+++++$ h(---)>*$ r+++ 
  2935. y+++*
  2936. ------END GEEK CODE BLOCK------
  2937.  
  2938.  
  2939.  
  2940. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2941. Post Message:   fractdev@lists.xmission.com
  2942. Get Commands:   majordomo@lists.xmission.com "help"
  2943. Administrator:  twegner@phoenix.net
  2944. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2945.  
  2946.  
  2947. -------------------------------------------------------------------------------
  2948.  
  2949. From: Phil McRevis <legalize@xmission.com>
  2950. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  2951. Date: 27 May 1999 15:42:55 -0600
  2952.  
  2953.  
  2954. In article <Pine.LNX.4.02.9905271458020.25471-100000@tatui.insite.com.br>,
  2955.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  2956.  
  2957. > Hm. But if we go calculating an over sampled image then we use the pixes
  2958. > of higher frequency to influence the cnormal frequency ones and with this (an
  2959. > the appropriate filter) generete the anti-alias effect.
  2960.  
  2961. With the supersampling anti-aliasing method, what you are doing is
  2962. attempting to integrate the signal (i.e. the fractal) over the 'area'
  2963. of the pixel and come up with an appropriate average value.  This is
  2964. what makes highly dense chaotic regions fade to a uniform shade as the
  2965. characteristic length of the chaotic region approaches the dimensions
  2966. of a pixel.  In a strict mathematical and signal processing sense, you
  2967. still have an aliased image, but the aliasing is at a higher frequency
  2968. component which isn't as perceptible.
  2969.  
  2970. In this sense, "anti-aliasing" is a bit of a misnomer, because it
  2971. attenuates the effect of aliasing but doesn't eliminate it.  The only
  2972. way to truly eliminate aliasing is to limit the bandwidth of the
  2973. signal before it is sampled.  For real-world signals like audio, they
  2974. can be bandwidth limited before sampling so that aliasing isn't a
  2975. problem.  For synthetic signals like fractal renderings or ray-traced
  2976. scenes, it is difficult if not impossible to limit the bandwidth of
  2977. the signal before sampling.  Theoretically, one could analytically
  2978. limit the bandwidth of a raytraced scene, but in practice it is so
  2979. computationally intractable that supersampling is a more realistic
  2980. solution.
  2981. --
  2982. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  2983.     ``Ain't it funny that they all fire the pistol,     
  2984.       at the wrong end of the race?''--PDBT     
  2985. legalize@xmission.com    <http://www.eden.com/~thewho>
  2986.  
  2987. Thanks for using Fractdev, The Fractint Developer's Discussion List
  2988. Post Message:   fractdev@lists.xmission.com
  2989. Get Commands:   majordomo@lists.xmission.com "help"
  2990. Administrator:  twegner@phoenix.net
  2991. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  2992.  
  2993.  
  2994. -------------------------------------------------------------------------------
  2995.  
  2996. From: kragen@pobox.com (Kragen Sitaker)
  2997. Subject: (fractdev) Re: antialiasing
  2998. Date: 27 May 1999 18:23:49 -0400 (EDT)
  2999.  
  3000. Rich writes:
  3001. > Theoretically, one could analytically
  3002. > limit the bandwidth of a raytraced scene, but in practice it is so
  3003. > computationally intractable that supersampling is a more realistic
  3004. > solution.
  3005.  
  3006. Hmm, that's an interesting thought.
  3007.  
  3008. Have people actually analyzed the computational complexity of doing
  3009. this?  Clearly it would require significantly more complex *programs*,
  3010. but they might not necessarily run slower.
  3011.  
  3012. It is not obvious to me how to do it at all, either for raytraced
  3013. scenes or for Mandelbrots.
  3014.  
  3015. -- 
  3016. <kragen@pobox.com>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
  3017. TurboLinux is outselling NT in Japan's retail software market 10 to 1,
  3018. so I hear. 
  3019. -- http://www.performancecomputing.com/opinions/unixriot/981218.shtml
  3020.  
  3021.  
  3022. Thanks for using Fractdev, The Fractint Developer's Discussion List
  3023. Post Message:   fractdev@lists.xmission.com
  3024. Get Commands:   majordomo@lists.xmission.com "help"
  3025. Administrator:  twegner@phoenix.net
  3026. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  3027.  
  3028.  
  3029. -------------------------------------------------------------------------------
  3030.  
  3031. From: Phil McRevis <legalize@xmission.com>
  3032. Subject: Re: (fractdev) Re: antialiasing 
  3033. Date: 27 May 1999 16:29:16 -0600
  3034.  
  3035.  
  3036. In article <Pine.GSU.4.10.9905271820540.11212-100000@kirk.dnaco.net>,
  3037.     kragen@pobox.com (Kragen Sitaker)  writes:
  3038.  
  3039. > Have people actually analyzed the computational complexity of doing
  3040. > this?  Clearly it would require significantly more complex *programs*,
  3041. > but they might not necessarily run slower.
  3042.  
  3043. <shrug>  The only reason I believe it theoretically plausible for
  3044. ray-tracers is that one can obtain a description of the scene in
  3045. closed form.  You may have to restrict your scene a little bit in
  3046. order to maintain a closed form -- i.e. no procedural mandelbrot
  3047. textures.
  3048.  
  3049. Since you can't get a fractal into a closed form, that is what
  3050. prevents you from analytically limiting its bandwidth in the scene.
  3051. --
  3052. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  3053.     ``Ain't it funny that they all fire the pistol,     
  3054.       at the wrong end of the race?''--PDBT     
  3055. legalize@xmission.com    <http://www.eden.com/~thewho>
  3056.  
  3057. Thanks for using Fractdev, The Fractint Developer's Discussion List
  3058. Post Message:   fractdev@lists.xmission.com
  3059. Get Commands:   majordomo@lists.xmission.com "help"
  3060. Administrator:  twegner@phoenix.net
  3061. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  3062.  
  3063.