graphics engine

Graphics Engine A typical CPU includes special-purpose graphics engine. Graphics engines are common because many computers have graphic displays, and a graphics engine can perform common operations at high speed. For example, a graphics engine might include facilities to move a rectangle across a bit-mapped display or to repaint the surface of a graphical figure …

cairo graphics 0.9 intersection II

/* Jeffrin Jose Licensed GPL v3 Copyright August 2010 GPL –> http://www.gnu.org/copyleft/gpl.html */ // module do_draw //do_draw will be executed in a separate thread whenever we would like to update //our animation void *do_draw(void *ptr){ currently_drawing = 1; int width, height; gdk_threads_enter(); gdk_drawable_get_size(pixmap, &width, &height); gdk_threads_leave(); //create a gtk-independant surface to draw on cairo_surface_t *cst …

deadlock

Dead lock Nonatomic actions introduce the possibility that the protocol can deadlock, meaning that it reaches a state where it cannot continue. Now, on the context of congestion control deadlock is acheived when the packets in the interconnect can make no forward progress no matter what sequence of events happens. References : Snooping Protocols. Congestion …

cairo graphics 0.8 (intersection)

/* Jeffrin Jose Licensed GPL v3 Copyright August 2010 GPL –> http://www.gnu.org/copyleft/gpl.html */ #include #include #include #include //the global pixmap that will serve as our buffer static GdkPixmap *pixmap = NULL; gboolean on_window_configure_event(GtkWidget * da, GdkEventConfigure * event, gpointer user_data){ static int oldw = 0; static int oldh = 0; //make our selves a properly …

cairo graphics 0.7 wheel

/* Jeffrin Jose Licensed GPL v3 Copyright August 2010 GPL –> http://www.gnu.org/copyleft/gpl.html */ #include #include #include #include //the global pixmap that will serve as our buffer static GdkPixmap *pixmap = NULL; gboolean on_window_configure_event(GtkWidget * da, GdkEventConfigure * event, gpointer user_data){ static int oldw = 0; static int oldh = 0; //make our selves a properly …

loop-level parallelism

loop level parallelism The simplest and the common way to increase the amount of parallelism available among instructions is to exploit parallelism among iterations of a loop. This type of parallelism is often called loop-level parallelism. Here is a simple example of a loop, which adds two 1000-element arrays that is completely parallel. for (i=1;i<= …

cairo graphics 0.6 Circle animation

/* Jeffrin Jose Licensed GPL v3 Copyright August 2010 GPL –> http://www.gnu.org/copyleft/gpl.html */ #include #include #include //the global pixmap that will serve as our buffer static GdkPixmap *pixmap = NULL; gboolean on_window_configure_event(GtkWidget * da, GdkEventConfigure * event, gpointer user_data){ static int oldw = 0; static int oldh = 0; //make our selves a properly sized …

context switch

context switch Multiprogramming leads to the concept of a process. Metaphorically,a process is a program’s breathing air and living space-that is,a running program plus any state needed to continue running it.Time- sharing is a variation of multi-programming that shares the CPU and memory with several interactive users at the same time, giving the illusion that …

cairo graphics 0.5 (arc )

/* Jeffrin Jose Licensed GPL v3 Copyright August 2010 GPL –> http://www.gnu.org/copyleft/gpl.html */ #include int main () { int i; cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 800, 600); cairo_t *cr = cairo_create (surface); cairo_set_font_size (cr, 32.0); cairo_set_source_rgb (cr, 0.3, 0.8, 0.7); cairo_set_line_width(cr,1.0); for (i=0;i<100;i++) { /* cairo_move_to(cr,30+i,60); cairo_line_to(cr,30+i,60+i);*/ /* cairo_rectangle(cr,100,100,10+i,10+i);*/ cairo_arc(cr,100,100,60,50,10); /* cairo_line_to(cr,40,200); */ cairo_stroke(cr); /* …