|
|
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Использую Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: plaintext 1. 2. 3. 4. 5. 6. На форме рисую линии при прорисовки заметно все тормозит. Очень не удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:13 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323, для начала я бы избавился от множественных вычислений одного и того же на каждой итерации цикла, например ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. а бы потом думал о других оптимизациях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:26 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
egorych, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:33 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
egorych, так лучше Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:35 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323 Код: plaintext 1. 2. перфекционизм)) зачем 2 раза умножать, когда можно один? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:35 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Можно без умножения обойтись Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:36 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Чуть напутал Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:38 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Джентльмены, а разве FormCreate не вызывается только один раз, в то время как FormPaint вызывается на каждой перерисовке? Обычно для этого используют двойную буфферизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:41 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
NekZ, двойная буферизация устраняет мерцание, а не тормоза при отрисовки. необходимо один раз отрисовать линии в памяти, а потом из памяти выводить( отрисовывать) их на форме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:43 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
NekZ, я не сразу понял, про что вы. вы про нашу оптимизацию for ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:44 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323NekZ, двойная буферизация устраняет мерцание, а не тормоза при отрисовки. необходимо один раз отрисовать линии в памяти, а потом из памяти выводить( отрисовывать) их на форме Идеально, конечноб для этого использовать OpenGL. Зарендерить единожды в FBO, выдрать из него текстуру и потом просто её использовать как sampler2D в fragment shader'е. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:51 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323На форме рисую линии при прорисовки заметно все тормозит. Очень не удобно. Выкинь метафайл. Тем более на диске. Ты его грузишь на каждую прорисовку. Рисование линий просто перенеси в FormPaint. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:53 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я так делал. так еще больше тормозит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 12:55 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323Dimitry Sibiryakov, я так делал. так еще больше тормозит Тебе, как минимум, нужно в FormPaint иметь уже готовый пиксельный (распакованный) буфер в памяти из которого ты будешь напрямую выводить графику на устройство. Поскольку, этот код вызывается очень часто, необходимо иметь уже готовые пиксельные данные при его вызове, и желательно избежать ненужных перекодирований и копирований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:00 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
NekZ, знаю. а как это сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:03 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323NekZ, знаю. а как это сделать ? Начни с того, что порекомендовал Dimitry Sibiryakov, избавься от ненужного чтения файла каждый раз. Сделай Image myImage мембером класса и загрузи его в конструкторе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:07 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323я так делал. так еще больше тормозит Не верю. Код показывай. Сколько линий у тебя в сетке? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:08 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:09 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:12 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Это оригинал. А с Metafile измененный. Но он все равно тормоза дает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:15 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я сделал то, что хотел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:48 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323Но он все равно тормоза дает Ещё бы он не давал. Назачем ты на каждую линию создаёшь новый карандаш, да ещё и рисуешь вне видимого окна? Выкинь GDI+ из этого места, рисуй сетку обычными методами TForm->Canvas. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:49 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323, тема закрыта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:49 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, обычным методом не скатит - нужен стиль линий DashStyle::DashStyleDash. Другой не смотрится. Размер сетки 3000 на 3000 не просто так сделан. на форме есть полосы прокрутки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:52 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323, нарисуй битмап с цельной ячейкой, создай из него заливку и залей ей SetBrushOrg задать не забудь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:58 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
gera3323обычным методом не скатит - нужен стиль линий DashStyle::DashStyleDash. Другой не смотрится. Поставить этот стиль карандашу у формы мешает что? gera3323Размер сетки 3000 на 3000 не просто так сделан. на форме есть полосы прокрутки. Пофиг на полосы прокрутки. Вопрос был зачем ты рисуешь линии за пределами видимой области вообще и инвалидированного региона в частности. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 13:59 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Надо некромантить древних майкрософтовцев - КАК у них Excel 2.0 не тормозил на 386 ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 21:30 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Я добавлю не про конкретный кейс а скорее про тренд. Я думаю что древние версии Windows 3.0/95 офисов использовали упрощённый GDI и пиксельную графику. Тоесть если они рисовали линию - то это была линия из пикселов. Рисовали синхронно и быстро. Собственно это было прямое воздействие на видеопамять. Современный API не меряет толщину линий в пикселах. Это некая адаптация абсолютной толщины линии на конкретное устройство со своим DPI. И целый пакет алгоритмов улучшающих восприятие этой линии. Антиалиазинг (даже там где он не нужен). Для рисования сглаженных линий помогает видеокарточка. Но как помогает? Наверное у нее есть конвейер устройств который должен быть загружен непрерывным потоком линий, полигонов и прочей мути. Если мы его загружаем рывками или неравномерно то скорее всего получим какие-то промахи и таймауты. Может ли GDI+ приложение загрузить видеоконвейер непрерывным потоком графических команд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:51 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Я щас плохо ориентируюсь в msdn. Там все расхерячили к чорту. Не понятно где какая платформа. Ну вобщем вот есть функция которая рисует сразу сет линий. Код: plaintext 1. https://msdn.microsoft.com/en-us/library/windows/desktop/ms536017(v=vs.85).aspx Еще из опыта OpenGL. Там есть функция Код: plaintext 1. 2. 3. Вы подготавливаете массив координат точек а она рисует "вентилятор из треугольников" или "гармошку" или еще кучу других примитивов в зависимости от mode. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:09 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
maytonЕще из опыта OpenGL. Там есть функция Код: plaintext 1. 2. 3. Вы подготавливаете массив координат точек а она рисует "вентилятор из треугольников" или "гармошку" или еще кучу других примитивов в зависимости от mode. Не нужно. Чел хочет сетку, пускай рисует mesh в плоскости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:55 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Я не предлагаю автору использовать OpenGL. Я просто пытаюсь рассуждать почему современный графический API в некоторых случаях ведет себя хуже чем API 20-лет назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:48 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
maytonЯ не предлагаю автору использовать OpenGL. Я просто пытаюсь рассуждать почему современный графический API в некоторых случаях ведет себя хуже чем API 20-лет назад. Не хуже, он даже разнообразнее. Просто современные тенденции не предрасполагают к оптимизациям, уже и бывалые начинают забывать, что уж говорить о молодых. У большинства, когда в руках молоток, возникает мнение, что вокруг везде гвозди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 14:45 |
|
||
|
Как устранить тормоза при прорисовки сетки ? GDI+
|
|||
|---|---|---|---|
|
#18+
Я помню этот Excel. Я его ставил с коробки дискет 1.44М. Вверху в title видно сглаженный шрифт типа "System", на самом деле никакого сглаживания вообще не было. Он был растровый. Просто данная картинка была уменьшена 2х4х кратно и появился такой эффект. В этой картинке абсолютно все линии - пиксельные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 15:01 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2017774]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 447ms |

| 0 / 0 |
