예제 #1
0
파일: draw.c 프로젝트: waruqi/gbox2
static tb_void_t g2_demo_render()
{
    // render
    if (g_mode & G2_STYLE_MODE_FILL)
    {
        // init style
        g2_clear_style(g_painter);
        g2_mode(g_painter, G2_STYLE_MODE_FILL);
        g2_color(g_painter, G2_COLOR_RED);
        g2_shader(g_painter, g_bm? g_mhader[g_shaderi] : g_shader[g_shaderi]);

        // init matrix
        if (g_shaderi == 3)
        {
            g2_matrix_t mx;
            tb_size_t bw 	= g2_bitmap_width(g_bitmap);
            tb_size_t bh 	= g2_bitmap_height(g_bitmap);
            tb_size_t cw 	= g2_bitmap_width(g_surface);
            tb_size_t ch 	= g2_bitmap_height(g_surface);
            if (g_bm)
            {
                g2_matrix_init_translate(&mx, -g2_long_to_float(100), -g2_long_to_float(100));
//				g2_matrix_rotate(&mx, g2_long_to_float(45));
                g2_matrix_scale(&mx, g2_long_to_float(200) / bw, g2_long_to_float(200) / bh);
                g2_shader_matrix_set(g_mhader[g_shaderi], &mx);
            }
            else
            {
                g2_matrix_init_translate(&mx, 0, 0);
//				g2_matrix_rotate(&mx, g2_long_to_float(45));
                g2_matrix_scale(&mx, g2_long_to_float(cw) / bw, g2_long_to_float(ch) / bh);
                g2_shader_matrix_set(g_shader[g_shaderi], &mx);
            }
        }

        // render
        g2_draw_path(g_painter, g_path);
    }

    if (g_mode & G2_STYLE_MODE_STOK)
    {
        // init style
        g2_clear_style(g_painter);
        g2_mode(g_painter, G2_STYLE_MODE_STOK);
        g2_color(g_painter, G2_COLOR_BLUE);
        g2_width(g_painter, g2_long_to_float(g_penw));
        g2_cap(g_painter, g_cap[g_capi]);
        g2_join(g_painter, g_join[g_joini]);

        // render
        g2_draw_path(g_painter, g_path);
    }
}
예제 #2
0
void OnTick() {
    g2_clear();

    g2_color(128,0,0);
    g2_rect(G2_COLOR,10,10,800,600);

    g2_color(0,128,0);
    g2_rect(G2_COLOR,100,100,800,600);

    for(int i=0;i<100;i++)
        for(int j=0;j<100;j++)
            g2_text(i,j,"hello", 14);
}