IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2015/07/16)20150717 
jgcoded Hi, I'm using the mupdf 1.6 library. I'm trying to load a pdf document that is stored in memory, but I can load the same pdf when I load it as a file. When I try to load the pdf via a stream the program outputs: "error: expected object number" and "error: cannot parse object (4 0 R). I'm actually using another library that wraps around libmupdf. This the their code that opens the pdf document from a stream: http://pastebin.com/04:21.22 
  Is that the correct way to load the pdf document from a stream?04:21.32 
  stream/memory04:21.39 
  I'm downloading the pdf from the internet and I have it stored in memory04:21.53 
  What's funny is that if I save the the data I downloaded as a pdf file and use mupdf to open the file using its filename, it opens just fine04:23.01 
  I am able to get the pdf document file author, creator, etc through code, but it's whenever I try to get a page that I receive those errors04:29.49 
  my code outputs that there is 1 page, so I try to load page at index 0 and then I get those errors04:32.17 
  any examples of loading in a pdf file from memory?06:40.07 
  ah never mind06:43.51 
  I resolved all of my issues06:44.02 
sebras e08:17.49 
kens f?08:17.57 
sebras ok... that was unnecessary.08:17.58 
Robin_Watts g!08:22.41 
malc_ bash.org worthy conversation09:07.03 
Robin_Watts chrisl: After falling out of the idiot tree yesterday and seemingly hitting every branch on the way down, I seem to have pages being produced with gs inside android mupdf.10:28.37 
  No fonts though.10:28.43 
  Line art works.10:28.52 
kens is glad it wasn't the subclassing code. Had me worried when I read the logs.....10:29.02 
Robin_Watts And I get a single cjkv glyph.10:29.19 
  which is interesting, cos it's not in the original file :)10:30.45 
chrisl That's strange - if it can't find the fonts, I'd expect it to error out]10:31.17 
Robin_Watts yeah.10:31.36 
chrisl I guess you could try adding -dDisableFAPI to the command line - that might eliminate Freetype as the problem (or not)10:32.42 
Robin_Watts Actually, I see some fonts on page 1.10:57.19 
  but images are missing from there.10:58.20 
chrisl I'd be tempted to try to get it run without a clist to eliminate that can of worms11:00.10 
Robin_Watts good idea.11:01.56 
  down to 72dpi should stop clist being used.11:02.09 
  ok, so tiger.pdf works.11:09.43 
  no, wait ignore me, it almost works :)11:10.16 
  I'm screwing up the edge of it on display, but other than that it looks OK.11:10.53 
chrisl That's all line work, iirc11:11.20 
Robin_Watts yeah.11:11.24 
  pdf_reference17.pdf doesn't show anything.11:11.47 
chrisl So, how about trying "tests/pdf/text_graphic_image.pdf"11:14.08 
Robin_Watts will try that in a mo.11:15.14 
chrisl Robin_Watts: I think it might be a good idea to hookup stdout and stderr handlers so you can see the backchannel11:16.16 
Robin_Watts breakpointing s_process_write_stdout or whatever it was ,worked well.11:16.55 
chrisl If you're trying to decipher several lines, that's going to get tedious11:17.54 
Robin_Watts chrisl: yeah. I'll look at that in a mo.11:18.11 
  just trying to fix the edge of tiger, as I think I know what's wrong.11:18.22 
  OK, tiger (non-clist) works.11:19.30 
  Let me try tiger (clist).11:19.36 
  tiger works with clist too.11:22.15 
  chrisl: OK, what do you reckon the best way to hook stdin/stdout is?11:23.44 
  There is a mechanism in gsapi for that, right?11:23.55 
  But AIUI, that only hooks postscript emitted stuff.11:24.09 
  I guess that's enough for now.11:24.28 
jogux robin: freopen stdout/stderr to a file?11:25.53 
chrisl gsapi_set_stdio()11:30.09 
  Robin_Watts: ^^11:30.13 
  But jogux's suggestion might be better - do it early, and you'll get output from mupdf, too11:31.14 
Robin_Watts jogux: Yeah, to a file is a pain in the ass though. Just awkward to read.11:31.51 
jogux robin_watts: adb shell cat foo.txt ?11:32.05 
  or adb shell cat foo.txt > blah.txt11:32.27 
  actually there's an adb copy/fetch or whatever, that would make more sense :)11:32.54 
