コード例 #1
0
ファイル: arrow.c プロジェクト: montsuqi/monpe
static void
sadtarrow_draw(Sadtarrow *sadtarrow, DiaRenderer *renderer)
{
  DiaRendererClass *renderer_ops = DIA_RENDERER_GET_CLASS (renderer);
  NewOrthConn *orth = &sadtarrow->orth;
  Point *points;
  int n;
  Color col;
  Arrow arrow;

  points = &orth->points[0];
  n = orth->numpoints;
  
  renderer_ops->set_linewidth(renderer, ARROW_LINE_WIDTH);
  renderer_ops->set_linestyle(renderer, LINESTYLE_SOLID);
  renderer_ops->set_linecaps(renderer, LINECAPS_BUTT);
  
  col = ARROW_COLOR;
  if (sadtarrow->autogray && 
      (orth->orientation[0] == VERTICAL) && 
      (orth->orientation[orth->numpoints-2] == VERTICAL)) {
    col.red = GBASE + (GMULT*col.red);
    col.green = GBASE + (GMULT*col.green);
    col.blue = GBASE + (GMULT*col.blue);
  }

  arrow.type = ARROW_HEAD_TYPE;
  arrow.length = ARROW_HEAD_LENGTH;
  arrow.width = ARROW_HEAD_WIDTH;

  renderer_ops->draw_rounded_polyline_with_arrows
    (renderer, points, n, ARROW_LINE_WIDTH, &col,
     sadtarrow->style == SADT_ARROW_DOTTED?&arrow:NULL,
     sadtarrow->style != SADT_ARROW_DISABLED?&arrow:NULL,
     ARROW_CORNER_RADIUS);

  /* Draw the extra stuff. */
  switch (sadtarrow->style) {
  case SADT_ARROW_IMPORTED:
    draw_tunnel(renderer,&points[0],&points[1],&col);
    break;
  case SADT_ARROW_IMPLIED:
    draw_tunnel(renderer,&points[n-1],&points[n-2],&col);
    break;
  case SADT_ARROW_DOTTED:
    draw_dot(renderer,&points[n-1], &points[n-2],&col);
    draw_dot(renderer,&points[0], &points[1],&col);
    break;
  case SADT_ARROW_NORMAL:
  case SADT_ARROW_DISABLED:
    break;
  }
}
コード例 #2
0
ファイル: tunnel.c プロジェクト: Cheeseness/hidden-star
int main(int argc, char *argv[]){
	int s=setup();
	if(s > 0){
		return s;
	}

int time_pos=0;
int current_time;
int last_time = SDL_GetTicks();
int mouseX; int mouseY;
int pause=0;

while(event.type != SDL_QUIT){
	SDL_GetMouseState(&mouseX, &mouseY);
	if(SDL_PollEvent(&event)<1){SDL_Delay(10);}else{
		switch (event.type) {
			case SDL_QUIT:
				exit(0);
				break;
			case SDL_MOUSEBUTTONDOWN:
				if(pause==0){pause=1;}else{pause=0;}
				break;
		}
	}

	current_time=SDL_GetTicks();
	if(pause==0 && (current_time-last_time) > 64){
		for(int i=0;i<=gindex;i++){
			if(g[i].lc > g[i].lm){
				g[i].ly1++;
				g[i].lx1--;
				g[i].ly2--;
				g[i].lx2--;
				g[i].ly3--;
				g[i].lx3++;
				g[i].ly4++;
				g[i].lx4++;
				g[i].lm=(g[i].lm/(1.2));
				g[i].lc=0;
				if(i==gindex && gindex<G_MAX-1){
					gindex++;
					set_default(gindex);
				}
			}
			g[i].lc++;
			if(g[i].ly1 > 72){
				set_default(i);
			}
		}
		last_time=current_time;
		draw_tunnel();
	}
}
return 0;
}
コード例 #3
0
ファイル: draw_gl.c プロジェクト: Chelovecheggg/libvisual
void
draw_scene(void)
{
  if (point_general->changement) {
    recalc_perspective();
    if (point_general->effect > EFFECT_NUMBER - 1) {
      point_general->effect = 0;
      if (gen_gl_texture(knotbg))
        upload_gl_texture(background_image);
      use_gl_texture(knotbg);
    }
    if (point_general->effect == 4) {
      if (gen_gl_texture(tunnel))
        upload_gl_texture(tunnel_image);
      use_gl_texture(tunnel);
    }
    if (point_general->effect == 5) {
      if (gen_gl_texture(tentacle))
        upload_gl_texture(tentacle_image);
      use_gl_texture(tentacle);
    }
    if (point_general->effect == 6) {
      if (gen_gl_texture(twist))
        upload_gl_texture(twist_image);
      if (gen_gl_texture(twistbg))
		upload_gl_texture(background_image);
      use_gl_texture(twist);
    }
    if (point_general->effect == 7) {
      if (gen_gl_texture(texchild))
        upload_gl_texture(child_image);
      if (gen_gl_texture(childbg))
        upload_gl_texture(energy_image);
      use_gl_texture(texchild);
    }
    if (point_general->effect == 8) {
      if (gen_gl_texture(energy))
        upload_gl_texture(energy_image);
      use_gl_texture(energy);
    }
    point_general->changement = FALSE;
  }
  switch (point_general->effect) {
    case 0:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_knot();
      break;
    case 1:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_spectrum();
      break;
    case 2:
      if (!point_general->init)
        init_effect();
      glEnable(GL_LIGHTING);
      draw_face();
      break;
    case 3:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_glthreads();
      break;
    case 4:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_tunnel();
      break;
    case 5:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_tentacles();
      break;
    case 6:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_twist();
      break;
    case 7:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_child();
      break;
    case 8:
      if (!point_general->init)
        init_effect();
      glDisable(GL_LIGHTING);
      draw_energy();
      break;
    default:
      break;
  }
}