Иван Денисов писал(а):
А, я вас понял. Ну тогда надо проверить, что не будет рисоваться хуже по внешнему виду, или медленнее.
сильно хуже не будет. ;-) а медленней, конечно, будет, но мы здесь говорим про замедления в размерах наносекунд, так что вряд ли опасаться этого есть какой-то практический смысл.
Иван Денисов писал(а):
Проверить и на Windows и на Linux.
а оно магически станет одинаковым, потому что безьерки BBCB преобразует в полигоны своими силами. ещё один плюс, кстати.
Иван Денисов писал(а):
Так то лучше сделать кросс-платформенную реализацию через AGG. Тогда не будет зависимости от странного поведения от винды по памяти.
полная AGG в бэкэнде не нужна: там вполне достаточно растеризатора из AGGLite и небольшого кода поддержки. собственно, самописной библиотекой на базе AGGLite я в своих проектах на D пользуюсь давольно давно, и собираюсь её портировать потом. однако замечу, что я весьма прохладно отношусь к самой идее сглаживания: у меня от этого глаза болят. в прямом смысле, физически. это не в смысле что я категорически против, а в смысле что энтузиазма делать AA-рендеринг у меня не так много. в D я это обхожу ручной рихтовкой координат по пиксельной сетке, а в BBCB такое делать некультурно будет (зачем тогда сглаживание, тогда можно намного более простые растеризаторы сделать).
Иван Денисов писал(а):
Дмитрий Соломенников начинал эту работу, и весьма далеко продвинулся! Я тут выложу всё, что у меня осталось от этой работы. Там не так просто понять, что к чему, но уверен, что вы поймёте ход его мыслей, если будет интересно.
спасибо! я, конечно, посмотрю, потому что очень любопытен. ;-)
Иван Денисов писал(а):
А надо ли раздувать стандартную графическую библиотеку? Есть некая в Блэкбоксе также эстетика минимализма в интерфейсах.
ну, совсем уж сильно раздувать я не предлагаю. но всё-таки BBCB — это не только про тексты, так что иметь уже готовые процедуры для рисования тех же прямоугольников со скруглёнными углами и дуг, например, будет полезно, мне кажется. в принципе, было бы неплохо ещё иметь возможность задавать caps и joins для толстых линий, но это я добавлять пока не планирую.
опять же, проблема в том, что делать отдельную рисовалку с кучей возможностей довольно сложно, потому что нет ни стандартной возможности работать с пикселями бэкэнда, ни стандартной возможности создать битмап в памяти, порисовать в нём, и потом битмап блитнуть. и если для тех же caps и joins можно обойтись существующим, то, например, градиенты так уже не сделать. а если захочется вещей покруче, типа масок с произвольным контуром, заливки полноценными изображениями, а не просто паттернами, и прочих вкусных плюшек — то вообще всё печально. и, честно говоря, я не очень представляю, как это решить без раздувания bottleneck'а.