Beispiel #1
0
void l_fprintf(const emlrtStack *sp, const char_T formatSpec_data[77], const
               int32_T formatSpec_size[2])
{
  emlrtStack st;
  st.prev = sp;
  st.tls = sp->tls;
  st.site = &wu_emlrtRSI;
  m_fprintf(&st, formatSpec_data, formatSpec_size);
}
/*************************************************************************
 ** VID_COLOR - do setup of gray (& whatever) for a color by index		**
 **		MUST BE WRAPPED IN GS/GR PAIR BY CALLER			**
 *************************************************************************/
void vid_color(int color, int shade, uint32 plate_number)
{
	float temp_dens[4];
        struct clr_lst *clr;
	int ii;
    
#ifdef TRACE
	if (color_trace)
		p_info(PI_TRACE, "start vid_color(%d, %d, %lo), Black= %lo, cc_mask= %lo\n",
			   color, shade, plate_number, BlackPaint_cc_mask, cc_mask);
#endif
	if (color < 0)
	{
		BlackPaint_cc_mask &= ~(1 << (plate_number-1));	/* turn off a plate */
#ifdef TRACE
		if (color_trace)
			p_info(PI_TRACE, "new BlackPaint_cc_mask= %lo\n", BlackPaint_cc_mask);
#endif
		return;
	}
	if ( !KeyOutputType)
		clr = find_color(color, 0); /* use color from plate 0 for composite */
	else						/* normal color */
		clr = find_color(color, plate_number); /* find the color structure */
	if(clr == 0)
	{
#ifdef TRACE
		if (color_trace)
			p_info(PI_TRACE, "color %d on plate= %lo not defined\n",
				   color, plate_number);
#endif
		BlackPaint_cc_mask &= ~(1 << (plate_number-1));	/* turn off a plate */
#ifdef TRACE
		if (color_trace)
			p_info(PI_TRACE, "new BlackPaint_cc_mask= %lo\n", BlackPaint_cc_mask);
#endif
		return;					/* not defined */
	}

#ifdef TRACE
		if (color_trace) {
		p_info(PI_TRACE, "color= %d, reverse= %d, freq= %d, cmyk_flag= %d\n",
			   clr->color, clr->reverse,clr->freq,clr->cmyk_flag);
		p_info(PI_TRACE, "  c= %f, m= %f, y= %f, k= %f, dens= %f, angle= %f, func= %s op=%s\n",
			   clr->cmyk[0],clr->cmyk[1],clr->cmyk[2],clr->cmyk[3],
			   clr->density,clr->angle,clr->func,clr->op);
		}

#endif

/*     if( (clr->density != 1.0) && */ /* need screen if not white or black */
/*        (clr->density != 0.0) )  */
/* always put out screen 7/20/92 -Enhancement 33P from Dee */

#ifdef TRACE
	if (color_trace)
	{
		p_info(PI_TRACE, "%s setoverprint\n",clr->op);
		p_info(PI_TRACE, "%d %f %s setscreen (note - density= %f)\n",
			   clr->freq, clr->angle + (double)Orient,
			   clr->func, clr->density);
		p_info(PI_TRACE, "%d %f %s %s\n",
			old_freq, old_angle, old_func, old_op);
	}
#endif
	/* setoverprint for composites only */
	if ( !strcmp(clr->op,"false") && (!KeyOutputType) )
		m_fprintf("false setoverprint\n");
	else if ( !strcmp(clr->op,"true") && (!KeyOutputType) )
		m_fprintf("true setoverprint\n");

	if ( IncludeScreens )
	{
		/* Use PP Keyword LPI for color frequency */
		/* If LPI = 0, use colortable frequency */

		if (LPI != 0)
			clr->freq = LPI;

		if ( (old_freq != clr->freq) || (old_angle != clr->angle)
			|| (strcmp(old_func, clr->func)) || firstscreen
			|| (strcmp(old_op, clr->op)) )
		{

			m_fprintf("%d %5.2f {%s} setscreen \n",
				  clr->freq, clr->angle + (double)Orient,
				  clr->func); /* set screen from structure */
			firstscreen = 0;
		}
		old_freq = clr->freq;
		old_angle = clr->angle;
		strcpy(old_func, clr->func);
		strcpy(old_op, clr->op);  

	}
	if ( !CMYK_Allowed)
	{							/* enhancement 59P - 7/28/92 */
		temp_dens[0] = 1.0 - (((1.0 - clr->density) * shade) / 100.);
		digi_print(temp_dens[0]); /* set density */
		m_fprintf("setgray\n");
		if ( temp_dens[0] == 1.0)
			BlackPaint_cc_mask &= ~(1 << (plate_number-1));	/* white */
		else
			BlackPaint_cc_mask |= (1 << (plate_number-1)); /* black */
#ifdef TRACE
		if (color_trace)
		{
			p_info(PI_TRACE, "CMYK_Allowed=0, %6.3f setgray (to .tp file)\n",
				   temp_dens[0]);
			p_info(PI_TRACE, "new BlackPaint_cc_mask= %lo\n", BlackPaint_cc_mask);
		}
#endif
	}
	if (clr -> cmyk_flag && !KeyOutputType && CMYK_Allowed)
	{							/* set the specified color */

		if ( !strcmp(clr->type, "process")) {
		/* Add in tint and then shade for process color only */
		   for (ii=0; ii<4; ii++)
			clr->out_cmyk[ii] = ((clr->cmyk[ii] * clr->tint) / 100.);
		   for (ii=0; ii<4; ii++)
			clr->out_cmyk[ii] = ((clr->cmyk[ii] * shade) / 100.);
		} else {
		   for (ii=0; ii<4; ii++)
			clr->out_cmyk[ii] = clr->cmyk[ii];

		}

		temp_dens[0] = clr->out_cmyk[0];
		digi_print(temp_dens[0]); /* set C */
		temp_dens[1] = clr->out_cmyk[1];
		digi_print(temp_dens[1]); /* set M */
		temp_dens[2] = clr->out_cmyk[2];
		digi_print(temp_dens[2]); /* set Y */
		temp_dens[3] = clr->out_cmyk[3];
		digi_print(temp_dens[3]); /* set K */



		if ( !strcmp(clr->type, "process")) {
			/* Add used colors to color list */
			if (temp_dens[0] != 0)
				colorsused[0]=1; /* Has Cyan */
			if (temp_dens[1] != 0)
				colorsused[1]=1; /* Has Magenta */
			if (temp_dens[2] != 0)
				colorsused[2]=1; /* Has Yellow */
			if (temp_dens[3] != 0)
				colorsused[3]=1; /* Has Black */
			m_fprintf(" setcmykcolor\n");
		} else	{
			for (ii=0; ii< 48; ii++) {
				if (strcmp(customused[ii],clr->color_name) == 0) 
					break; /* Already Loaded */
				if (customused[ii][0] ==  '\0')  {
					strcpy(customused[ii],clr->color_name); /* Found Blank Spot for new entry */
					sprintf(cmykcustomused[ii],"%.2f %.2f %.2f %.2f",temp_dens[0], temp_dens[1], temp_dens[2], temp_dens[3]);
					break;
				}
			}
			m_fprintf("%s %.2f pentacustomcolor\n",clr->color_name, ( (100 - clr->tint) + (100 - shade) ) / 100);
		}

		 if ( (temp_dens[0] == 0.0) && (temp_dens[1] == 0.0) &&
			  (temp_dens[2] == 0.0) && (temp_dens[3] == 0.0)) 
			 BlackPaint_cc_mask &= ~(1 << (plate_number-1)); /* white */
		 else
			BlackPaint_cc_mask |= (1 << (plate_number-1)); /* black */
#ifdef TRACE
		if (color_trace)
			p_info(PI_TRACE, "%f %f %f %f set CMYK, Black= %lo\n",
				   temp_dens[0], temp_dens[1], temp_dens[2], temp_dens[3],
				   BlackPaint_cc_mask);
#endif
	}
	else if (!clr -> cmyk_flag && CMYK_Allowed)
	{							/* default to black */
		digi_print(0.0);		/* set C */
		digi_print(0.0);		/* set M */
		digi_print(0.0);		/* set Y */
		temp_dens[0] = shade / 100.;
		if( clr->density != 1.0)
		{
			digi_print(temp_dens[0]); /* set K - black */
			BlackPaint_cc_mask = 1; /* black */
		}
		else
		{
			digi_print(0.0);		/* set K - white */
			BlackPaint_cc_mask = 0;	/* white */
			temp_dens[0] = 0.0;
		}

		/* Add used colors to color list */
		if (temp_dens[0] != 0)
			colorsused[3]=1; /* Has Black */

		m_fprintf(" setcmykcolor\n");

#ifdef TRACE
		if (color_trace)
			p_info(PI_TRACE, "0 0 0 %f set CMYK(black), Black= %lo\n",
				   temp_dens[0], BlackPaint_cc_mask);
#endif
	}
}								/* end VID_TINT */