//+------------------------------------------------------------------+
//|                                                       Config.mqh |
//|                              Copyright 2026, Sandro Begashvili   |
//|                   https://www.mql5.com/en/users/sandrobegashvil  |
//|                          Telegram: https://t.me/MrMQL5Developer  |
//|                    Cairo5 - 2D vector engine - PART 4 code       |
//|                                                                  |
//|  Every tunable number in the engine lives here, and nowhere      |
//|  else. No other file is allowed to invent a magic constant.      |
//|                                                                  |
//|  These are ordinary globals rather than #define, because quality |
//|  is something an application legitimately changes AT RUNTIME:    |
//|  full quality for a panel that is drawn once and then sits       |
//|  there, draft quality while the user is dragging something with  |
//|  the mouse and forty frames a second matter more than a perfect  |
//|  edge.                                                           |
//+------------------------------------------------------------------+
#ifndef CAIRO5_CONFIG_MQH
#define CAIRO5_CONFIG_MQH

//--- library identity
#define CAIRO5_VERSION   "1.0"

//+------------------------------------------------------------------+
//| CairoAaSamples                                                   |
//|                                                                  |
//| The number of horizontal sample lines taken per pixel row.       |
//|                                                                  |
//| The rasterizer computes coverage ANALYTICALLY in X - exact       |
//| fractional overlap, no sampling at all - but SAMPLES in Y. This  |
//| value is therefore the VERTICAL anti-aliasing quality, and the   |
//| cost of a fill is very close to linear in it.                    |
//|                                                                  |
//|   1  no vertical AA. Vertical and horizontal edges are still     |
//|      perfect - they always were - but a shallow diagonal shows   |
//|      banding, because the shape's height within a row is being   |
//|      guessed from one sample.                                    |
//|   2  most of the improvement, for half the price of 4.           |
//|   4  the default, and the point of diminishing returns on screen.|
//|   8  visibly better only on near-horizontal edges of large       |
//|      shapes.                                                     |
//|  16  for rendering at high resolution for an export.             |
//|                                                                  |
//| Part 4's demo puts all four side by side and prints the timings, |
//| so you can pick from evidence rather than from this comment.     |
//+------------------------------------------------------------------+
int CairoAaSamples = 4;

#endif // CAIRO5_CONFIG_MQH
