Добрый день!
Есть некий проект X, для него есть подпроект Y. Y - подключаемая библиотека, которая парсит файл инструкций и дергает функции графики для выполнения инструкций. Появилось желание сделать Y независимым проектом (ибо в нем достаточно мощный механизм парсинга). Сейчас объявление коллбеков в Y выглядит примерно так:
XErrorCode XGraphPixelSet(int index, uint32_t color, int x, int y);
XErrorCode XGraphDrawLine(int index, int x1, int y1, int x2, int y2, uint32_t color, XGraphLineStyle aa);
XErrorCode XGraphDrawLineGrad(int index, int x1, int y1, int x2, int y2, uint32_t color1, uint32_t color2, XGraphLineStyle aa);
// и т.п.
Есть мысль согласно UNIX-идеологии вообще убрать работу с графическими функциями из Y - и сделать в нем вообще только несколько функций наружу - Init, LoadFile, AddElementIdWeNeedToParseInFileIHateLongFunctionsNames, GetParsedStruct, а последней функцией возвращать в X (или в другой проект, если Y стал независимым) заполненную структуру, значения которой Y распарсил из файла, сами typedef'ы структуры объявить в libY.h.
Что скажете?