static void run_tests(TestState *state) { int i; for(i = 0; i < C_N_ELEMENTS(tests); i++) { cg_framebuffer_clear4f(test_fb, CG_BUFFER_BIT_COLOR, 0, 0, 0, 1); tests[i](state); } }
static void redraw(Data *data) { cg_framebuffer_t *fb = data->fb; cg_framebuffer_clear4f(fb, CG_BUFFER_BIT_COLOR, 0, 0, 0, 1); cg_framebuffer_push_matrix(fb); cg_framebuffer_translate(fb, data->center_x, -data->center_y, 0.0f); cg_primitive_draw(data->triangle, fb, data->pipeline); cg_framebuffer_pop_matrix(fb); cg_onscreen_swap_buffers(CG_ONSCREEN(fb)); }
static void paint (void) { cg_pipeline_t *pipeline = cg_pipeline_new (test_dev); int width = cg_framebuffer_get_width (test_fb); int half_width = width / 2; int height = cg_framebuffer_get_height (test_fb); cg_vertex_p2_t tri0_vertices[] = { { 0, 0 }, { 0, height }, { half_width, height }, }; cg_vertex_p2c4_t tri1_vertices[] = { { half_width, 0, 0x80, 0x80, 0x80, 0x80 }, { half_width, height, 0x80, 0x80, 0x80, 0x80 }, { width, height, 0x80, 0x80, 0x80, 0x80 }, }; cg_primitive_t *tri0; cg_primitive_t *tri1; cg_framebuffer_clear4f (test_fb, CG_BUFFER_BIT_COLOR, 0, 0, 0, 0); tri0 = cg_primitive_new_p2 (test_dev, CG_VERTICES_MODE_TRIANGLES, 3, tri0_vertices); tri1 = cg_primitive_new_p2c4 (test_dev, CG_VERTICES_MODE_TRIANGLES, 3, tri1_vertices); /* Check that cogl correctly handles the case where we draw * different primitives same pipeline and switch from using the * opaque color associated with the pipeline and using a colour * attribute with an alpha component which implies blending is * required. * * If Cogl gets this wrong then then in all likelyhood the second * primitive will be drawn with blending still disabled. */ cg_primitive_draw (tri0, test_fb, pipeline); cg_primitive_draw (tri1, test_fb, pipeline); test_cg_check_pixel_and_alpha (test_fb, half_width + 5, height - 5, 0x80808080); }
static void paint_cb(uv_idle_t *idle) { struct demo *demo = idle->data; unsigned int i; update_catherine_wheel(demo); cg_framebuffer_clear4f(demo->fb, CG_BUFFER_BIT_COLOR | CG_BUFFER_BIT_DEPTH, 0, 0, 0, 1); for (i = 0; i < C_N_ELEMENTS(demo->emitter); i++) particle_emitter_paint(demo->emitter[i]); cg_onscreen_swap_buffers(demo->fb); uv_idle_stop(&demo->idle); }