Exemplo n.º 1
0
static void
Draw(void)
{
   glClear(GL_COLOR_BUFFER_BIT);

   glPushMatrix();
      glRotatef(Xrot, 1, 0, 0);
      glRotatef(Yrot, 0, 1, 0);

      glPushMatrix();
         glTranslatef(0, +1.2, 0);
         DrawSample(GL_FALSE);
      glPopMatrix();

      /* set Mesa back-door state for testing cylindrical wrap mode */
      if (CylWrap)
         glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 0.125);

      glPushMatrix();
         glTranslatef(0, -1.2, 0);
         DrawSample(GL_TRUE);
      glPopMatrix();

      glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 1.0);

   glPopMatrix();

   glutSwapBuffers();
}
Exemplo n.º 2
0
void DrawSignal(
		uint32_t Voffset,
		uSample * PrevData,
		uSample * CurrData,
		uint16_t PrevColor,
		uint16_t CurrColor)
{

	register uint32_t i = SIGNAL_HSTART+1;
	register SampleRet Prev;
	register SampleRet Curr;

	Prev.C = CurrData[SIGNAL_HSTART].i + Voffset;

	if (Prev.C <= GRID_RECT_START_Y) Prev.C = GRID_RECT_START_Y+1;
	if (Prev.C >= GRID_RECT_END_Y) Prev.C = GRID_RECT_END_Y-1;

	Prev.P = PrevData[SIGNAL_HSTART].i + Voffset;

	if (Prev.P <= GRID_RECT_START_Y) Prev.P = GRID_RECT_START_Y+1;
	if (Prev.P >= GRID_RECT_END_Y) Prev.P = GRID_RECT_END_Y-1;

	for (; i < SIGNAL_HSTOP; ++i)
	{
		/*		Prev = PrevData[i].i + Voffset;
		 lastPrev = DrawSample(PrevColor,i,Prev,lastPrev);
		 Curr = CurrData[i].i + Voffset;
		 lastCurr = DrawSample(CurrColor,i,Curr,lastCurr);*/
		Curr.P = PrevData[i].i + Voffset;
		Curr.C = CurrData[i].i + Voffset;
		/* avoid drawing out of grid only once per sample (return value)*/
		if (Curr.P <= GRID_RECT_START_Y) Curr.P = GRID_RECT_START_Y+1;
		if (Curr.P >= GRID_RECT_END_Y) Curr.P = GRID_RECT_END_Y-1;

		if (Curr.C <= GRID_RECT_START_Y) Curr.C = GRID_RECT_START_Y+1;
		if (Curr.C >= GRID_RECT_END_Y) Curr.C = GRID_RECT_END_Y-1;

		DrawSample(PrevColor, CurrColor, i, Prev, Curr);
		Prev = Curr;

	}

}