From: David R. <d_...@nc...> - 2000-04-02 01:42:46
|
I have downloaded the newest Epson 1520 Windows driver and have generated the following new print files: http://www.nccn.net/~w_rosky/dsr/e720new.prn.gz This is a new version of the 720dpi "microweave" print file. http://www.nccn.net/~w_rosky/dsr/e1440new.prn.gz This is a new version of the 1440dpi microweave print file. http://www.nccn.net/~w_rosky/dsr/e1440newFO.prn.gz The new driver has an additional microweave mode called "Super" which is only available at 1440dpi on certain printers and generates something called "full overlap microweave". According to the help file, this mode helps reduce banding even more than standard microweave. Indeed, one of my blue nozzles is currently partially clogged and this mode did actually show less banding than the normal microweave mode; however, it showed ever-so-slightly more grain. Let me know if there are any additional testing or print files that would be helpful. -David |
From: Robert L K. <rl...@al...> - 2000-04-02 02:45:41
|
Date: Sat, 01 Apr 2000 16:21:32 -0800 From: David Rosky <d_...@nc...> http://www.nccn.net/~w_rosky/dsr/e1440newFO.prn.gz The new driver has an additional microweave mode called "Super" which is only available at 1440dpi on certain printers and generates something called "full overlap microweave". According to the help file, this mode helps reduce banding even more than standard microweave. Indeed, one of my blue nozzles is currently partially clogged and this mode did actually show less banding than the normal microweave mode; however, it showed ever-so-slightly more grain. I don't know why it would show more grain (unless it's due to your partially clogged nozzle), but it certainly should reduce banding. It uses a spacing of 15 rows consistently. It's basically equivalent to our "1440 dpi highest quality" mode. Let me know if there are any additional testing or print files that would be helpful. That should be enough to get me started. Could you try the following patch? It's possible that it won't compile; my sandbox is currently broken because of some code I'm working on; in that case, my apologies. If it works, could somebody check it in? Index: print-escp2.c =================================================================== RCS file: /cvsroot/gimp-print/print/print-escp2.c,v retrieving revision 1.119 diff -c -r1.119 print-escp2.c *** print-escp2.c 2000/03/27 13:51:09 1.119 --- print-escp2.c 2000/04/02 02:35:20 *************** *** 77,83 **** int, int); static void *initialize_weave(int jets, int separation, int oversample, int horizontal, int vertical, ! colormode_t colormode, int width, int linewidth); static void escp2_flush(void *, int model, int width, int hoffset, int ydpi, int xdpi, FILE *prn); static void --- 77,84 ---- int, int); static void *initialize_weave(int jets, int separation, int oversample, int horizontal, int vertical, ! colormode_t colormode, int width, int linewidth, ! int vertical_row_separation); static void escp2_flush(void *, int model, int width, int hoffset, int ydpi, int xdpi, FILE *prn); static void *************** *** 119,124 **** --- 120,126 ---- int right_margin; int top_margin; int bottom_margin; + int separation_rows; } escp2_printer_t; #define MODEL_INIT_MASK 0xf *************** *** 202,250 **** (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, -1, INCH_8_5, INCH_14, 14, 14, 9, 49 }, /* 1: Stylus Color Pro/Pro XL/400/500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 48, 6, 48, 720, -1, 1, INCH_8_5, INCH_14, 14, 14, 9, 49 }, /* 2: Stylus Color 1500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_NO | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, 1, INCH_11, INCH_17, 14, 14, 9, 49 }, /* 3: Stylus Color 600 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49 }, /* 4: Stylus Color 800 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 64, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49 }, /* 5: Stylus Color 850 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 128, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49 }, /* 6: Stylus Color 1520/3000 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 1, 1, 128, 720, -1, 2, INCH_16_5, INCH_24, 8, 9, 9, 49 }, /* SECOND GENERATION PRINTERS */ --- 204,252 ---- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, -1, INCH_8_5, INCH_14, 14, 14, 9, 49, 1 }, /* 1: Stylus Color Pro/Pro XL/400/500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 48, 6, 48, 720, -1, 1, INCH_8_5, INCH_14, 14, 14, 9, 49, 1 }, /* 2: Stylus Color 1500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_NO | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, 1, INCH_11, INCH_17, 14, 14, 9, 49, 1 }, /* 3: Stylus Color 600 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49, 1 }, /* 4: Stylus Color 800 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 64, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49, 1 }, /* 5: Stylus Color 850 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 128, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49, 1 }, /* 6: Stylus Color 1520/3000 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 1, 1, 128, 720, -1, 2, INCH_16_5, INCH_24, 8, 9, 9, 49, 4 }, /* SECOND GENERATION PRINTERS */ *************** *** 253,273 **** (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49 }, /* 8: Stylus Photo EX */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_11, INCH_17, 9, 9, 9, 49 }, /* 9: Stylus Photo */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49 }, /* THIRD GENERATION PRINTERS */ --- 255,275 ---- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49, 1 }, /* 8: Stylus Photo EX */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_11, INCH_17, 9, 9, 9, 49, 1 }, /* 9: Stylus Photo */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49, 1 }, /* THIRD GENERATION PRINTERS */ *************** *** 277,297 **** (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 21, 7, 64, 720, 2, 3, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 11: Stylus Color 640 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 32, 8, 64, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 12: Stylus Color 740 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 3, INCH_11, INCH_17, 9, 9, 9, 18 }, /* 13: Stylus Color 900 */ /* Dale Pontius thinks the spacing is 3 jets??? */ --- 279,299 ---- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 21, 7, 64, 720, 2, 3, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 11: Stylus Color 640 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 32, 8, 64, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 12: Stylus Color 740 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 3, INCH_11, INCH_17, 9, 9, 9, 18, 1 }, /* 13: Stylus Color 900 */ /* Dale Pontius thinks the spacing is 3 jets??? */ *************** *** 300,334 **** (MODEL_INIT_900 | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 96, 2, 192, 360, 0, 1, INCH_11, INCH_17, 9, 9, 9, 18 }, /* 14: Stylus Photo 750, 870 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 15: Stylus Photo 1200, 1270 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_13, INCH_19, 9, 9, 9, 18 }, /* 16: Stylus Color 860 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 17: Stylus Color 1160 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_13, INCH_19, 9, 9, 9, 18 } }; --- 302,336 ---- (MODEL_INIT_900 | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 96, 2, 192, 360, 0, 1, INCH_11, INCH_17, 9, 9, 9, 18, 1 }, /* 14: Stylus Photo 750, 870 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 15: Stylus Photo 1200, 1270 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_13, INCH_19, 9, 9, 9, 18, 1 }, /* 16: Stylus Color 860 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 17: Stylus Color 1160 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_13, INCH_19, 9, 9, 9, 18, 1 } }; *************** *** 781,786 **** --- 783,790 ---- void * weave; void * dither; colormode_t colormode = COLOR_CCMMYK; + int separation_rows; + if (v->image_type == IMAGE_MONOCHROME) { colormode = COLOR_MONOCHROME; *************** *** 849,854 **** --- 853,859 ---- real_horizontal_passes = horizontal_passes; vertical_passes = res->vertical_passes; vertical_subsample = res->vertical_subsample; + separation_rows = res->separation_rows; if (use_softweave && escp2_xres(model) < 720) horizontal_passes *= 720 / escp2_xres(model); xdpi = res->hres; *************** *** 1072,1078 **** if (use_softweave) weave = initialize_weave(nozzles, nozzle_separation, horizontal_passes, vertical_passes, vertical_subsample, colormode, ! bits, out_width); else weave = NULL; --- 1077,1083 ---- if (use_softweave) weave = initialize_weave(nozzles, nozzle_separation, horizontal_passes, vertical_passes, vertical_subsample, colormode, ! bits, out_width, separation_rows); else weave = NULL; *************** *** 2019,2024 **** --- 2024,2033 ---- int lineno; int vertical_oversample; /* Vertical oversampling */ int current_vertical_subpass; + int separation_rows; /* Vertical spacing between rows. */ + /* This is used for the 1520/3000, which */ + /* use a funny value for the "print density */ + /* in the vertical direction". */ } escp2_softweave_t; #ifndef WEAVETEST *************** *** 2037,2043 **** static void * initialize_weave(int jets, int sep, int osample, int v_subpasses, int v_subsample, colormode_t colormode, int width, ! int linewidth) { int i; int k; --- 2046,2052 ---- static void * initialize_weave(int jets, int sep, int osample, int v_subpasses, int v_subsample, colormode_t colormode, int width, ! int linewidth, int separation_rows) { int i; int k; *************** *** 2058,2063 **** --- 2067,2073 ---- sw->vmod = sw->separation * sw->oversample; sw->horizontal_weave = osample; sw->pass_adjustment = (osample * sep + jets - 1) / jets; + sw->separation_rows = separation_rows; sw->weavefactor = (sw->njets + sw->separation - 1) / sw->separation; sw->jetsused = MIN(((sw->weavefactor) * sw->separation), sw->njets); *************** *** 2412,2418 **** sw->last_pass_offset = pass->logicalpassstart; else if (pass->logicalpassstart > sw->last_pass_offset) { ! int advance = pass->logicalpassstart - sw->last_pass_offset; int alo = advance % 256; int ahi = advance / 256; if (escp2_has_cap(model, MODEL_VARIABLE_DOT_MASK, MODEL_VARIABLE_4)) --- 2422,2429 ---- sw->last_pass_offset = pass->logicalpassstart; else if (pass->logicalpassstart > sw->last_pass_offset) { ! int advance = pass->logicalpassstart - sw->last_pass_offset - ! (sw->separation_rows - 1); int alo = advance % 256; int ahi = advance / 256; if (escp2_has_cap(model, MODEL_VARIABLE_DOT_MASK, MODEL_VARIABLE_4)) *************** *** 2478,2484 **** fprintf(prn, "\033.%c%c%c%c", 1, 8 * 5, 5, *linecount + pass->missingstartrows); else ! fprintf(prn, "\033.%c%c%c%c", 1, 5, 5, *linecount + pass->missingstartrows); break; } --- 2489,2495 ---- fprintf(prn, "\033.%c%c%c%c", 1, 8 * 5, 5, *linecount + pass->missingstartrows); else ! fprintf(prn, "\033.%c%c%c%c", 1, 5 * sw->separation_rows , 5, *linecount + pass->missingstartrows); break; } |
From: David R. <d_...@nc...> - 2000-04-03 05:15:27
|
Robert L Krawitz wrote: > > > I don't know why it would show more grain (unless it's due to your > partially clogged nozzle) The difference in grain was very, very slight. One thing that I noticed is that in the "super microweave" mode, the head moves at the faster speed used in 720dpi printing instead of the slower speed used in the normal 1440 microweave mode. Perhaps the reduced settling time causes the very slight change. > It uses a spacing of 15 rows consistently. It's basically equivalent to > our "1440 dpi highest quality" mode. > That's interesting. I wonder if maybe the best approach is to fix the softweave mode rather than trying to get the printer's microweave working. The problem with the original softweave modes seemed to be that the nozzle patterns and/or page advances were not being interpreted by the printer the way the driver thought they would be. If you could get those corrected you'd probably have it. > Let me know if there are any additional testing or print > files that would be helpful. > > That should be enough to get me started. Could you try the following > patch? It's possible that it won't compile; my sandbox is currently > broken because of some code I'm working on; in that case, my > apologies. If it works, could somebody check it in? > I tried the patch, but it didn't compile. Here's the error message: escp2-weavetest.c: In function `main': escp2-weavetest.c:112: too few arguments to function `initialize_weave' make: *** [escp2-weavetest.o] Error 1 -David |
From: Robert L K. <rl...@al...> - 2000-04-03 11:47:41
|
Date: Sun, 02 Apr 2000 22:09:44 -0700 From: David Rosky <d_...@nc...> > It uses a spacing of 15 rows consistently. It's basically equivalent to > our "1440 dpi highest quality" mode. That's interesting. I wonder if maybe the best approach is to fix the softweave mode rather than trying to get the printer's microweave working. The problem with the original softweave modes seemed to be that the nozzle patterns and/or page advances were not being interpreted by the printer the way the driver thought they would be. If you could get those corrected you'd probably have it. That's what I'm trying to do. > Let me know if there are any additional testing or print > files that would be helpful. > > That should be enough to get me started. Could you try the following > patch? It's possible that it won't compile; my sandbox is currently > broken because of some code I'm working on; in that case, my > apologies. If it works, could somebody check it in? > I tried the patch, but it didn't compile. Here's the error message: escp2-weavetest.c: In function `main': escp2-weavetest.c:112: too few arguments to function `initialize_weave' make: *** [escp2-weavetest.o] Error 1 Either do "make print", or add an extra argument of 1 at the end of the call to initialize_weave() in escp2-weavetest.c. -- Robert Krawitz <rl...@al...> http://www.tiac.net/users/rlk/ Tall Clubs International -- http://www.tall.org/ or 1-888-IM-TALL-2 Member of the League for Programming Freedom -- mail lp...@uu... Project lead for The Gimp Print -- http://gimp-print.sourceforge.net "Linux doesn't dictate how I work, I dictate how Linux works." --Eric Crampton |
From: Wendy R. G. C. K. C. <d_...@nc...> - 2000-04-03 17:03:03
|
Quoting Robert L Krawitz <rl...@al...>: > > Either do "make print", or add an extra argument of 1 at the end of > the call to initialize_weave() in escp2-weavetest.c. > I added the extra argument of 1 to the end of the call to initialize_weave in escp2-weavetest.c. It got a little further but still failed: print-escp2.c: In function `escp2_print': print-escp2.c:856: structure has no member named `separation_rows' print-escp2.c:786: warning: `separation_rows' might be used uninitialized in this function print-escp2.c: At top level: print-escp2.c:375: warning: `escp2_cap' defined but not used make: *** [print-escp2.o] Error 1 -David ----------------------------------------------------- This mail sent through IMP: http://web.horde.org/imp/ |
From: Robert L K. <rl...@al...> - 2000-04-03 23:29:03
|
Try this one: Index: print-escp2.c =================================================================== RCS file: /cvsroot/gimp-print/print/print-escp2.c,v retrieving revision 1.119 diff -c -r1.119 print-escp2.c *** print-escp2.c 2000/03/27 13:51:09 1.119 --- print-escp2.c 2000/04/03 23:17:19 *************** *** 77,83 **** int, int); static void *initialize_weave(int jets, int separation, int oversample, int horizontal, int vertical, ! colormode_t colormode, int width, int linewidth); static void escp2_flush(void *, int model, int width, int hoffset, int ydpi, int xdpi, FILE *prn); static void --- 77,84 ---- int, int); static void *initialize_weave(int jets, int separation, int oversample, int horizontal, int vertical, ! colormode_t colormode, int width, int linewidth, ! int vertical_row_separation); static void escp2_flush(void *, int model, int width, int hoffset, int ydpi, int xdpi, FILE *prn); static void *************** *** 119,124 **** --- 120,126 ---- int right_margin; int top_margin; int bottom_margin; + int separation_rows; } escp2_printer_t; #define MODEL_INIT_MASK 0xf *************** *** 202,250 **** (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, -1, INCH_8_5, INCH_14, 14, 14, 9, 49 }, /* 1: Stylus Color Pro/Pro XL/400/500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 48, 6, 48, 720, -1, 1, INCH_8_5, INCH_14, 14, 14, 9, 49 }, /* 2: Stylus Color 1500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_NO | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, 1, INCH_11, INCH_17, 14, 14, 9, 49 }, /* 3: Stylus Color 600 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49 }, /* 4: Stylus Color 800 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 64, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49 }, /* 5: Stylus Color 850 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 128, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49 }, /* 6: Stylus Color 1520/3000 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 1, 1, 128, 720, -1, 2, INCH_16_5, INCH_24, 8, 9, 9, 49 }, /* SECOND GENERATION PRINTERS */ --- 204,252 ---- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, -1, INCH_8_5, INCH_14, 14, 14, 9, 49, 1 }, /* 1: Stylus Color Pro/Pro XL/400/500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 48, 6, 48, 720, -1, 1, INCH_8_5, INCH_14, 14, 14, 9, 49, 1 }, /* 2: Stylus Color 1500 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_NO | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 1, 1, 1, 720, -1, 1, INCH_11, INCH_17, 14, 14, 9, 49, 1 }, /* 3: Stylus Color 600 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49, 1 }, /* 4: Stylus Color 800 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 64, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49, 1 }, /* 5: Stylus Color 850 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 64, 4, 128, 720, 0, 2, INCH_8_5, INCH_14, 8, 9, 9, 49, 1 }, /* 6: Stylus Color 1520/3000 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 1, 1, 128, 720, -1, 2, INCH_16_5, INCH_24, 8, 9, 9, 49, 4 }, /* SECOND GENERATION PRINTERS */ *************** *** 253,273 **** (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49 }, /* 8: Stylus Photo EX */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_11, INCH_17, 9, 9, 9, 49 }, /* 9: Stylus Photo */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49 }, /* THIRD GENERATION PRINTERS */ --- 255,275 ---- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49, 1 }, /* 8: Stylus Photo EX */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 32, 8, 32, 720, 0, 3, INCH_11, INCH_17, 9, 9, 9, 49, 1 }, /* 9: Stylus Photo */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_GENERIC | MODEL_GRAYMODE_NO | MODEL_1440DPI_NO), ! 32, 8, 32, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 49, 1 }, /* THIRD GENERATION PRINTERS */ *************** *** 277,297 **** (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 21, 7, 64, 720, 2, 3, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 11: Stylus Color 640 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 32, 8, 64, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 12: Stylus Color 740 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 3, INCH_11, INCH_17, 9, 9, 9, 18 }, /* 13: Stylus Color 900 */ /* Dale Pontius thinks the spacing is 3 jets??? */ --- 279,299 ---- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 21, 7, 64, 720, 2, 3, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 11: Stylus Color 640 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_NO), ! 32, 8, 64, 720, 0, 3, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 12: Stylus Color 740 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 3, INCH_11, INCH_17, 9, 9, 9, 18, 1 }, /* 13: Stylus Color 900 */ /* Dale Pontius thinks the spacing is 3 jets??? */ *************** *** 300,334 **** (MODEL_INIT_900 | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 96, 2, 192, 360, 0, 1, INCH_11, INCH_17, 9, 9, 9, 18 }, /* 14: Stylus Photo 750, 870 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 15: Stylus Photo 1200, 1270 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_13, INCH_19, 9, 9, 9, 18 }, /* 16: Stylus Color 860 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_8_5, INCH_14, 9, 9, 9, 18 }, /* 17: Stylus Color 1160 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_13, INCH_19, 9, 9, 9, 18 } }; --- 302,336 ---- (MODEL_INIT_900 | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 96, 2, 192, 360, 0, 1, INCH_11, INCH_17, 9, 9, 9, 18, 1 }, /* 14: Stylus Photo 750, 870 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 15: Stylus Photo 1200, 1270 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_YES | MODEL_720DPI_PHOTO | MODEL_VARIABLE_4 | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_1440DPI_YES), ! 48, 6, 48, 360, 0, 4, INCH_13, INCH_19, 9, 9, 9, 18, 1 }, /* 16: Stylus Color 860 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_8_5, INCH_14, 9, 9, 9, 18, 1 }, /* 17: Stylus Color 1160 */ { (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_6COLOR_NO | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_1440DPI_YES), ! 48, 6, 144, 360, 0, 2, INCH_13, INCH_19, 9, 9, 9, 18, 1 } }; *************** *** 781,786 **** --- 783,790 ---- void * weave; void * dither; colormode_t colormode = COLOR_CCMMYK; + int separation_rows = printer->separation_rows; + if (v->image_type == IMAGE_MONOCHROME) { colormode = COLOR_MONOCHROME; *************** *** 1072,1078 **** if (use_softweave) weave = initialize_weave(nozzles, nozzle_separation, horizontal_passes, vertical_passes, vertical_subsample, colormode, ! bits, out_width); else weave = NULL; --- 1076,1082 ---- if (use_softweave) weave = initialize_weave(nozzles, nozzle_separation, horizontal_passes, vertical_passes, vertical_subsample, colormode, ! bits, out_width, separation_rows); else weave = NULL; *************** *** 2019,2024 **** --- 2023,2032 ---- int lineno; int vertical_oversample; /* Vertical oversampling */ int current_vertical_subpass; + int separation_rows; /* Vertical spacing between rows. */ + /* This is used for the 1520/3000, which */ + /* use a funny value for the "print density */ + /* in the vertical direction". */ } escp2_softweave_t; #ifndef WEAVETEST *************** *** 2037,2043 **** static void * initialize_weave(int jets, int sep, int osample, int v_subpasses, int v_subsample, colormode_t colormode, int width, ! int linewidth) { int i; int k; --- 2045,2051 ---- static void * initialize_weave(int jets, int sep, int osample, int v_subpasses, int v_subsample, colormode_t colormode, int width, ! int linewidth, int separation_rows) { int i; int k; *************** *** 2058,2063 **** --- 2066,2072 ---- sw->vmod = sw->separation * sw->oversample; sw->horizontal_weave = osample; sw->pass_adjustment = (osample * sep + jets - 1) / jets; + sw->separation_rows = separation_rows; sw->weavefactor = (sw->njets + sw->separation - 1) / sw->separation; sw->jetsused = MIN(((sw->weavefactor) * sw->separation), sw->njets); *************** *** 2412,2418 **** sw->last_pass_offset = pass->logicalpassstart; else if (pass->logicalpassstart > sw->last_pass_offset) { ! int advance = pass->logicalpassstart - sw->last_pass_offset; int alo = advance % 256; int ahi = advance / 256; if (escp2_has_cap(model, MODEL_VARIABLE_DOT_MASK, MODEL_VARIABLE_4)) --- 2421,2428 ---- sw->last_pass_offset = pass->logicalpassstart; else if (pass->logicalpassstart > sw->last_pass_offset) { ! int advance = pass->logicalpassstart - sw->last_pass_offset - ! (sw->separation_rows - 1); int alo = advance % 256; int ahi = advance / 256; if (escp2_has_cap(model, MODEL_VARIABLE_DOT_MASK, MODEL_VARIABLE_4)) *************** *** 2478,2484 **** fprintf(prn, "\033.%c%c%c%c", 1, 8 * 5, 5, *linecount + pass->missingstartrows); else ! fprintf(prn, "\033.%c%c%c%c", 1, 5, 5, *linecount + pass->missingstartrows); break; } --- 2488,2494 ---- fprintf(prn, "\033.%c%c%c%c", 1, 8 * 5, 5, *linecount + pass->missingstartrows); else ! fprintf(prn, "\033.%c%c%c%c", 1, 5 * sw->separation_rows , 5, *linecount + pass->missingstartrows); break; } |
From: Robert L K. <rl...@al...> - 2000-04-04 00:21:53
|
Forget about the patch. I found time to commit the change. |