Общество изобретателей велосипедов
GameDev.ru / Сообщества / Вело-изобретатели / Форум / 2D движок SR2D, Софтверный движок для работы с 2D графикой на VB6, vb.net, C# (34 стр)

2D движок SR2D, Софтверный движок для работы с 2D графикой на VB6, vb.net, C# (34 стр)

Страницы: 131 32 33 34 35 36 Следующая »
SilentPrayerCGПостоялецwww22 ноя. 20176:33#495
Mikle
Ну допустим о сетпиксель

А сам graphics он тоже довольно медленный, это его предел? (к примеру в случае заливки поверхности контрола клеточками (я пробовал заливать клетками прямо в паинте, и заливать уже заготовленными имиджами-тайлами, разницы большой не было, при ресайзе на 1080 начинает тормазить ресайз)

Я как-то замерял скорости. Рисовал пиксель через setpixel и рисовал пиксель через графикс через дравректанл вроде, и еще делал.. забыл как называется, типа выделение области битмапа, в 1 пиксель, и делал clear.
Но уже не помню что из этого было быстрее, давно делал.

MikleМодераторwww22 ноя. 20178:48#496
SilentPrayerCG
> А сам graphics он тоже довольно медленный, это его предел?
Framework и прочие обёртки наверняка отжирают производительность, поэтому вряд ли прям предел, но, если там по уму всё сделано, то должно быть близко к пределу. Софтрендер там остаётся, единственный путь ещё заметно ускорить - распараллеливать потоки.
SilentPrayerCGПостоялецwww22 ноя. 201711:49#497
Mikle
Ну SR2D же получается быстрее чем graphics, заметно.
Или я ошибаюсь?
MikleМодераторwww22 ноя. 201713:13#498
SilentPrayerCG
Просто в graphics и SR2D ты сравниваешь разные функции, в graphics всё слишком универсально, там нет таких простых и однозначных операций, как в SR2D.

Правка: 22 ноя. 2017 13:14

SilentPrayerCGПостоялецwww22 ноя. 201714:50#499
Mikle
> Просто в graphics и SR2D ты сравниваешь разные функции, в graphics всё слишком
> универсально, там нет таких простых и однозначных операций, как в SR2D.
Понял, спасибо. Теперь мне более ясно как все это работает)
SilentPrayerCGПостоялецwww23 ноя. 201717:25#500
Понял как лочится битмап через Lockbits, но вот как при этом изменять содержимое, выше моего понимания, к сожалению(
MikleМодераторwww23 ноя. 201717:33#501
SilentPrayerCG
> как при этом изменять содержимое, выше моего понимания, к сожалению
В vb.net нет работы через указатель, поэтому только обходным путём. Точно на вскидку не скажу, по идее с помощь маршаллинга ассоциировать массив с данными битмапа и писать в этот массив.
SilentPrayerCGПостоялецwww23 ноя. 201719:49#502
Mikle
> В vb.net нет работы через указатель, поэтому только обходным путём. Точно на
> вскидку не скажу, по идее с помощь маршаллинга ассоциировать массив с данными
> битмапа и писать в этот массив.
Я вот этот пример смотрел https://msdn.microsoft.com/ru-ru/library/5ey6h79d%28v=vs.110%29.a… ode-snippet-2
и там да, через маршал что-то делается
но эти махинации с байтами выше моих знаний)
SilentPrayerCGПостоялецwww6 окт. 201820:15#503
Год прошел, и что-то тишина тут. Моя мечта о порте на 64 бит архитектуру так и не сбылась)
Друг сказал, теперь избавляется везде от АСМ вставок в пользу этой штуки https://github.com/p12tic/libsimdpp

Я вот сейчас пытаюсь вспомнить мои потуги в плане портировать на 64 sr2d.dll но вроде-бы там еще нужно в итоге в спрайте самом что-то менять...

MikleМодераторwww7 окт. 20189:02#504
SilentPrayerCG
> вроде-бы там еще нужно в итоге в спрайте самом что-то менять...
Разве? Вроде бы там всё универсальное.
SilentPrayerCG
> сейчас пытаюсь вспомнить мои потуги в плане портировать на 64 sr2d.dll
Можно для начала выкинуть из кода все ассемблерные функции, там есть несколько функций на голом Си. Скомпилировать в 64 бита и попробовать задействовать. Если получится нормально, будет хоть стимул переписать остальные функции. Кое-что, конечно, сильно замедлится.
SilentPrayerCGПостоялецwww7 окт. 201812:30#505
Ну вот допустим я закомментил все что содержало АСМ вставки.
Теперь при билде ругается на
+ Показать

Не, уверен, это те самые ассемблерные операции которые в асм вставках используются? Их нужно поудалять из этого файла?
Я не знаю как в итоге это проверить, если большинство кода выпилено. Вызвать что-ли руками какую-нибудь не выпиленную функцию оттуда?

MikleМодераторwww7 окт. 201812:53#506
SilentPrayerCG
> это те самые ассемблерные операции которые в асм вставках используются? Их
> нужно поудалять из этого файла?
Их нужно из файла SR2D.def.
Можно для проверки вызвать какой-нибудь EBM.
Я бы сам попробовал, но я даже 64-битного компилятора не держу.
SilentPrayerCGПостоялецwww7 окт. 201814:38#507
Ок, затер все на что он ругался. Осталось
+ Показать

библиотека откомпилилась.

Вот дальше нужна будет твоя помощь
Тут как лучше сделать? С нуля создать пустой проект и вызвать что нужно?
можешь написать как вызвать этот _EBM, к примеру, и убедиться, что он работает?

Правка: 7 окт. 2018 14:40

MikleМодераторwww8 окт. 20189:14#508
Возьми пример DPBM, замени процедуру Render на такую:
    SprBack.DrawEBM(SprNorm, SprCol, 0, 0, False)
    SprBack.PaintToDevice(hDC)
По идее - всё. Само собой, нужно целевую платформу указать Win64.
Не знаю, как в Win64 работает SetDiBitsToDevice, может какие-то правки придётся внести тут.

Правка: 8 окт. 2018 9:15

SilentPrayerCGПостоялецwww8 окт. 201815:30#509
в 32 битной версии, получается так http://funkyimg.com/i/2LUX1.png

с 64 битной библиотекой без асм и разумеется с 64 битным целевым процессором, запускается
но картинку не рисует никакую, просто пустое окно и таймер показывает фпс в заголовке.

пустое, т.е серое, не видно что-бы что-то рисовалось поверх

Правка: 8 окт. 2018 15:30

Страницы: 131 32 33 34 35 36 Следующая »

/ Форум / Общество изобретателей велосипедов / SR2D - софтовый 2D движок

2001—2018 © GameDev.ru — Разработка игр