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

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

Страницы: 134 35 36 3741 Следующая »
#510
15:38, 8 окт. 2018

SilentPrayerCG
> в 32 битной версии, получается так
Правильно.
Попробуй с помощью SetPixel поставить несколько ярких точек на SprBack, просто проверить, это SetDiBitsToDevice не срабатывает, или что-то другое.

#511
17:02, 8 окт. 2018

попробовал так

+ Показать

результат такой-же, ошибки нет, но чистое окно
http://funkyimg.com/i/2LV4w.png
#512
19:39, 8 окт. 2018

Похоже, нужно разбираться с SetDiBitsToDevice для начала.
Можешь скинуть проект с скомпилированной dll? Попробую поковырять.

#513
(Правка: 9 окт. 2018, 12:06) 22:16, 8 окт. 2018

https://gamedev.ru/files/?id=134830

вот. на всякий случай перепроверил все. с целевым процессором 32, выдает ошибку, стало быть я не натупил и библиотека вышла х64, как нужно.

я, если что, использовал visual studio community, так-же как и тогда, когда я несколько лет назад об этом писал)
в данном случае это последняя, 2017 (превью даже), она бесплатная, не надо ни с чем заморачиваться, залогиниться только в неё и все
кроме неё держу 2015, которую можно выдернуть только если подписаться на девелоперскую каку-то программу майкрософта, (ну либо скачать с торрента наверное)

#514
13:20, 9 окт. 2018

Благодарю, вечером попробую разобраться.

#515
21:23, 9 окт. 2018

SilentPrayerCG
Так и есть, проблема с SetDiBitsToDevice. Я убрал Render вообще, в Form1_Load оставил только это:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    SprCol = New Sprite("wall_col.jpg", , 400, 400)
    SprCol.SaveToFile("test.png", System.Drawing.Imaging.ImageFormat.Png, False)
    SprCol = Nothing
    Me.Dispose()
  End Sub
Файл "test.png" появился, размер 400*400, выглядит корректно, то есть сработал Resize из dll.
Надо поспрашивать дотнетчиков про особенности использования WinAPI на 64-битной платформе.
#516
0:14, 10 окт. 2018

Вопрос могут ли вообще функции из gdi32 импортнутые работать под 64.
Поспрашивай, а то я тут никого не знаю. Для меня весь геймдев на самом деле упирается в эту тему)
Мое предположение, переименовать gdi32 в gdi64 разумеется не сработало, я бы удивился конечно если-бы сработало

#517
(Правка: 9:08) 9:08, 10 окт. 2018

К слову, gdi32 так называется не из-за 32 битности, под 64 виндой gdi32 64 битная

#518
(Правка: 10:36) 9:24, 10 окт. 2018

animert
> под 64 виндой gdi32 64 битная
Точнее, есть две версии, и 32-х, и 64-х.

SilentPrayerCG
Попробуй поменять в bi32BitInfo поле

.biBitCount = 32
на
.biBitCount = 64
Там же PTR, по идее, тоже нужно сделать х64 и, соответственно, поменять строку:
PTR = GCH.AddrOfPinnedObject.ToInt32
на такую:
PTR = GCH.AddrOfPinnedObject.ToInt64
А то я до машины, где это всё можно делать, доберусь только поздно вечером.

Правка:
biBitCount - это, видимо, разрядность цвета, так что менять не нужно, попробуй для начала PTR.

#519
(Правка: 18:13) 18:04, 10 окт. 2018

Я сам только вечером до машины добрался) Еще пока не проверял. Надо проверить

@animert ну я на самом деле так и понял, что 32 это скорее всего не 32 бита разрядности.
Я на самом деле до сих пор путаюсь во всех этих вещах, в плане того что х32 х64 х86, х32 это разрядность, а х86 это архитектура
а что в данном случае, 32 в gdi32... я по этому и зачеркнул, это было тупо ожидать, что это сработает

update:
в процедуре Init же?
поменял птр на 64, ничего не дало, пустая форма
попробовал биткаунт поменять тоже также

#520
22:26, 11 окт. 2018

SilentPrayerCG
Заработало: http://bbs.vbstreets.ru/viewtopic.php?f=2&t=56467

#521
23:00, 11 окт. 2018

Mikle
Это хорошо. Получается останется только _АСМ функции переписать под обычный СИ? И внести коррективы под х64 в спрайт?
Если заработает все хорошо, можем кстати заодно на деле проверить разницу производительности.
У меня как раз сейчас машина неплохая, посмотрим будем ли существенная потеря при отказе от _АСМ.

Я так понял его ничем не заменить? Т.е вижл студия отказывается под х64 компилить _АСМ потому что он не поддерживается этой архитектурой. Но я так понял это в рамках среды именно.
А та библиотека что мне друг кинул, видимо это что-то другое.

Ну т.е. мы говорили про _АСМ, и он сказал что он мол будет отказываться поголовно от прямых инструкций в пользу этой штуки, где ты пишешь функции обычным языком, а она вроде как сама конвертирует под целевую платформу.
Но честно я так и не понял, можно ли вот заменить твои _АСМ вставки, в данном случае, на функции написанные под эту библиотеку или нет.

Мы часто когда общаемся на программистские темы, он забывает, что я нуб который только чуть чуть знает VB.net, и в итоге, видимо мы плохо понимаем друг друга.

#522
23:50, 11 окт. 2018

Можно асм отдельно скомпилировать в obj/lib и подключить к C проекту. Также интринсики (xmmintrin.h) можно прямо в С юзать.

#523
13:34, 14 окт. 2018

Я может спрашивал раньше (100 лет назад), не помню уже.
Ресайз через sr2d только через создание нового спрайта делается?
т.е dim resizedpsrite as new srpite (oldsprite, newsize.width, newsize.height) так?
это не медленно разве будет?
может есть какой-то другой способ, если этот не самый лучший?

#524
13:57, 14 окт. 2018

SilentPrayerCG
Можно LoadFromSprite сделать Public, это будет быстрее работать, особенно если спрайт уже нужного размера.

Страницы: 134 35 36 3741 Следующая »
Вело-изобретателиФорумSR2D - софтовый 2D движок