# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MLA -- Graphics Library

- 1
- 2
…
- 66
- 67
- 68
- 69
- 70
…
- 373
- 374

Syntax
#define GFX_CONFIG_IPU_DECODE_DISABLE
Description
Macro: GFX_CONFIG_IPU_DECODE_DISABLE
Images can also be compressed using the DEFLATE algorithm. Using the drivers that supports DEFLATE (IPU of
PIC24FJ256DA210 Family of devices), GFX_ImageDraw() will be able to render these images. This feature is enabled by
default.
To disable this feature, add this macro in the configuration.
Remarks
None.
1.5.1.18 GFX_CONFIG_NONBLOCKING_DISABLE Macro
Blocking and Non-Blocking configuration selection.
File
gfx_config_template.h
Syntax
#define GFX_CONFIG_NONBLOCKING_DISABLE
Description
Macro: GFX_CONFIG_NONBLOCKING_DISABLE
Enabling this macro will disable the non-blocking mode of the library. Non-blocking is enabled to allow
Basic rendering functions such as GFX_LineDraw(), GFX_RectangleDraw(), GFX_BarDraw() etc... are functions
implemented in the Primitive Layer. These functions can also be implemented in the device driver layer if the display device
supports hardware acceleration of the function. Applications that calls these functions can take advantage of the hardware
accelerated primitives. How these functions are used will depend on the configuration setting for the blocking or non-blocking
mode.
All primitive rendering functions returns a status.
• GFX_STATUS_FAILURE â€“ when the primitive was not successfully rendered
• GFX_STATUS_SUCCESS â€“ when the primitive was successfully rendered
When using Graphics Library non-blocking mode is by default enabled. If this mode is to be disabled, add this line in the
configuration: #define GFX_CONFIG_NONBLOCKING_DISABLE
When using a display controller with hardware accelerated primitives (like SSD1926 which is on the Graphics PICtailâ„¢ Plus
Board Version 3 (AC164127-3) faster primitive rendering on Line, Rectangle and Bar functions will be performed.
Compiling with the Blocking or Non-Blocking mode set will still use the accelerated primitives but the application code that
directly call the primitive functions will have to be coded accordingly.
To explain the two modes when directly calling the primitive functions please take a look at the example below.
Case 1: Non-Blocking disabled
// all primitives are blocking calls
GFX_LineDraw(a,b);
GFX_RectangleDraw(c,d,e,f);
GFX_BarDraw(c+2, d+2, e-2, f-2);
Case 2: Non-Blocking enabled
// all primitives are non-blocking calls
while(GFX_LineDraw(a,b) != GFX_STATUS_SUCCESS);
while(GFX_RectangleDraw(c,d,e,f) != GFX_STATUS_SUCCESS);
while(GFX_BarDraw(c+2, d+2, e-2, f-2) != GFX_STATUS_SUCCESS);
1.5 Configuring the Library MLA - Graphics Library Help Configuration Options
68

- 1
- 2
…
- 66
- 67
- 68
- 69
- 70
…
- 373
- 374