Languages

Menu
Sites
Language
evas의 line width 설정 관련...

안녕하세요...

현재,,, evas_object_line_xy_set 함수를 사용하여 line을 그려주고 있습니다.

아래 cairo 처럼 evas에서도  width 나 arc 또는 fill을 설정 할 수 있나요?

설정할 수 있다면 그 방법 좀 알려 주시면 감사하겠습니다.

   cairo_set_line_width(ad->cairo, 2);
   cairo_arc(ad->cairo, 0.4 * d, 0.4 * d, 0.2* d * sqrt(2), -0.25 * M_PI, 0.25 * M_PI);
   cairo_fill(ad->cairo);

감사합니다.

Responses

1 Replies
Jeongsu Kim

evas로는 원하시는 작업을 하기는 어렵습니다.

대신 evas image object의 buffer를 cairo로 그리는 방법은 있습니다.

int width = 100;
int height = 100;
Evas_Object* image = evas_object_image_add(evas);
evas_object_image_colorspace_set(image, EVAS_COLORSPACE_ARGB8888);
evas_object_image_size_set(image, width, height);
evas_object_image_fill_set(image, 0, 0, width, height);
int stride = evas_object_image_stride_get(image);

char* buffer = evas_object_image_data_get(image, EINA_TRUE);

cairo_surface_t surface = cairo_image_surface_create_for_data(buffer, CAIRO_FORMAT_ARGB32, width, height, stride);
cairo_t cairo = cairo_create(surface);

// do something with cairo

cairo_destroy(cairo);
cairo_surface_destroy(surface);

evas_object_image_data_set(image, buffer);
evas_object_image_data_update_add(image, 0, 0, width, height);

// move & resize or swallow to edc swallow part