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

  1. From: owner-fractdev-digest@lists.xmission.com (fractdev-digest)
  2. To: fractdev-digest@lists.xmission.com
  3. Subject: fractdev-digest V1 #24
  4. Reply-To: fractdev-digest
  5. Sender: owner-fractdev-digest@lists.xmission.com
  6. Errors-To: owner-fractdev-digest@lists.xmission.com
  7. Precedence: bulk
  8.  
  9.  
  10. fractdev-digest         Tuesday, May 25 1999         Volume 01 : Number 024
  11.  
  12.  
  13.  
  14.  
  15. ----------------------------------------------------------------------
  16.  
  17. Date: Thu, 13 May 1999 16:40:32 -0600
  18. From: Phil McRevis <legalize@xmission.com>
  19. Subject: Re: (fractdev) Patches 65 through 73 
  20.  
  21. In article <199905100419.XAA14634@voyager.c-com.net>,
  22.     "Tim Wegner" <twegner@phoenix.net>  writes:
  23.  
  24. > This file has both DOS and UNIX diffs. The UNIX diffs end in X - e.g. 
  25. > 1961p73x.dif
  26.  
  27. There aren't unix versions of all the diffs, how are the unix diffs
  28. supposed to be applied?
  29.  
  30. Archive:  ../patches_65_through_73.zip
  31.  Length    Date    Time    Name
  32.  ------    ----    ----    ----
  33.   28943  02-09-99  19:01   1961P65.DIF
  34.    4416  02-09-99  19:01   1961P65X.DIF
  35.   14589  03-06-99  13:36   1961P66.DIF
  36.   49292  03-22-99  22:59   1961P67.DIF        <= no unix patch 67
  37.    7259  05-04-99  19:47   GENERAL.OBJ
  38.   17429  04-05-99  19:47   1961P68.DIF
  39.    2707  04-02-99  19:45   1961P68X.DIF
  40.    4947  04-06-99  20:46   1961P69.DIF        <= no unix patch 69
  41.   42684  04-26-99  21:05   1961P70.DIF
  42.    2168  04-26-99  21:06   1961P70X.DIF
  43.    3340  05-02-99  17:16   MUSICV20.PAR
  44.   19730  04-30-99  20:15   1961P71.DIF        <= no unix patch 71
  45.   46618  05-09-99  12:45   1961P72.DIF        <= no unix patch 72
  46.   13784  05-09-99  17:16   1961P73.DIF
  47.    1051  05-09-99  18:49   1961P73X.DIF
  48.  ------                    -------
  49.  258957                    15 files
  50.  
  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. - --------------------------------------------------------------
  58. Thanks for using Fractdev, The Fractint Developer's Discussion List
  59. Post Message:   fractdev@lists.xmission.com
  60. Get Commands:   majordomo@lists.xmission.com "help"
  61. Administrator:  twegner@phoenix.net
  62. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  63.  
  64. ------------------------------
  65.  
  66. Date: Thu, 13 May 1999 16:44:49 -0600
  67. From: Phil McRevis <legalize@xmission.com>
  68. Subject: Re: (fractdev) evolution of fractint source code as a package 
  69.  
  70. In article <199905132231.RAA19940@voyager.c-com.net>,
  71.     "Tim Wegner" <twegner@phoenix.net>  writes:
  72.  
  73. > I know little about what this entails, but for starters I have no 
  74. > objections.
  75.  
  76. There several things that the GNU folks have as conventions:
  77.  
  78. 1) the GNU project has a coding standard (not that all the GPL'ed code
  79. follows it, but it is recommended practice for the GNU project, not
  80. necessarily all GPL'ed code).  The GNU project is specifically the
  81. unix replacement project, not necessarily any code that is maintained
  82. or provided by FSF.  I think they call it the "GNU Hurd" or something
  83. like that now.
  84.  
  85. 2) makefile contentions.  This is stuff like standard targets for
  86. "clean", "all", "dist" (makes a source code distribution), etc.  If
  87. you use autoconf/automake, you get all this for free.
  88.  
  89. 3) other conventions.  Things like your source code should be stored
  90. in an archive file named package-major.minor.patch, so xfractint would
  91. be distributed as xfractint-19.61.73.tar.gz when you use automake's
  92. default.
  93.  
  94. Since fractint's code base targets DOS, there are obviously some of
  95. the GNU conventions you can't follow because they assume the
  96. availability of long filenames.
  97. - --
  98. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  99.     ``Ain't it funny that they all fire the pistol,     
  100.       at the wrong end of the race?''--PDBT     
  101. legalize@xmission.com    <http://www.eden.com/~thewho>
  102.  
  103. - --------------------------------------------------------------
  104. Thanks for using Fractdev, The Fractint Developer's Discussion List
  105. Post Message:   fractdev@lists.xmission.com
  106. Get Commands:   majordomo@lists.xmission.com "help"
  107. Administrator:  twegner@phoenix.net
  108. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  109.  
  110. ------------------------------
  111.  
  112. Date: Thu, 13 May 1999 19:01:47 -0400 (EDT)
  113. From: kragen@pobox.com (Kragen Sitaker)
  114. Subject: Re: (fractdev) evolution of fractint source code as a package
  115.  
  116. Rich writes:
  117. > 1) the GNU project has a coding standard 
  118.  
  119. It should probably be discussed among the folks who will be writing
  120. code whether the GNU coding standard is a good coding standard.
  121. Presumably the idea that there should be *some* consistent standard
  122. will not be too controversial, but it might be a good idea to find one
  123. that will entail minimal changes to the currently-existing code.
  124.  
  125. > (not that all the GPL'ed code
  126. > follows it, but it is recommended practice for the GNU project, not
  127. > necessarily all GPL'ed code).  The GNU project is specifically the
  128. > unix replacement project, not necessarily any code that is maintained
  129. > or provided by FSF.  I think they call it the "GNU Hurd" or something
  130. > like that now.
  131.  
  132. The Hurd is the kernel -- intended to replace the Linux kernel for
  133. example.  GNU is the whole OS -- the compiler, the C library, X, and
  134. the user programs.
  135.  
  136. Please don't become offended at this post.
  137.  
  138. - -- 
  139. <kragen@pobox.com>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
  140. TurboLinux is outselling NT in Japan's retail software market 10 to 1,
  141. so I hear. 
  142. - -- http://www.performancecomputing.com/opinions/unixriot/981218.shtml
  143.  
  144.  
  145. - --------------------------------------------------------------
  146. Thanks for using Fractdev, The Fractint Developer's Discussion List
  147. Post Message:   fractdev@lists.xmission.com
  148. Get Commands:   majordomo@lists.xmission.com "help"
  149. Administrator:  twegner@phoenix.net
  150. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  151.  
  152. ------------------------------
  153.  
  154. Date: Thu, 13 May 1999 17:03:17 -0600
  155. From: Phil McRevis <legalize@xmission.com>
  156. Subject: (fractdev) unix patch 70
  157.  
  158. This patch replaces SignalHandler (which is a portability typedef in
  159. unix.h) with __sighandler_t, which is an implementation dependent
  160. signal.  This symbol isn't even defined on Solaris.  Why was this
  161. change made?  In unix.h, SignalHandler is defined as:
  162.  
  163.     typedef void (*SignalHandler)(int);
  164.  
  165. If there is some problem with that prototype for a signal handler on a
  166. unix system (i.e. signal handler returns int, not void), then an
  167. #ifdef should be added in unix.h factoring out this problem, rather
  168. than sprinkling __sighandler_t over unixscr.c.
  169.  
  170. This is an example of the kinds of differences between unix boxes that
  171. configure can handle.  Unfortunately there isn't "one unix API"; which
  172. is why configure probes the target system to determine what set of
  173. options are provided.
  174. - --
  175. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  176.     ``Ain't it funny that they all fire the pistol, 
  177.       at the wrong end of the race?''--PDBT
  178.           <http://www.eden.com/~thewho>
  179.  
  180. - --------------------------------------------------------------
  181. Thanks for using Fractdev, The Fractint Developer's Discussion List
  182. Post Message:   fractdev@lists.xmission.com
  183. Get Commands:   majordomo@lists.xmission.com "help"
  184. Administrator:  twegner@phoenix.net
  185. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  186.  
  187. ------------------------------
  188.  
  189. Date: Thu, 13 May 1999 17:04:39 -0600
  190. From: Phil McRevis <legalize@xmission.com>
  191. Subject: Re: (fractdev) evolution of fractint source code as a package 
  192.  
  193. In article <Pine.GSU.4.10.9905131857350.1639-100000@kirk.dnaco.net>,
  194.     kragen@pobox.com (Kragen Sitaker)  writes:
  195.  
  196. > but it might be a good idea to find one
  197. > that will entail minimal changes to the currently-existing code.
  198.  
  199. LOL.  The existing code has a haphazard collection of styles and
  200. practices, none of which are consistent.
  201. - --
  202. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  203.     ``Ain't it funny that they all fire the pistol,     
  204.       at the wrong end of the race?''--PDBT     
  205. legalize@xmission.com    <http://www.eden.com/~thewho>
  206.  
  207. - --------------------------------------------------------------
  208. Thanks for using Fractdev, The Fractint Developer's Discussion List
  209. Post Message:   fractdev@lists.xmission.com
  210. Get Commands:   majordomo@lists.xmission.com "help"
  211. Administrator:  twegner@phoenix.net
  212. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  213.  
  214. ------------------------------
  215.  
  216. Date: Thu, 13 May 1999 21:03:48 -0400
  217. From: Jonathan Osuch <73277.1432@compuserve.com>
  218. Subject: Re: (fractdev) unix patch 70
  219.  
  220. Rich wrote:
  221.  
  222. >> This patch replaces SignalHandler (which is a portability typedef in
  223. unix.h) with __sighandler_t, which is an implementation dependent
  224. signal.  This symbol isn't even defined on Solaris.  Why was this
  225. change made? <<
  226.  
  227. Because SignalHandler works fine with what is provided with Slakware Linu=
  228. x,
  229. but is not provided with the version of Red Hat Linux (5.1) that I have. =
  230.  
  231. This obviously may change in the future.  I do intend to get Red Hat
  232. version 6.0 in the next month.
  233.  
  234. >> This is an example of the kinds of differences between unix boxes that=
  235.  
  236. configure can handle. <<
  237.  
  238. Go for it.
  239.  
  240. >> There aren't unix versions of all the diffs, how are the unix diffs
  241. supposed to be applied? <<
  242.  
  243. Both diffs need to be applied to Xfractint.  The diffs with the x contain=
  244.  
  245. changes that do not apply to the DOS version.
  246.  
  247. Jonathan
  248.  
  249. - --------------------------------------------------------------
  250. Thanks for using Fractdev, The Fractint Developer's Discussion List
  251. Post Message:   fractdev@lists.xmission.com
  252. Get Commands:   majordomo@lists.xmission.com "help"
  253. Administrator:  twegner@phoenix.net
  254. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  255.  
  256. ------------------------------
  257.  
  258. Date: Fri, 14 May 1999 14:15:47 -0300 (EST)
  259. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  260. Subject: (fractdev) Drivers API :-)
  261.  
  262.     Hi Rich:
  263.  
  264.     I've checked your driver API :-) and it looked very nice, resembles from
  265. a distance the XaoS one but I guess it's a bit cleaner.
  266.  
  267.     Let me add what I feel about the API (i'll comment the routine bellow my
  268. coments for those who have not read the driver.h you sent):
  269.  
  270.     - Hm besides driver_name there should be a driverversion variable or are
  271. you planning to put thisn in the name string?
  272.  
  273.     - the window, resize and redraw routines recieve no parameters, so I
  274. suppose the set_video_mode function sets the size and attributes of the windows,
  275. but this can be a little messy on multiwindows environments. How are you seeing
  276. this?
  277.  
  278.     - the read_picel shoudn't return an int, what about a user defined type?
  279. Like pixel (could go from RGB+al, RGB to Byte etc.)
  280.  
  281.     - the same applies to the put_pixel function (the color argument
  282. shoudn't be int);
  283.     
  284.     - besides read and write_span (functions that write a row of pixels)
  285. there should be something like write_block and read_blovk to deal with
  286. rectangular areas. And maybe we could come up with something to allow the use of
  287. hw optimizations avaliable on the hw beneath.
  288.  
  289.     - set_line_mode: why "line" mode? Shoudn't it be "draw" mode?
  290.     (this routine sets whether to copy or t xor the line w/ the bckgrnd)
  291.  
  292.     - set_video_mode recieves four parameters: ax,bx,cx,dx what do they do? 
  293.  
  294.     - the same obs regarding color on the put_string  routine.
  295.  
  296.     - what the find_font routine does?
  297.  
  298.     I have not seen the mouse routines in the API!
  299.  
  300.     The sound routines do not seem to help in the case of the new
  301. developments in the sound area (i'm not sure which routines should be added).
  302.  
  303.     Uf. Its a lot of things, but I rather make this in the beguinning of the
  304. process that later on :-)
  305.  
  306.     []'s
  307.  
  308.     Humberto R. Baptista
  309.     humberto@insite.com.br
  310.  
  311. - ---------------------------------------------------------------------------
  312. Insite - Solucoes Internet                         http://www.insite.com.br
  313.  
  314. - -----BEGIN GEEK CODE BLOCK-----
  315. Version: 3.1
  316. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  317. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  318. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  319. y+++*
  320. - ------END GEEK CODE BLOCK------
  321.  
  322.  
  323.  
  324. - --------------------------------------------------------------
  325. Thanks for using Fractdev, The Fractint Developer's Discussion List
  326. Post Message:   fractdev@lists.xmission.com
  327. Get Commands:   majordomo@lists.xmission.com "help"
  328. Administrator:  twegner@phoenix.net
  329. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  330.  
  331. ------------------------------
  332.  
  333. Date: Fri, 14 May 1999 11:35:13 -0600
  334. From: Phil McRevis <legalize@xmission.com>
  335. Subject: Re: (fractdev) unix patch 70 
  336.  
  337. In article <199905132103_MC2-75A8-2EA9@compuserve.com>,
  338.     Jonathan Osuch <73277.1432@compuserve.com>  writes:
  339.  
  340. > Because SignalHandler works fine with what is provided with Slakware Linux
  341. > but is not provided with the version of Red Hat Linux (5.1) that I have.
  342.  
  343. Then put an #ifdef in unix.h to redefine the typedef for SignalHandler
  344. instead of changing everything to a redhat specific type.
  345. - --
  346. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  347.     ``Ain't it funny that they all fire the pistol,     
  348.       at the wrong end of the race?''--PDBT     
  349. legalize@xmission.com    <http://www.eden.com/~thewho>
  350.  
  351. - --------------------------------------------------------------
  352. Thanks for using Fractdev, The Fractint Developer's Discussion List
  353. Post Message:   fractdev@lists.xmission.com
  354. Get Commands:   majordomo@lists.xmission.com "help"
  355. Administrator:  twegner@phoenix.net
  356. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  357.  
  358. ------------------------------
  359.  
  360. Date: Fri, 14 May 1999 11:45:40 -0600
  361. From: Phil McRevis <legalize@xmission.com>
  362. Subject: Re: (fractdev) Drivers API :-) 
  363.  
  364. In article <Pine.LNX.4.02.9905141245200.12807-100000@tatui.insite.com.br>,
  365.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  366.  
  367. >     I've checked your driver API :-) [...]
  368.  
  369. In all fairness, its not really a designed API.  Its just taking the
  370. existing routines in fractint and forcing them through a level of
  371. indirection.  The indirection is what supports the idea of multiple
  372. drivers coexisting.
  373.  
  374. > - Hm besides driver_name there should be a driverversion variable or ar
  375. e
  376. > you planning to put thisn in the name string?
  377.  
  378. A driver can report its version, but since drivers don't change unless
  379. a release of fractint changes, I don't see much point in that.  In
  380. other words, fractint 21.0 will always have whatever drivers were
  381. compiled with fractint 21.0, so there's no need for a driver version
  382. number as I see it.  It could be added, but I'd rather not add extra
  383. confusion to the equation about "driver versions" when in fact all
  384. that matters is the fractint version.
  385.  
  386. >     - the window, resize and redraw routines recieve no parameters, so I
  387. > suppose the set_video_mode function sets the size and attributes of the windo
  388. ws,
  389. > but this can be a little messy on multiwindows environments. How are you seei
  390. ng
  391. > this?
  392.  
  393. As I said, its not a designed API, its just taking the existing
  394. fractint code and adding a level of indirection.  Fractint just has a
  395. zillion global variables and many of the functions communicate
  396. information through these global variables.  I am eliminating any
  397. variables that are internal to drivers and encapsulating them inside a
  398. state structure that is created and maintained by the driver.
  399.  
  400. Eventually most if not all of fractint's globals will have to go a
  401. similar route if we want multithreading, reentrancy and distributed
  402. processing of the SMP variety.
  403.  
  404. >     - the read_picel shoudn't return an int, what about a user defined type
  405.  
  406. Read pixel returns an int because to fractint an int is a pixel since
  407. a pixel is only considered an index into a LUT.  Again, this API is
  408. not designed, its just an evolution of fractint's existing code, so
  409. fractint's assumptions (i.e. the world is a LUT-based frame buffer) go
  410. along with it.
  411.  
  412. > [read_span, write_span, set_line_mode, set_video_mode, etc.]
  413.  
  414. All your questions are answered by looking at the existing fractint
  415. source.  I'm *not* trying to rewrite fracint from scratch!  The job of
  416. inserting the driver indirection is big enough!  Trying to change too
  417. much at once just gets you into a quicksand of changes.
  418.  
  419. Regarding the sound routines, its difficult to say what's needed
  420. exactly because the xfractint version of the code didn't have the
  421. necessary routines until the latest round of patches.
  422.  
  423. Whereas X11 does provide device-independent graphics, it doesn't
  424. provide device-independent sound beyond a few little functions to make
  425. the keyboard beep at different hertz.  Sound has to be programmed
  426. differently on the SGI, on the Sun, on Linux, etc.  Under DirectX, you
  427. have a higher-level interface to sound on the PCs, but otherwise
  428. you're stuck with win32's idea of sound, which isn't all that great, I
  429. gather.
  430. - --
  431. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  432.     ``Ain't it funny that they all fire the pistol,     
  433.       at the wrong end of the race?''--PDBT     
  434. legalize@xmission.com    <http://www.eden.com/~thewho>
  435.  
  436. - --------------------------------------------------------------
  437. Thanks for using Fractdev, The Fractint Developer's Discussion List
  438. Post Message:   fractdev@lists.xmission.com
  439. Get Commands:   majordomo@lists.xmission.com "help"
  440. Administrator:  twegner@phoenix.net
  441. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  442.  
  443. ------------------------------
  444.  
  445. Date: Fri, 14 May 1999 15:00:53 -0300 (EST)
  446. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  447. Subject: Re: (fractdev) Drivers API :-) 
  448.  
  449. On Fri, 14 May 1999, Phil McRevis wrote:
  450.  
  451. > In all fairness, its not really a designed API.  Its just taking the
  452. [... explanations about taking the existing routines ...]
  453.  
  454.     OK, I get it, this was just a suggestion to things to add (eve if non
  455. functional right now). But there is one point that I stll have no seen in this:
  456. the mouse.
  457.  
  458.     []'s
  459.  
  460.     Humberto R. Baptista
  461.     humberto@insite.com.br
  462.  
  463. - ---------------------------------------------------------------------------
  464. Insite - Solucoes Internet                         http://www.insite.com.br
  465.  
  466. - -----BEGIN GEEK CODE BLOCK-----
  467. Version: 3.1
  468. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>dpu s:- a->!@ C++++$ USL+++$ P+++@ 
  469. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  470. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>++++ h(---)>*$ r+++ 
  471. y+++*
  472. - ------END GEEK CODE BLOCK------
  473.  
  474.  
  475.  
  476. - --------------------------------------------------------------
  477. Thanks for using Fractdev, The Fractint Developer's Discussion List
  478. Post Message:   fractdev@lists.xmission.com
  479. Get Commands:   majordomo@lists.xmission.com "help"
  480. Administrator:  twegner@phoenix.net
  481. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  482.  
  483. ------------------------------
  484.  
  485. Date: Fri, 14 May 1999 12:07:48 -0600
  486. From: Phil McRevis <legalize@xmission.com>
  487. Subject: Re: (fractdev) Drivers API :-) 
  488.  
  489. In article <Pine.LNX.4.02.9905141458090.25795-100000@tatui.insite.com.br>,
  490.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  491.  
  492. >     OK, I get it, this was just a suggestion to things to add (eve if non
  493. > functional right now). But there is one point that I stll have no seen in thi
  494. s:
  495. > the mouse.
  496.  
  497. Well it turns out it really is there, you just don't know it. :-)
  498.  
  499. Fractint's mouse support was added by diddling the keyboard routine!
  500.  
  501. Why was it done this way?  Because fractint has a polling input model.
  502. All over the code places "check the keyboard" to see if there is any
  503. input waiting.  So the place that checks for mouse code is squirreled
  504. away inside the keyboard routine.  This is also how the X version
  505. manages to read the event queue: its hidden inside the keyboard input
  506. routine.
  507.  
  508. The next big thing I'd like to do to fractint regarding its overall
  509. structure is to convert the polling I/O to event-oriented I/O, but
  510. that's a benefit for programmers, not users.  I don't think it will be
  511. that hard, but as I say, I'd rather not try to do too many things at
  512. once.
  513. - --
  514. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  515.     ``Ain't it funny that they all fire the pistol,     
  516.       at the wrong end of the race?''--PDBT     
  517. legalize@xmission.com    <http://www.eden.com/~thewho>
  518.  
  519. - --------------------------------------------------------------
  520. Thanks for using Fractdev, The Fractint Developer's Discussion List
  521. Post Message:   fractdev@lists.xmission.com
  522. Get Commands:   majordomo@lists.xmission.com "help"
  523. Administrator:  twegner@phoenix.net
  524. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  525.  
  526. ------------------------------
  527.  
  528. Date: Fri, 14 May 1999 17:56:49 -0400
  529. From: Jonathan Osuch <73277.1432@compuserve.com>
  530. Subject: Re: (fractdev) unix patch 70
  531.  
  532. Rich wrote:
  533.  
  534. >> Then put an #ifdef in unix.h to redefine the typedef for SignalHandler=
  535.  
  536. instead of changing everything to a redhat specific type. <<
  537.  
  538. Of course.  I tried that (not in unix.h, however) and it didn't work when=
  539.  I
  540. went back to the Slackware Linux.  I got a redefinition error.  I'll try =
  541. it
  542. again in unix.h, and see what happens.
  543.  
  544. Jonathan
  545.  
  546. - --------------------------------------------------------------
  547. Thanks for using Fractdev, The Fractint Developer's Discussion List
  548. Post Message:   fractdev@lists.xmission.com
  549. Get Commands:   majordomo@lists.xmission.com "help"
  550. Administrator:  twegner@phoenix.net
  551. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  552.  
  553. ------------------------------
  554.  
  555. Date: Fri, 14 May 1999 21:43:17 -0600
  556. From: Phil McRevis <legalize@xmission.com>
  557. Subject: Re: (fractdev) unix patch 70 
  558.  
  559. In article <199905141757_MC2-75CD-3A7C@compuserve.com>,
  560.     Jonathan Osuch <73277.1432@compuserve.com>  writes:
  561.  
  562. > > I tried that (not in unix.h, however) and it didn't work when >  I >
  563. > went back to the Slackware Linux.  I got a redefinition error.  I'll
  564. > try = > it > again in unix.h, and see what happens.
  565.  
  566. What is the exact problem with the existing prototype of
  567. SignalHandler?  What problem did you originally have that caused you
  568. to change SignalHandler to __sighandler_t?
  569. - --
  570. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  571.     ``Ain't it funny that they all fire the pistol,     
  572.       at the wrong end of the race?''--PDBT     
  573. legalize@xmission.com    <http://www.eden.com/~thewho>
  574.  
  575. - --------------------------------------------------------------
  576. Thanks for using Fractdev, The Fractint Developer's Discussion List
  577. Post Message:   fractdev@lists.xmission.com
  578. Get Commands:   majordomo@lists.xmission.com "help"
  579. Administrator:  twegner@phoenix.net
  580. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  581.  
  582. ------------------------------
  583.  
  584. Date: Sat, 15 May 1999 08:55:37 -0400
  585. From: Jonathan Osuch <73277.1432@compuserve.com>
  586. Subject: Re: (fractdev) unix patch 70
  587.  
  588. Rich wrote:
  589.  
  590. >> What is the exact problem with the existing prototype of
  591. SignalHandler?  What problem did you originally have that caused you
  592. to change SignalHandler to __sighandler_t? <<
  593.  
  594. In Redhat Linux, the SignalHandler prototype doesn't exist in any of the
  595. signal.h files.  I see that we have a define for it in unix.h.  Which isn=
  596. 't
  597. used if LINUX is defined.  Defining REDHAT and using a copy of the
  598. SignalHandler prototype works fine.
  599.  
  600. What concerns me is that the signal.h files with the Redhat Linux are new=
  601. er
  602. than the ones which came with the Slakware Linux.  When Slakware updates
  603. its gcc compiler will it then have the same problem?  I'm guessing, yes.
  604.  
  605. Jonathan
  606.  
  607. - --------------------------------------------------------------
  608. Thanks for using Fractdev, The Fractint Developer's Discussion List
  609. Post Message:   fractdev@lists.xmission.com
  610. Get Commands:   majordomo@lists.xmission.com "help"
  611. Administrator:  twegner@phoenix.net
  612. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  613.  
  614. ------------------------------
  615.  
  616. Date: Sat, 15 May 1999 18:10:53 -0600
  617. From: Phil McRevis <legalize@xmission.com>
  618. Subject: Re: (fractdev) unix patch 70 
  619.  
  620. So your signal handler prototype is a pointer to function taking int
  621. returning void, correct?
  622.  
  623. What I'm trying to learn is: what's the prototype for the signal
  624. handler you need, and why isn't the one defined in unix.h working.
  625. - --
  626. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  627.     ``Ain't it funny that they all fire the pistol,     
  628.       at the wrong end of the race?''--PDBT     
  629. legalize@xmission.com    <http://www.eden.com/~thewho>
  630.  
  631. - --------------------------------------------------------------
  632. Thanks for using Fractdev, The Fractint Developer's Discussion List
  633. Post Message:   fractdev@lists.xmission.com
  634. Get Commands:   majordomo@lists.xmission.com "help"
  635. Administrator:  twegner@phoenix.net
  636. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  637.  
  638. ------------------------------
  639.  
  640. Date: Sun, 16 May 1999 17:42:03 -0400
  641. From: Jonathan Osuch <73277.1432@compuserve.com>
  642. Subject: Re: (fractdev) unix patch 70
  643.  
  644. Rich wrote:
  645.  
  646. >> What I'm trying to learn is: what's the prototype for the signal
  647. handler you need, and why isn't the one defined in unix.h working. <<
  648.  
  649. The one in unix.h works fine.  But, notice that it is just after an
  650. "#ifndef LINUX", which is what I'm running on.  I have two Linux systems,=
  651.  
  652. one that requires the prototype in unix.h and one that doesn't.
  653.  
  654. As you said earlier, this is an excellent example for why we need to star=
  655. t
  656. using configure.
  657.  
  658. Jonathan
  659.  
  660. - --------------------------------------------------------------
  661. Thanks for using Fractdev, The Fractint Developer's Discussion List
  662. Post Message:   fractdev@lists.xmission.com
  663. Get Commands:   majordomo@lists.xmission.com "help"
  664. Administrator:  twegner@phoenix.net
  665. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  666.  
  667. ------------------------------
  668.  
  669. Date: Fri, 21 May 1999 01:37:11 -0600
  670. From: Phil McRevis <legalize@xmission.com>
  671. Subject: Re: (fractdev) "todo" and "progress" files updated 
  672.  
  673. Tim, I hope you don't mind me sharing a little bit of your mail to me
  674. with the fractdev list.
  675.  
  676. In article <199905210352.UAA10342@scruz.net>,
  677.     tgilman <tgilman@scruznet.com>  writes:
  678.  
  679. > [...] I'll be pointing my head at getting some of the 
  680. > flow-control of fractint away from all the menuing to a more 
  681. > abstraction-friendly engine.
  682.  
  683. After having studied the code, I've come to the conclusion that it
  684. shouldn't be too hard to get fractint away from the polling I/O model
  685. and move it to an event-driven model.  There are several main points:
  686.  
  687. 1) computations check for "has a key been pressed?" in order to
  688. prematurely terminate or interrupt some computation.  This can be
  689. replaced by code that checks some termination condition other than
  690. "key pressed".  The check is the easy part; the harder part is
  691. massaging that check into the surrounding control logic.  A little
  692. tedious, but definately doable.
  693.  
  694. 2) handling of keystrokes for menus, parameter screens and so-on.  This
  695. is already abstracted out in fractint (see the fullscreen_choice
  696. routine in realdos.c) so it shouldn't be hard to convert from polling.
  697. The key is to change a control structure that looks like this:
  698.  
  699.     ...setup calculations...
  700.     while 1
  701.     get a key press
  702.     switch on key
  703.         case ESC
  704.         /* handle ESC */
  705.         case F1
  706.         /* handle help (F1) */
  707.         ...etc...
  708.     ...final calculations...
  709.  
  710. This is what in Xt parlance one would call an "action table" -- it maps
  711. events to application action procedures.  In fractint, the mapping is
  712. embedded in the switch statement and the surrounding control logic,
  713. and the "action procedures" aren't necessarily C procedures/functions,
  714. they are usually just a block of code in the case statement.  In
  715. order to turn this into an event driven situation, you want to build a
  716. table associating keys with actions to be taken when those keys are
  717. pressed.  The surrounding control logic is converted into a state
  718. machine, so that the setup calculations are done once (not on every key
  719. stroke).  Usually the setup calculations are things like initialization
  720. of variables used in the keystroke handling and writing the menu to the
  721. text screen.
  722.  
  723. 3) handling of the zoom box; this is a little tricky since the mouse
  724. and the keyboard are used to navigate the zoom box.  However, the same
  725. mechanism holds -- the zoom box is manipulated in response to specific
  726. keys on the keyboard.  This is another event/action table, where mouse
  727. events are also mapped to application actions.
  728.  
  729. 4) handling of the palette editor; the mouse handling is more involved
  730. than the zoom box, but the same principle applies.
  731.  
  732. There might be a few other hidden places where the control flow has to
  733. be considered.  Certain portions of the fractint code become easier
  734. under this event/action table model when you consider the timer as
  735. just another source of events.
  736.  
  737. Under an event/action table paradigm, think of fractint's interface
  738. like this: at any given moment there is an action table in effect.  An
  739. event is received from the system and the action table is searched for
  740. a match.  If no match is found, the event is discarded.  If a match is
  741. found, the associated action procedure is called with the event.  The
  742. action procedure processes the event and takes the appropriate action,
  743. returning to the event dispatcher.  The dispatcher then looks for
  744. another event from the system.
  745.  
  746. Of course, if you have something computing in the background (the user
  747. pressed F1 during image generation, and then pressed escape, for
  748. instance), the main event loop can always use a non-blocking method of
  749. checking for events so that background processing can continue when
  750. there are no events to process.  In X11, this means using something
  751. like select() or XPending() to check to see if the connection to the
  752. X server has anything waiting.  If not, you perform another quantum
  753. of background processing before checking for events again.
  754.  
  755. Under this model, a keystroke that results in a menu or parameter
  756. field screen works by pushing its action table onto a stack, replacing
  757. the current action table with its menu/screen specific table.
  758. Eventually the user will do something that causes the menu/screen to
  759. be replaced with the graphic image (pressing ESC or RETURN, for
  760. instance) at which point the action table stack is popped and we
  761. return to the original event processing context from which we invoked
  762. the menu/screen in the first place.  Am I making sense?
  763.  
  764. If we followed this sort of abstraction, its a relatively small code
  765. delta from what fractint currently has.  It does touch lots of files
  766. and change lots of control logic in the code, however.  Its a
  767. reasonable change to make, but it is a rather significant change.  The
  768. current X11 port essentially polls the X server socket connection
  769. (almost) every time the keyboard would have been polled under DOS.
  770. This results in frequent checking of the X11 event queue, and there is
  771. currently a fudge factor that prevents this check from happening too
  772. often.  X11 wasn't meant to be used in a polling fashion, so its not
  773. efficient when used in that manner -- which is why we have the fudge
  774. factor in the xfractint code.
  775.  
  776. I think a change to an event-driven model is a good thing because the
  777. window system ports all want to use an event-driven I/O model.  Only
  778. DOS uses the polling model, and there isn't any reason why the DOS
  779. version couldn't use an event-driven model.  Its just that fractint
  780. grew up as a DOS program, and was architected with polling instead of
  781. event dispatching.
  782.  
  783. Moving to an event-driven system would be a good thing, but I think it
  784. should be deferred until after we get rid of the memory model stuff
  785. and move to the driver interface.
  786. - --
  787. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  788.     ``Ain't it funny that they all fire the pistol,     
  789.       at the wrong end of the race?''--PDBT     
  790. legalize@xmission.com    <http://www.eden.com/~thewho>
  791.  
  792. - --------------------------------------------------------------
  793. Thanks for using Fractdev, The Fractint Developer's Discussion List
  794. Post Message:   fractdev@lists.xmission.com
  795. Get Commands:   majordomo@lists.xmission.com "help"
  796. Administrator:  twegner@phoenix.net
  797. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  798.  
  799. ------------------------------
  800.  
  801. Date: Tue, 25 May 1999 11:28:28 -0600
  802. From: Phil McRevis <legalize@xmission.com>
  803. Subject: (fractdev) Re: (fractint) Re: last bug report 
  804.  
  805. In article <199905241146.GAA18067@voyager.c-com.net>,
  806.     "Tim Wegner" <twegner@phoenix.net>  writes:
  807.  
  808. > [bfdigits=20]
  809. > The trouble with this sort of fix is one has no idea whether it 
  810. > disguises the real problem or fixes it. I will say, though, that I am 
  811. > not happy with fractint's caalculation of the needed precision, 
  812. > especially for rotated or skewed fractals. The bfdigits command 
  813. > lets you set whatever you want, for arbitrary precision at least. 
  814.  
  815. This leads me to talk about a feature I've been wanting to add to
  816. fractint, but one which definately requires the flat memory model
  817. first because it trades space for time.
  818.  
  819. An iterated complex plane fractal as actually a special case of a
  820. procedural texture.  If one approaches rendering a procedural texture
  821. by computing a MIP-map approximation to the texture and using polygon
  822. texturing techniques to handle the rotation/skew issue, the problem
  823. becomes more interesting.  The resolution of the computation is
  824. directly related to the depth of the mipmap level, symmetry (even for
  825. rotated and skewed fractals) can be exploited to reduce memory
  826. consumption.  Even better, refining the mipmap in memory as a source
  827. for screen rendering results in caching of computation that increases
  828. panning, zooming and rotating the texture.  XaoS exploits some of
  829. these cases, but throws away data while zooming in, such that it must
  830. recompute it when you zoom out.  A mipmap approach wouldn't suffer
  831. this limitation unless you set a space ceiling on the amount of
  832. already computed data it remembered.  Of course, even that could be
  833. extended quite significantly with secondary storage paging.
  834. - --
  835. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  836.     ``Ain't it funny that they all fire the pistol,     
  837.       at the wrong end of the race?''--PDBT     
  838. legalize@xmission.com    <http://www.eden.com/~thewho>
  839.  
  840. - --------------------------------------------------------------
  841. Thanks for using Fractdev, The Fractint Developer's Discussion List
  842. Post Message:   fractdev@lists.xmission.com
  843. Get Commands:   majordomo@lists.xmission.com "help"
  844. Administrator:  twegner@phoenix.net
  845. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  846.  
  847. ------------------------------
  848.  
  849. Date: Tue, 25 May 1999 16:01:18 -0300 (EST)
  850. From: Humberto Rossetti Baptista <humberto@insite.com.br>
  851. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  852.  
  853. On Tue, 25 May 1999, Phil McRevis wrote:
  854.  
  855. > In article <199905241146.GAA18067@voyager.c-com.net>,
  856. >     "Tim Wegner" <twegner@phoenix.net>  writes:
  857. > > [bfdigits=20]
  858. [...]
  859.  
  860.     Have we lost this posting? 
  861.  
  862. > An iterated complex plane fractal as actually a special case of a
  863. > procedural texture.  If one approaches rendering a procedural texture
  864. > by computing a MIP-map approximation to the texture and using polygon
  865.  
  866.     What is a MIP-map? (be technical) And where i can read more about it? I
  867. tseems verry interesting to deal with.
  868.  
  869.     PS: one thing that would be very easy to do with memory avaliable is to
  870. store the final outcome of the iteratiosn (the complex or pair of reals resulkt
  871. and the iteration) of all points in the screen allowing for quick
  872. experimentation with different colloring methods.
  873.  
  874.     []'s
  875.  
  876.     Humberto R. Baptista
  877.     humberto@insite.com.br
  878.  
  879. - ---------------------------------------------------------------------------
  880. Insite - Solucoes Internet                         http://www.insite.com.br
  881.  
  882. - -----BEGIN GEEK CODE BLOCK-----
  883. Version: 3.1
  884. GB/C/CA/CM/CS/CC/ED/FA/H/IT/L/M/MU/P/S d?>pu s:- a->!@ C++++$ USL+++$ P+++@ 
  885. L+++@ !E W++@ N++(+)@ o+>++++$ K? w>---$ O-@$ M--@ V-- PS@ PE@ Y+>+++$ PGP+@ 
  886. t+++ 5+@ X+ R>+++$ tv@ b+>++++$ DI++$ D++>++++$ G e+++>+++++$ h(---)>*$ r+++ 
  887. y+++*
  888. - ------END GEEK CODE BLOCK------
  889.  
  890.  
  891.  
  892. - --------------------------------------------------------------
  893. Thanks for using Fractdev, The Fractint Developer's Discussion List
  894. Post Message:   fractdev@lists.xmission.com
  895. Get Commands:   majordomo@lists.xmission.com "help"
  896. Administrator:  twegner@phoenix.net
  897. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  898.  
  899. ------------------------------
  900.  
  901. Date: Tue, 25 May 1999 13:31:01 -0600
  902. From: Phil McRevis <legalize@xmission.com>
  903. Subject: Re: (fractdev) Re: (fractint) Re: last bug report 
  904.  
  905. In article <Pine.LNX.4.02.9905251558340.11987-100000@tatui.insite.com.br>,
  906.     Humberto Rossetti Baptista <humberto@insite.com.br>  writes:
  907.  
  908. >     Have we lost this posting? 
  909.  
  910. No, it was a whine on the fractint list, which reminded me of that
  911. idea that I wanted to disseminate to fractdev.
  912.  
  913. >     What is a MIP-map? (be technical) And where i can read more about it? I
  914. > tseems verry interesting to deal with.
  915.  
  916. A "mipmap" is a data structure used to represent textures in a
  917. rendering system that supports textured polygons.  As a polygon
  918. changes its orientation relative to the camera, the texture associated
  919. with the polygon's surface becomes compressed and expanded.  This can
  920. introduce aliasing in the textured surface.  The eliminate the
  921. aliasing, one must implement a convolution over the texture to sum up
  922. a weighted average of all the texels (texture map pixels) contributing
  923. to a screen pixel to determine the appropriate texture contribution to
  924. the screen pixel.  This texture contribution may then be passed
  925. through lighting, depth cueueing, fog, etc., before becoming the final
  926. pixel on the screen.
  927.  
  928. The mipmap datastructure is an approximation to the true convolution --
  929. since doing the true convolution is quite expensive.  A mipmap contains
  930. prefiltered versions of the texture at various levels of decimation.
  931. For instance a 256x256 texture would be filtered to produce decimated
  932. versions at resolutions 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2
  933. and 1x1.  The collection of decimated images plus the original texture
  934. image is referred to as a "mipmap".  When rendering instead of
  935. performing the full convolution, it is approximated by interpolating
  936. both within a single level of a mipmap and between two adjacent levels
  937. in a mipmap.  This is called bilinear and trilinear filtering,
  938. respectively.
  939.  
  940. The way fractint works, the problem is somewhat easier, since we don't
  941. allow the user to float above the fractal in perspective.  The view of
  942. the fractal is equivalent to an orthographic view, which simplifies
  943. things by eliminating a per-pixel divide in order to obtain correct
  944. interpolation in a perspective view.
  945.  
  946. With a procedural texture, consider the mipmap as an infinite pyramid,
  947. with the 1x1 version at the apex and finer and finer renderings of the
  948. procedural texture appearing as the pyramid gets wider and wider.
  949.  
  950. > PS: one thing that would be very easy to do with memory avaliable is to
  951. > store the final outcome of the iteratiosn (the complex or pair of reals resul
  952. kt
  953. > and the iteration) of all points in the screen allowing for quick
  954. > experimentation with different colloring methods.
  955.  
  956. Yes, a mipmap like data structure would facilitate this -- instead of
  957. storing pixels you store the last iterate in the orbit.  There is the
  958. small wrinkle of storing more bits per iterate as you zoom deeper, but
  959. its not hard to deal with.
  960.  
  961. Another advantage a mipmap like storage technique would get you
  962. (besides avoiding recomputation of orbits, regardless of the
  963. orientation of the viewport) is that anti-aliasing comes "for free"
  964. and getting an anti-aliased image doesn't imply the loss of any data.
  965. Thus you could swith coloring methods after the anti-aliased view is
  966. finished and get an anti-aliased view with the new method without
  967. recomputing any orbits.
  968.  
  969. The definitive reference for "mipmaps" and its application to computer
  970. graphics and anti-aliasing can be found in this paper:
  971.  
  972.     Lance Williams
  973.     Pyramidal Parametrics
  974.     Computer Graphics, 17(3), pp. 1-11, July 1983. 
  975.  
  976. This is the SIGGRAPH conference proceedings from 1983.  The technique
  977. is popular enough now (for instance consumer gaming cards use
  978. mipmapping to accelerate texture mapped games; direct3d has
  979. mipmapping, OpenGL has mipmapping, etc.) that you can also find it
  980. described in many computer graphics texts, but the paper cited above
  981. was the first to describe the term "mipmap" and how it applies to
  982. computer graphics.
  983. - --
  984. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  985.     ``Ain't it funny that they all fire the pistol,     
  986.       at the wrong end of the race?''--PDBT     
  987. legalize@xmission.com    <http://www.eden.com/~thewho>
  988.  
  989. - --------------------------------------------------------------
  990. Thanks for using Fractdev, The Fractint Developer's Discussion List
  991. Post Message:   fractdev@lists.xmission.com
  992. Get Commands:   majordomo@lists.xmission.com "help"
  993. Administrator:  twegner@phoenix.net
  994. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  995.  
  996. ------------------------------
  997.  
  998. End of fractdev-digest V1 #24
  999. *****************************
  1000.  
  1001.