Рендеринг hardware, software как это работает в webkit?
Делаю свой рендер интерфейса(для своих нужд).
На данный момент всё рисуется на gpu с помощью Direct2D.
Для каждого элемента который имеет цвет, текст и др создаётся текстура.
В конце всё слои накладываются методом DrawBitmap.
А теперь вопрос.
Я хочу чтоб все текстуры(bitmap'ы) были в RAM, рисовать буду неважно чем.
Но вот наложение слоёв в конечный результат слишком долго делать на CPU.
Так вот как мне сделать чтоб рисовал элементы я через cpu а слои накладывал через gpu ?
Рассматривается только Windows.
---------------Второстепенный вопрос---------------
И еще вдруг кто знает как правильно реализовать dirty rectangles? На данный момент для этого я создаю отдельную текстуру размером текущего элемента и делаю слепок до того как элемент будет нарисован.
syxme , ты меня поправь если я ошибаюсь. Значит, ты думаешь что Брезенхам на CPU линию построит быстрее чем железо в полярных координатах? А цветовой градиент у тебя точно на CPU выйдет быстрее чем железо сделает в барицентрической системе координат? И сопряжения в произвольной системе векторов тоже умеешь быстрее железа строить?
Расскажи свою проблему более детально. Я не представляю даже зачем тебе на каждый элемент UI своя текстура. Ты так память GPU скоро вычерпаешь с мало-мальски функциональным интерфейсом.
Евгений Шатунов, На CPU будут практически одноразовые операции, например, блок у которого есть тень, я рисую это в отдельном битмапе и далее я его только использую на gpu хотелось бы только совмещать слои.
Я не представляю даже зачем тебе на каждый элемент UI своя текстура. Ты так память GPU скоро вычерпаешь с мало-мальски функциональным интерфейсом.
Для этого я и задал вопрос.
Я знаю что где и с какой скоростью рисуется..
syxme, если ты хочешь один раз нарисовать на CPU и навсегда отдать в GPU, то в чем именно у тебя проблема?
Спрайтлисты создаются таким образом. Либо они грузятся сразу из файла, либо строятся во время загрузки ресурсов. После постройки они просто отравляются на GPU, где и живут уже до самого удаления.