summaryrefslogtreecommitdiff
path: root/src/lib/evas/cserve2
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2013-10-11 17:18:42 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2013-10-28 15:47:16 +0900
commit15130078156d849f942fb00c4f37bd708bad0c7b (patch)
tree42603e5b79eb86c8b8154f0b4de8d24107ea9b26 /src/lib/evas/cserve2
parent7b62d77cf5441b89c17ff082204a6908259bd4c3 (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.h9
-rw-r--r--src/lib/evas/cserve2/evas_cs2_client.c4
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)
384struct _Glyph_Data { 383struct _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)