Hi Jerry,
the size of the memory pool depends mainly on your GUI application - so I cannot answer the question if 600kBytes are enough with yes or no. If you are using DirectAccess for the bitmap resources, then it is very likely that 600kBytes are sufficient, as long as you do not use many buffered components.
First of all, you need memory for the framebuffers (which are not part of the memory pool). For more details please see chapter Framebuffer Concepts. The size is typically width * height * bytes per pixel for one framebuffer.
The memory pool is used for all Chora objects (= all your GUI components and data objects), for the strings, for the font glyphs, for bitmaps and for internal processing (e.g. issue buffer). With version 9.30, Embedded Wizard contains a Memory (RAM) usage window, which gives you an overview of your GUI application and the current memory footprint.
Concerning the glyph cache:
The glyph cache is a preallocated piece of memory that is used to store all uncompressed glyphs within the memory - this means, all glyphs that are requested during runtime in order to draw a text are decompressed and stored within the glyph cache. As long as there is enough space within the glyph cache, all frequently used glyphs are kept within the cache to avoid decompression again and again.
The glyph cache is allocated by the memory manager within the memory pool. The size of the glyph cache can be configured by setting the defines EW_MAX_GLYPH_SURFACE_WIDTH and EW_MAX_GLYPH_SURFACE_HEIGHT.
Concerning the surface cache:
EW_MAX_SURFACE_CACHE_SIZE is just a threshold value, it is not a preallocated memory - the define EW_MAX_SURFACE_CACHE_SIZE is used to control the number of bytes that can be occupied by bitmap resources that are no more used by the UI application. As long as there is enough memory available, the bitmap resources are still available within the memory in order to avoid further loading and decompression in case they are used again. Just a kind of runtime optimization.
With version 9.30, the meaning of the macro EW_MAX_SURFACE_CACHE_SIZE has changed due to lazy loading and discarding of bitmap resources. Now, EW_MAX_SURFACE_CACHE_SIZE defines the threshhold, when bitmaps are discarded from memory.
Best regards,
Manfred.