Robin_Watts Or... http://stackoverflow.com/questions/10531050/redirect-stdout-to-logcat-in-android-ndk11:32.55 
  That might get me stdout appearing in the console with no code changes. Let me try that.11:33.08 
jogux coo, that's handy.11:33.30 
Robin_Watts but doesn't seem to work for me :(11:35.29 
jogux is your device rooted?11:35.56 
Robin_Watts no. And I don't want to root it either.11:36.19 
jogux ah. I bet that's it then.11:36.39 
Robin_Watts I can run the shell, and run the commands.11:36.46 
  When I try to install it seems to add a -Xlog.redirect-stdio option, and that fails.11:37.06 
  I'll try the freopen this.11:37.22 
  thing.11:37.24 
  If I root the phone I can't run my internet banking app, so I'd rather not do that :)11:42.10 
chrisl Well, gsapi_set_stdio() *should* get you everything from Ghostscript (but you might miss some stuff from third party libs)11:43.40 
Robin_Watts chrisl: Does it get the dlprintf stuff too?11:45.58 
  I guess it should11:46.40 
chrisl I believe so, yes11:46.49 
  Robin_Watts: I take it you are only running PDFs?11:49.29 
Robin_Watts yeah11:49.39 
chrisl So you should probably (for now) also use -dPDFSTOPONERROR11:50.05 
Robin_Watts http://pastebin.com/pnxHhQ8Q11:50.56 
  It's run page 1 and page 2 (2 separate runs)11:51.09 
  No obvious errors or warnings there.11:51.23 
chrisl No, that is odd11:52.00 
  I'm tempted to suggest using a known broken file, and check you get the expected warnings from it11:53.11 
Robin_Watts I've pulled back the rendered gprf file, and it looks strange. I suspect the fault lies in my device rather than anywhere else.12:04.46 
  All the offsets seem to have the top 8 bytes 0.12:05.30 
  top 6 bytes of 8, zero, sorry.12:05.42 
chrisl Well, it can't be endian..... did you use longs?12:06.29 
Robin_Watts no.12:06.45 
chrisl what about adding in maybe ppraw and checking that works?12:07.26 
  Or even just the bit device(s)12:07.40 
Robin_Watts chrisl: Yeah.12:10.26 
  Gah. I can't understand the values from the gproof device on windows, and it's WORKING there :)12:14.41 
  oh, ffs. stupid emacs hexl-mode is confusing me.12:29.38 
malc_ Robin_Watts_: there are better hex editors out there...12:37.11 
kens chrisl Robin_Watts do either of you know anything about the clip intersection code in Ghostscript ?12:39.47 
Robin_Watts malc_: Yeah, but !Zap isn't available on any modern OS :)12:39.52 
  kens: A bit.12:39.56 
kens I've got a weird problem, I have a PS file with 2 clips one after another. Neither is a rectanlge, thery are rhomboids I thnk12:40.28 
malc_ Robin_Watts: mcview is okay for light hex viewing/editing.. on windows far12:40.29 
kens When I execute cpath_is_rectangle() it comes back saying the current clip is are a rectangle12:41.20 
  If I write that rectanlge, the clip is incorrect. If I instead write the two clip paths then the result is correct.12:41.46 
Robin_Watts kens: That sounds like a bug.12:41.58 
kens I would thnk so, but I'm not certain12:42.22 
  THe inner box of the clip is the same as hte bbox of the path, and the apth is not valid (because its a cli list created by the intersection of 2 paths), so we decide that its a rectangle, whch feels correct.12:43.22 
  But the numbers in the rectangles look wrong. Like they were reounded up to an int12:43.43 
  Err I should say the numbers in the bbox'es12:44.09 
Robin_Watts The inner bbox of the clip should NOT be the same as the bbox of the path, should it ?12:44.22 
kens If its a rectnagle, sure12:44.31 
Robin_Watts But for the original clipping paths ?12:44.44 
kens Neither path is a rectnagle12:44.53 
  But its conceivable the result is, I'll need to check12:45.02 
