diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2013-10-11 17:18:42 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2013-10-28 15:47:16 +0900 |
commit | 15130078156d849f942fb00c4f37bd708bad0c7b (patch) | |
tree | 42603e5b79eb86c8b8154f0b4de8d24107ea9b26 /src/lib/evas/cserve2 | |
parent | 7b62d77cf5441b89c17ff082204a6908259bd4c3 (diff) |
evas/cserve2: Merge Glyph_Data and mempool index
Glyphs were previously using 3 shared buffers, now reduce to 2:
- Memory pool (mempool) containing the glyph drawable data
- Index table (Shared_Index / array) containing only the
indexes of the buffers in the mempool
- Glyph_Data table (array) containing the glyphs descriptors
AS WELL as the buffer indexes.
So, we just merge the two index tables into one by using directly
objects of type Glyph_Data for the referencing of the mempool
buffers.
Diffstat (limited to 'src/lib/evas/cserve2')
-rw-r--r-- | src/lib/evas/cserve2/evas_cs2.h | 9 | ||||
-rw-r--r-- | src/lib/evas/cserve2/evas_cs2_client.c | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/evas/cserve2/evas_cs2.h b/src/lib/evas/cserve2/evas_cs2.h index 35a0a3177f..a6e59945f2 100644 --- a/src/lib/evas/cserve2/evas_cs2.h +++ b/src/lib/evas/cserve2/evas_cs2.h | |||
@@ -379,14 +379,17 @@ struct _Font_Data { | |||
379 | uint32_t dpi; | 379 | uint32_t dpi; |
380 | }; | 380 | }; |
381 | 381 | ||
382 | #define GLYPH_INDEX_ARRAY_TAG ('G' | 'L' << 8 | 'I' << 16 | 'D' << 24) | ||
383 | #define GLYPH_DATA_ARRAY_TAG ('G' | 'L' << 8 | 'P' << 16 | 'H' << 24) | 382 | #define GLYPH_DATA_ARRAY_TAG ('G' | 'L' << 8 | 'P' << 16 | 'H' << 24) |
384 | struct _Glyph_Data { | 383 | struct _Glyph_Data { |
384 | // Index_Entry | ||
385 | SHMOBJECT; | 385 | SHMOBJECT; |
386 | int32_t length; | ||
387 | int32_t offset; | ||
388 | int32_t shmid; | ||
389 | // Glyph data stuff | ||
386 | uint32_t index; | 390 | uint32_t index; |
387 | string_t shm_id; | 391 | string_t mempool_id; // TODO: Merge with shmid? (Internally impossible atm) |
388 | uint32_t buffer_id; | 392 | uint32_t buffer_id; |
389 | uint32_t offset; | ||
390 | uint32_t size; | 393 | uint32_t size; |
391 | uint32_t rows; | 394 | uint32_t rows; |
392 | uint32_t width; | 395 | uint32_t width; |
diff --git a/src/lib/evas/cserve2/evas_cs2_client.c b/src/lib/evas/cserve2/evas_cs2_client.c index c052c279e5..67c597a0cf 100644 --- a/src/lib/evas/cserve2/evas_cs2_client.c +++ b/src/lib/evas/cserve2/evas_cs2_client.c | |||
@@ -597,9 +597,7 @@ static Eina_Bool | |||
597 | _server_dispatch_until(unsigned int rid) | 597 | _server_dispatch_until(unsigned int rid) |
598 | { | 598 | { |
599 | Eina_Bool failed; | 599 | Eina_Bool failed; |
600 | fd_set rfds; | ||
601 | unsigned int rrid; | 600 | unsigned int rrid; |
602 | struct timeval tv; | ||
603 | 601 | ||
604 | while (1) | 602 | while (1) |
605 | { | 603 | { |
@@ -608,6 +606,8 @@ _server_dispatch_until(unsigned int rid) | |||
608 | #if TIMEOUT | 606 | #if TIMEOUT |
609 | else if (failed) | 607 | else if (failed) |
610 | { | 608 | { |
609 | fd_set rfds; | ||
610 | struct timeval tv; | ||
611 | int sel; | 611 | int sel; |
612 | 612 | ||
613 | if (socketfd == -1) | 613 | if (socketfd == -1) |