IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2012/03/09)2012/03/10 
Robin_Watts mvrhel: Ping?00:11.52 
  Hey? I'm very confused. I did NOT push the HPGL path handling to the main repo.00:14.48 
  $ git logg -2000:15.10 
  * e666e1e (HEAD, master) Support HPGL style path handling.00:15.12 
  * 91b362b (origin/master, origin/HEAD) Fix typo in last commit that stopped Memento builds working.00:15.14 
  * c66ce76 Updated Memento pulled in from mupdf. Plus nesting fixes.00:15.15 
sebras Robin_Watts: openjpeg 1.5.0 broke my linux-build...00:18.09 
Robin_Watts sebras: Everything else I've touched today has broken, so why not that too :(00:18.43 
  sebras: What's the error?00:18.59 
sebras Robin_Watts: No rule to make target `build/debug/opj_cidx_manager.o', needed by `build/debug/libopenjpeg.a'.00:19.18 
  I guess this is something in Makethird, but I never delved into that file...00:21.05 
  oh...00:21.28 
  ?-)00:21.33 
Robin_Watts Do you still have openjpeg-1.4 in your thirdparty dir?00:22.47 
  Cos it finds the files by using a wildcard search, and that will confuse it, I suspect.00:23.21 
sebras of course. 00:23.23 
  yes, it did. but unzipping the new thirdparty give complaints about the lack of freetype2...00:23.59 
Robin_Watts Eh?00:24.16 
sebras argh! ignore me...00:24.23 
Robin_Watts seems to have infected sebras :)00:24.40 
sebras there, sorry for the noise. :)00:25.23 
  argh! ignore me...00:30.00 
mvrhel oh Robin_Watts00:31.08 
  you still up?00:31.12 
Robin_Watts Just about.00:31.17 
mvrhel hehe00:31.26 
  ok one quick question00:31.29 
  so I see that the planar device allocates a regular memory buffer and then uses a clever set of pointers to get to the data 00:32.13 
  but I have an issue00:32.22 
  I am running a simple case where I have 9 components which means the depth in color info is 7200:32.45 
  and there are no memory prototypes for such a size00:32.57 
  I am trying to think of the best way to do this with out reeginnering the whole planar stuff00:33.47 
Robin_Watts If I remember correctly the standard memory layout for a planar block of w*h*n pixels is span*h*n bytes.00:34.06 
  where span is w rounded up to some alignment (8 bytes by default I think).00:34.30 
  BUT it's possible to use other layouts.00:34.39 
mvrhel ok. is the memproto type (e.g. mem32 mem64 etc) used just to allocate the space00:35.27 
Robin_Watts The default stuff effectively has h lines of C followed by h lines of M followed by h lines of Y etc.00:35.33 
  But it's possible to use other layouts.00:35.42 
mvrhel i.e. is there any reason I can't use a different one just make sure that the size is suffficient?00:35.46 
Robin_Watts The plib device allocates all it's own space.00:36.07 
mvrhel hmmm00:36.13 
Robin_Watts and it has line pointers set up so that we get 1 line of C, then 1 line of M then 1 line of Y then 1 line of Y, then back to C again.00:36.33 
mvrhel hold on 00:36.40 
  let me point you to where I am getting confuse00:36.48 
  d00:36.50 
Robin_Watts OK. This is dredging my memory here, so it'll take me a while to get back up to spee.d00:37.12 
mvrhel in gdevppla.c00:37.56 
  line 11800:38.01 
  hold on00:38.30 
Robin_Watts yeah, just nosing around there myself.00:38.46 
mvrhel actually line 11300:39.07 
  this heads in to gdevprn.c00:39.25 
Robin_Watts Line 113 is blank for me.00:39.33 
  gx_default_create_buf_device ?00:39.43 
mvrhel yes00:39.47 
  so that function00:40.03 
  it gets a prototype based upon the depth00:40.15 
Robin_Watts I believe plane_index = -1 for this case, right?00:40.30 
mvrhel which for me is 72 with my 9 components00:40.30 
  yes00:41.13 
  and so it fails to get mdproto00:41.26 
  and ends at that00:41.34 