kens goes off to draw some pictures12:45.13 
Robin_Watts chrisl: OK, ppmraw is giving me the same blank results.12:52.38 
chrisl :-(12:53.33 
  Robin_Watts: So, do you have a page of pure text that shows the problem?12:56.03 
kens OK I don't believe either of these clips is rectangular, and I don't believe the intersection is either. BUT it might just depend on the resolution because we actually execute a fill to figure out the rectangle list. Potentially if I change the resolution ths will alter......12:56.32 
Robin_Watts chrisl: Page 1 of pdf_reference17.pdf12:56.34 
  Let me try cutting that down to a 1 page file.12:56.43 
  OK, even a 1 page file comes out blank.13:06.01 
  And all the fonts are embedded, I believe.13:06.07 
chrisl OKay, break point in gs_fapi_finish_render() and see what's happening in there13:06.29 
Robin_Watts ok, I am there.13:07.23 
  I see the data is "PDF Ref"13:07.44 
  and we get a raster, not an outline.13:08.27 
chrisl Does the raster have meaningful values in it?13:08.42 
Robin_Watts and we're using the gs cache.13:08.44 
  rast.width = 013:09.07 
chrisl That's bad.....13:09.25 
  I guess I should run it here..... it might be a notdef glyph13:10.21 
Robin_Watts gs_fapi_ft_get_char_raster has s->bitmap_glyph as a whole bunch of 0's.13:10.36 
  but advance.x is non-zero, and so is the library pointer.13:11.03 
  Is there an earlier place I can breakpoint?13:11.31 
chrisl gs_fapi_do_char13:11.44 
Robin_Watts I'm going to grab some lunch, but will step through that afterwards. Thanks!13:12.14 
chrisl at 72dpi, the first glyph width x height should be 22 x 3313:13.54 
Robin_Watts chrisl: OK. I'm in 'load_glyph' in fapi_ft.c13:57.22 
  and it's calling FT_Load_Glyph with index = 0. That's gonna be bad, right?13:57.36 
kens sounds like a notdef13:58.00 
Robin_Watts I could run Chrome Remote Desktop here, and let chris poke at the debug if he wants.13:59.14 
  gs_fapi_do_char. gs_glyph index = 80 on entry.14:00.41 
  That's P I suspect.14:00.54 
  chr = 80 too.14:01.07 
  (I notice in passing that gxfapi.c has lots of code = foo(); code = bar(); code = baz(); with no intermediate checking of code.14:03.54 
kens probably to silence compiler14:04.30 
Robin_Watts possibly. Though I prefer (void) for that.14:05.05 
  but that's as may be.14:05.19 
  I have a font_scale with an HWResolution of 19660800.14:06.04 
chrisl These are Type 1 fonts, so we don't use the character code, we use a glyph name14:06.18 
  What resolution are you running at?14:07.37 
Robin_Watts 300, so that makes sense.14:09.02 
  is_type1 = 114:10.07 
chrisl I just said that.....14:10.21 
Robin_Watts You did, sorry, was just burbling results as I passed them as I step through.14:11.08 
  I'm back to the call to FT_Load_Glyph now.14:11.21 
  index = 0. load_flags = 0x300a14:11.48 
  So how does it know what glyph to load?14:11.56 
chrisl I just said that.....^^^^14:12.08 
Robin_Watts You said it uses a glyph name, but I can't see where that is passed.14:12.43 
chrisl Put a breakpoint in get_fapi_glyph_data()14:12.52 
Robin_Watts Is that pickled into the ft_face already?14:13.01 
chrisl It's stored somewhere in there14:13.33 
  it's in gs_fapi_font.char_data14:15.32 
Robin_Watts FT_Outline_Get_CBox is returning me a 0 sized box.14:16.07 
chrisl I'd expect so since the bitmap is zero sized14:16.50 
Robin_Watts I think the bitmap is 0 sized because that's returning 0, not the other way around.14:17.35 
chrisl Right, so what happened in get_fapi_glyph_data() ?14:18.23 
Robin_Watts Haven't hit that yet.14:18.31 
  I may need to rerun if it gets hit before this function is called.14:18.43 
chrisl You should have, if you haven been through, you don't have a charstring14:19.03 
Robin_Watts OK, that's never being hit.14:19.25 
  Would you like to share my screen as I debug?14:20.21 
chrisl I don't know if I can.....14:20.40 
Robin_Watts Do you have Chrome installed?14:20.47 
chrisl Yeh, I do14:20.57 
  Actually, I hace chromium14:21.09 
Robin_Watts Install 'Chrome Remote Desktop' extension.14:21.10 
  That should be fine.14:21.30 
chrisl Okay, it's installed, and apparently to control *EVERYTHING*14:23.24 
  BTW, this is a Type 1C font, so it's effectively CFF......14:24.16 
Robin_Watts I'll give you code via PM.14:24.38 
henrys mvrhel_laptop: welcome back14:28.42 
marcosw chrisl: I haven't had a chance to work on the cluster code for the build_consolidation branch. I expect to have time this weekend, so hopefully will have something by monday14:32.46 
chrisl marcosw: okay. I haven't changed anything of significance to you except fixing that distillerparams issue you found14:33.58 
  Mostly it's been arsing around with windows stuff14:34.17 
henrys marcosw: after customers that is the priority, we want to beat on this as much as possible before release14:39.00 
chrisl Robin_Watts: I bet I know what the issue is......14:48.43 
marcosw henrys: understood.14:57.21 
Robin_Watts chrisl: ooh, go on...15:00.54 
chrisl Freetype - it's in both gs and mupdf, and probably different versions15:01.15 
Robin_Watts chrisl: AH!15:01.26 
chrisl I'm a little surprised you didn't get a linker error15:01.33 
Robin_Watts Hmm.15:02.25 
  Years ago, on RISC OS I had a tool that would allow me to globally rename/hide functions within a lib.15:03.12 
chrisl So, I would guess if you set SHARE_FT=1 and set FT_CFLAGS=-I<path to mupdf thirdparty>/freetype/include it might help15:03.21 
Robin_Watts chrisl: Ah, cunning. Will try.15:03.36 
chrisl (because I'm assuming that will be easier than trying to make mupdf use the freetype objects gs builds.......)15:04.34 
  Robin_Watts: Then there will be similar issues with jbig2dec, jpeg, openjpeg (which might explain missing images) and zlib - openjpeg in particular probably harder to resolve15:07.05 
Robin_Watts chrisl: I was considering some macro hackery to change the name of freetype entrypoints etc.15:07.23 
  ISTR that jpeg already has something like that.15:07.36 
chrisl Robin_Watts: You need to rename every non-static function, not just the defined entrypoints - could get messy15:08.18 
Robin_Watts chrisl: yeah :(15:08.50 
chrisl jpeg, jbig2dec and zlib may be less of an issue if both mupdf and gs use the same version15:09.30 
  Robin_Watts: For jpeg, jbig2dec and zlib, the same trick as I suggested for freetype would probably work. openjpeg I am less sure about, since we don't actually support linking to a shared openjpeg (even unofficially)15:12.05 
Robin_Watts Damn, that didn't seem to help.15:14.44 
  Let me try that again just in case I screwed something up.15:15.02 
  chrisl: There is a SHARE_JPX flag.15:16.34 
chrisl Robin_Watts: Yeh, but that doesn't apply to openjpeg15:16.55 
Robin_Watts So, I've set SHARE_JPEG=115:22.43 
  I've changed JSRCDIR from jpeg to ../../mupdf.git/thirdparty/jpeg15:23.14 
  and it fails to find jpeglib.h15:24.01 
  I guess I need to add some -I stuff somewhere?15:24.49 
chrisl Try adding it to the overall CFLAGS for the whole build15:25.10 
Robin_Watts Adding it in GCFLAGS finds jpeglib.h, but then fails to find jconfig.h15:25.43 
  Is there ordering gubbins with -I stuff?15:26.06 
  files found in earlier search paths can't include from later ones?15:26.24 
chrisl Yes, but it shouldn't really matter15:26.37 
Robin_Watts -I./obj is after -I.....jpeg15:27.04 
  http://pastebin.com/pwLr2BBR15:28.54 
  Ah, that's cos .obj doesn't have jconfig.h15:29.52 
mvrhel_laptop good morning. Thanks henrys. Its good to be back. We had some great weather on mt. Rainer15:30.04 
Robin_Watts chrisl: Isn't jconfig.h supposed to be generated as part of the build? Or does that not happen for shared stuff?15:31.14 
chrisl It should be copied from base, I think15:31.57 
  Robin_Watts: see lines about 101 in base/jpeg.mak15:32.58 
Robin_Watts We use our own jconfig.h and jmorecfg.h iff we aren't sharing the library.15:34.31 
chrisl Yeh. Clearly mupdf does something else to get those15:34.50 
Robin_Watts yeah. Found it. Ta.15:35.56 
  The compilation of mkromfs.c is unhappy when SHARE_ZLIB=115:55.11 
  possibly a cross compilation thing?15:55.41 
chrisl yeh15:55.52 
Robin_Watts I'll add -lz onto the AUXEXTRALIBS15:56.44 
  Urgh. MuPDF doesn't build compression into zlib or jpeg. Need to hack those build files too.16:19.06 
fredross-perry folks, I am out of the office today.16:20.15 
Robin_Watts chrisl: When linux links, it has a rule that no lib can use anything that is in an earlier library, right?16:34.02 
chrisl By default, yes, you should get a multiple definitions error16:34.31 
Robin_Watts so linking a b c, a can use stuff in b and c, but b and c can never use stuff in a, and c can never use stuff in b.16:34.31 
chrisl Sorry wrong end of the stick16:34.50 
Robin_Watts And I was linking mupdfcore mupdfthirdparty gs16:34.57 
  which makes me think we should have been fine.16:35.14 
chrisl Maybe - I didn't think ordering was that important these days16:35.43 
Robin_Watts cos now when I'm linking "mupdfcore mupdfthirdparty gs", I get told that I'm missing jpeg and zlib entrypoints etc.16:35.44 
  And when I link "gs mupdfcore mupdfthirdparty", I get told no gsapi_new_instance etc.16:36.17 
chrisl ugh, okay :-(16:36.45 
  Robin_Watts: I can only go back to my original suggestion of using -dDisableFAPI for now, and I'll try to get something I can debug locally next week17:05.42 
Robin_Watts chrisl: Don't sweat it.17:06.13 
henrys chrisl: so this would be an issue for gsview also if we didn't invoke gs as a process?17:06.46 
chrisl I wouldn't have thought so, gsview uses the gs dll17:07.12 
mvrhel_laptop windows version uses the api17:07.24 
  linux version does a process17:07.33 
chrisl mvrhel_laptop: yes, but via the DLL, not a static library (windows)17:08.26 
Robin_Watts I *could* call as a process, but it involves a horrible hack whereby I have to copy the exe out onto the storage card to call it.17:08.28 
mvrhel_laptop yes17:08.34 
chrisl Robin_Watts: Is that really an issue for a proof of concept for a show??17:08.59 
Robin_Watts chrisl: possibly not. I can revert to that if I have to.17:09.12 
  Or I could look at calling gs as a .so17:09.29 
jogux Robin_Watts: are you still stuck with unknown symbols?17:09.57 
Robin_Watts jogux: only for the last couple of minutes :)17:10.20 
chrisl that may not help - .so libraries are less segregated that windows DLLs17:10.30 
henrys mvrhel_laptop: I'd like fredross-perry to look at that, using the api, it'd be worthwhile for us to know that kind of thing works okay17:10.41 
mvrhel_laptop henrys: yes I agree17:11.03 
marcosw_ chrisl: are you still about?17:11.05 
jogux Robin_Watts: the 'fix' for unknown symbols due to linker order is adding a bunch of (void)libjpeg_main; or whatever to something that is passed to the linker as a .o file (eg. probably oyur main .c file)17:11.06 
  ie. make something at the very beginning of the change pull the symbol in and then the -l ordering becomes less relevant.17:11.41 
  s/change/chain/17:11.46 
Robin_Watts The easy fix is to just mention the libs twice on the linker line :)17:11.52 
jogux oh, that works too :-)17:11.57 
chrisl marcosw_: for a *very* short time.....17:12.13 
Robin_Watts Which is a bit grotty cos I'm using the android 'not makefiles honest'.17:12.16 
jogux Robin_Watts: urgh.17:12.24 
Robin_Watts but I'll be happy if it works for now.17:12.37 
fredross-perry linux and mac versions use gs as a process.17:12.44 
  what exactly should I look at? I can do it Monday17:13.01 
henrys fredross-perry: using the same api mvrhel_laptop uses on windows, not a process17:13.32 
fredross-perry oh I see, have the API call gs as a .so?17:13.41 
  Does the api have progress callback or some other mechanism like it?17:14.02 
marcosw_ chrisl: just a quick comment: the binaries for the build_consolidation branch are larger than those for master, gs goes to 30 megs from 24 megs and pcl and xps go to 30 megs from 14 megs. 17:14.03 
chrisl marcosw_: is that with the *current* code in my repo?17:14.37 
henrys fredross-perry: you just need to do whatever mvrhel_laptop did ;-)17:14.38 
mvrhel_laptop fredross-perry: you can see how I do the call in ghostscharp.cs17:14.40 
  oops17:14.44 
  ghostsharp.cs17:14.49 
marcosw_ chrisl: no, let me check with that.17:14.59 
henrys mvrhel_laptop: I haven't looked you are depending on check interrupts or anything like that are you?17:15.34 
  s/are/aren't17:15.45 
Robin_Watts WTF.17:16.15 
mvrhel_laptop henrys: I am hooked in and monitoring the stdout ad stderr17:16.16 
  and17:16.19 
Robin_Watts W.T.F.F.17:16.25 
  Why does gs start a jpeg compression thing as it starts up?17:16.50 
  Something to do with put params in pdf_write.17:17.03 
mvrhel_laptop probably the same reason it installs pdfwrite every time17:17.06 
  hey I was right!17:17.17 
chrisl It's pdfwrite - it's part of reading the device params into the Postscript world17:17.20 
  Robin_Watts: ^^17:17.24 
mvrhel_laptop that really bothers me17:17.49 
Robin_Watts me too, but then I don't understand the reason why pdfwrite is 'special'.17:18.18 
  jpeg is now SEGVing on startup.17:19.08 
chrisl marcosw_: actually, scratch that - there's a commit missing. I'll fix it over the weekend.......17:19.18 
  I *really* have to go now......17:19.25 
Robin_Watts chrisl: Have a good weekend.17:19.38 
henrys chrisl: have a good weekend chrisl 17:19.38 
marcosw_ chrisl: okay, have a good weekend.17:19.39 
Robin_Watts So, the basic state of play is that I can build something that works on android for line art.17:19.54 
chrisl Thanks all!17:19.55 
Robin_Watts For text and images it doesn't work so well.17:20.19 
  The theory was that this might be to do with shared libs, but I'm not so sure now.17:20.36 
henrys Robin_Watts: that's a big step17:20.44 
  maybe altona doesn't need text ;-)17:21.38 
Robin_Watts Ok, let's try the .so way of working. I think that should be safer.17:24.50 
  Any call made by a function within a .so should only cross out to somewhere else if it's not defined in the .so, I think.17:25.21 
  So having gs and all its libs in a .so should be self contained enough.17:25.38 
jogux Robin_Watts: sounds right to me.18:46.58 
  Robin_Watts: tbh I think we'd be fine to use so/dlls on iOS (when it comes to that) too. It means we're restricted to iOS 8.0 or higher, but that sounds okay to me.18:47.49 
  I was tempted to try tweaking the iOS mupdf to using the system libz / libjpeg / etc but never got around to it.18:48.37 
  I guess possibly we could try that on Android too assuming it has those. Reducing binary size is always good...18:50.41 
Robin_Watts yeah.18:51.04 
  BINGO!!!!!19:03.08 
  I have the .so version working.19:03.13 
  And that shows text.19:03.17 
  I'm missing some graphics from the front of this doc, but they might be in a spot color.19:05.19 
  which means it might be something in the gs end.19:05.31 
  And tiger works fine.19:10.05 
  And images (well, gradients) seem to work too.19:14.06 
  mvrhel_laptop: So, I think I've got it working.19:14.17 
  But there are a couple of problems with the gs output.19:14.30 
  1) Any spot colors won't be being combined into the rgb at the moment.19:14.54 
  2) There don't appear to be equivalent colors for the cmyk.19:15.06 
  Takes a while to render pages, but it's stonkingly fast when that's done.19:15.44 
  I'll get that all tidied up on monday and put a version up for people to play with later.19:16.10 
mvrhel_laptop Robin_Watts: Awesome19:29.12 
  I think I am going to rework this one scroll/zoom/tile issue in gsview. the approach I chose is having issues due to when the timing of the ui updates vs my computation of the tile boundaries. instead I will let the ui get its self updated and then I will do the tile.19:32.14 
  this is only an issue in the zooming case19:32.23 
  standard scrolling works great19:32.31 
  lunch time now though19:34.27 
  yeah! my delayed tile rendering works much better and the code is so much cleaner.21:25.58 
  grrr that damn 3001 page stress file is giving me some headaches21:53.10 
  doing some rapid scrolling actually caused a crash in mupdf 21:53.52 
  very odd21:53.55 
  during the rendering of a display list21:54.14 
  trying to free a color space...21:54.42 
  digging further21:55.39 
 Forward 1 day (to 2015/07/18)>>> 
ghostscript.com
Search: