использование BitBlt
Заранее благодарю за ответы
Виктор
И
Я пока не знаю ответа на твой вопрос, мне просто интересно: а смысл стараться отображать на форме так быстро? Ни дисплей, ни тем более человеческий глаз не смогут так быстро отображать/воспринимать изображение.
Решение это:
Opengl or Directx
А как сделать связь с деревянной платформой Borland C++ Builder и Opengl or Directx это думаю Ыще то.
Но это, конечно же, не решение проблемы.
Медленной отрисовка может быть по нескольким причинам:
- Во-первых, из-за того что что-то ещё выполняется в потоке GUI. Все операции, которые не связаны с интерфейсом, необходимо выносить в другие потоки.
- Во-вторых, из-за различных параметров изображения в массиве и изображения в bitmap. То есть, чтобы отобразить массив на bitmap необходимо преобразовать формат данных, а это занимает время.
Если и эти советы не помогут ускориться, посмотри в сторону API функций. Если и использование API не даст скорости (во что я почти не верю), то единственный выход, как писал UserNet2008, использовать OpenGL или DirectX.
Но ты что-то определённо делаешь неправильно, потому что я сейчас прогнал несколько тестов BitBlt на своём железе с примерно в два раза большим размером изображения и у меня худший вариант был — 135FPS.
MSDN не при делах нужно читать про API функцию BitBlt в help Borland C++ Builder(??????????)
Вот здесь есть толика правды. Можно использовать маску. Если у автора темы ещё есть интерес , но не раньше next субботы.
P.s
Перемещения не большого объекта при помощи BitBlt
А что, в MSDN уже перестали писать про API-функции? Собственно, такая функция там и описана.
У меня ни одной идеи как это можно реализовать.
У меня ни одной идеи как это можно реализовать.
Код на VB6 для понятия концепции подойдёт Не могу найти на VC++ 6. т.к этим кодам ~15 годов. А VC++2008-2012 есть проблема с hDC. Я правда и очень и колупался.
У меня ни одной идеи как это можно реализовать.
Код на VB6 для понятия концепции подойдёт Не могу найти на VC++ 6. т.к этим кодам ~15 годов. А VC++2008-2012 есть проблема с hDC. Я правда и очень и колупался.
В Васике нифига не понимаю. Ну мне хотя бы алгоритм.
lngRtn = BitBlt(picBack.hDC, 0, 0, lngW, lngH, _
picClouds.hDC, lngX, lngY, vbSrcCopy)
blnBackSaved = True
'Apply mask
lngRtn = BitBlt(picClouds.hDC, lngX, lngY, lngW, lngH, _
picObjectMask.hDC, 0, 0, vbSrcAnd)
'Draw object
lngRtn = BitBlt(picClouds.hDC, lngX, lngY, lngW, lngH, _
picObject.hDC, 0, 0, vbSrcPaint)
picClouds.Refresh
источник
Or screenshot
Вдогонку цвет черной звезды должен совпадать с фоном первой картинки (черный)