Robin_Watts OK. So as you say, it gets a memory device for that number of bits.00:41.39 
  but why...00:41.42 
mvrhel are you asking me?00:42.05 
  or is that a rhetorical question 00:42.19 
Robin_Watts I'm thinking.00:43.12 
mvrhel I am sorry. I know its late00:43.25 
Robin_Watts gs_make_mem_device uses mdproto just to be able to call gx_device_init00:44.11 
mvrhel ok so let me fake it out so I get something and push on for a sec00:44.43 
Robin_Watts ah, it's worse that that.00:44.56 
mvrhel now I am at line 1047....00:45.06 
  gs_make_mem_device00:45.11 
Robin_Watts when it does the init it copies lots of things from mdproto into the new device, so we are going to need to give it a new device.00:45.38 
mvrhel which inits a bunch of stuf00:45.41 
Robin_Watts I suspect we need to make 'get_mem_device_for_bits' return a general 'larger than 64' prototype.00:46.16 
mvrhel yes00:46.29 
  so when are where are the planar buffers created?00:47.28 
Robin_Watts So copy mem_true64_device and blank out all the entries that you hope will never get called (like encode/decode_color etc)00:47.41 
mvrhel ok00:47.55 
Robin_Watts Right. So this wobbles its way through and ends up having made a fairly standard memory device.00:48.37 
  but no allocation has been done yet.00:48.45 
mvrhel oh ok00:48.50 
Robin_Watts Then we return to gdev_prn_create_buf_planar00:48.55 
mvrhel yes, and the the set_planar00:49.10 
  then the..00:49.14 
Robin_Watts and that has a call to gdev_prn_set_planar.00:49.15 
mvrhel and then mem_set_planar00:49.25 
  which does another gdev_mem_device_for_bits based upon bit depth00:49.41 
Robin_Watts That overrides all the device functions with planar ones.00:49.51 
mvrhel ok00:50.04 
  when is the buffer created?00:50.11 
Robin_Watts Look at the next function: gdev_prn_size_buf_planar00:51.07 
  That says how big the buffer needs to be.00:51.34 
mvrhel shoot I have to go pick up kids at piano now...00:52.15 
Robin_Watts That's assigned to pdev->printer_procs.buf_procs.size_buf_device00:52.16 
  So we need to look where that's called.00:52.24 
mvrhel Robin_Watts: yes. I can poke at that tonight then00:52.36 
  thanks for helping me 00:52.45 
Robin_Watts I'll keep poking and burbling for a bit. have a good weekend.00:52.48 
mvrhel ok thanks00:52.56 
  so do I need to create a whole new version of gdevm64.c?00:53.05 
  for a generic prototype to use?00:53.29 
Robin_Watts gdev_prn_allocate seems to call size_buf_device.00:53.40 
  Possibly, yes.00:53.47 
mvrhel gtg. bbiab00:53.51 
Robin_Watts cyl.00:53.58 
  mvrhel: I wonder if you wouldn't be better off walking through a complete example that uses <64 bits before trying one > 64bits.01:21.28 
  A lot of the functions in gdevm64 are to do with fill_rect etc, and you shouldn't need to implement them.01:22.28 
  so gdevmx (or gdevmbig or whatever you call it) will hopefully be smaller.01:23.06 
mvrhel oh good idea. i will work on that 01:58.15 
  Robin_Watts: for the logs. Creating a dummy memory prototype "imagex" seems to have solved the problems. thanks for point me to this. now I am making it all the way into clist playback. 06:46.43 
  and I am passing my data through the clist. good way to end the night06:55.52 
sebras Robin_Watts: are you here?23:36.54 
  most likely not, but hey, I can always try. :)23:37.09 
  in draw/draw_scale.c:add_weight() there is a comment "Ensure i is in range" below which you clamp i and return. this only clamps the function argument i, not the value passed to the function. is this really what you intended?23:38.53 
 Forward 1 day (to 2012/03/11)>>> 
ghostscript.com
Search: