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; } }
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; }
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; } }