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

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

Страницы: 140 41 42 43 44 45
#660
12:05, 3 сен. 2019

SilentPrayerCG
MulAddS2X проверю в первую очередь.

#661
(Правка: 12:34) 12:08, 3 сен. 2019

Mikle
что-то я не вдуплю

в твоем примере, убираю весь код, оставляю только

    Dim Grp As Graphics
    Dim hDC As HandleRef

    Private Sub Form1_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleCreated
        Grp = Me.CreateGraphics
        hDC = New HandleRef(Grp, Grp.GetHdc)
    End Sub

как только пытаюсь объявить спрайт (без ошибки), и отчистить его, на очистке вываливается с кодом -1073740791 (0xc0000409).

Но, в моем проекте, созданном с нуля, куда я скопировал библиотеку и классы, очистка и рисование спрайта на форму работает.

ps
movebyte в чистом проекте тоже оверфлоу выдает

pps
загрузил 1001 спрайт в лист, ничего не вылетело, ехе заняло ~4470 мегабайт
повыводил в таймере, рандомный спрайт из списка на форму - все хорошо, отображается

#662
(Правка: 12:58) 12:57, 3 сен. 2019

Заменил в проекте процедуру Render:

  Private Sub Render()
    SprBack.MulAddS2X(SprCol, 0, 0, ARGB(128, 255, 128, 128), ARGB(128, 255, 128, 128))
    SprBack.PaintToDevice(hDC)
  End Sub
Нормально работает, не вылетает.
SilentPrayerCG
> загрузил 1001 спрайт в лист, ничего не вылетело, ехе заняло ~4470 мегабайт
> повыводил в таймере, рандомный спрайт из списка на форму - все хорошо,
> отображается
Это хорошо, главная цель достигнута.
SilentPrayerCG
> пытаюсь объявить спрайт (без ошибки), и отчистить его
А создать после объявления? Типа:
SprTemp = New Sprite(256, 256)

#663
14:40, 3 сен. 2019

Mikle
если за основу твой проект примера использовать, то не важно как я объявляю спрайт
объявляется он без ошибки, а вот как только пытаюсь почистить выдаёт тот код

вот сейчас попробовал, и опять тот код

1 раз кстати проскочило Access violation, а потом опять вернулось к безымянному коду (я пытался нагуглить что-то ничего не выдаёт дельного)

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

хм..

сейчас попробовал, заменил рендер на строку из сообщения - работает

выключил таймер, добавил кнопку

добавил событие
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim s As New Sprite(256, 256)
        s.ClearBuffer(ARGB(255, 123, 23, 45))
        s.PaintToDevice(hDC)
    End Sub

итог при нажатии -
The program '[32948] DPBM.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.


Может у меня студия троит? Вообще сколько я пользовался ей, хоть и не много, вроде все было нормально, но с каких-то старых пор она стоит у меня preview
Я сейчас посмотрел, комьюнити 2019 вроде уже есть стабильная, поставлю её. Может реально это студия шалит просто.

#664
(Правка: 16:56) 16:43, 3 сен. 2019

Нифига не дало, тоже самое 1 в 1.
В dpbm проекте, выполнение прерывается (только теперь я не вижу окна с логом где пишется код ошибки. может спрятан где-то)
в созданом с нуля проекте, вылазят ошибки переполнения

к примеру в случае с mul в строчке
  Dp = Dp + DataPTR(meLeft, meTop)
я так понял на DataPTR ругается, все остальное тут по нулям.


upd
попробовал пошаговый трейс в dpbm проекте, в строчках по созданию спрайта и очистке

сдохло вот тут

  Public Sub ClearBuffer(ByVal c As Integer)
    If meRight <= meLeft Then Exit Sub
    If meBottom <= meTop Then Exit Sub
    SClearC(cBuf(meLeft + meTop * meWidth), meRight - meLeft, meBottom - meTop, meWidth, c)
  End Sub

на последней строчке
что-бы это не значило

upd2
хм...

В общем ясно. Я пока с таким не сталкивался, в том числе с х32 битным sr2d

короче новый проект по дефолту создается сразу под последний фреймворк - 4.8, и вот под ним ничего не падает - но оверфлоу

а пример он под дремучий 2.0 сделан, вот почему он у меня просто прерывает выполнение (и куда пропало то окно с логом), я не знаю...

#665
16:44, 3 сен. 2019

Вечером дома посмотрю.

#666
(Правка: 17:24) 17:09, 3 сен. 2019

maxvalue у int64 вроде одинаковое, что в 2ом фреймворке что в 4.8ом.
не пойму куда-то делось то окно где вылазила ошибка)
вроде-бы output но что-то не вылазит ничего, причем в превью я специально никаких окон не открывал, кроме списка ошибок...

ну ладно, буду ждать твоих сообщений

ps
а все.. нашел, это окошко output и в опциях нужно в debugging->output window включить флаг process exit message, тогда будет ясно почему процесс подох

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

#667
19:32, 3 сен. 2019

SilentPrayerCG
А было такое, чтобы EXE, который я скомпилировал (лежит в архиве с примером), выдавал ошибку?
А то у меня всё работает, проверяю в двух студиях - 2008 и 2017.

#668
21:23, 3 сен. 2019

SilentPrayerCG
Кое-что исправил, перезалил по той же ссылке: https://yadi.sk/d/ejnc7Q-iPJyYkA

#669
(Правка: 22:46) 22:36, 3 сен. 2019

Mikle
уже готовый ехе не проверял, но пример у меня и так работает, он собирается и работает
не проверял правда на 4.8 фреймворке

но как только я начинаю что-то проверять, он падает, и под что-то я имею ввиду хотя-бы отчистить созданный спрайт

проверил новый пример. на 2ом фреймворке так и прерывается выполнение (не то что-бы он нужен мне прям, этот 2ой фреймворк)
на 4.72 / 4.8 зато перестал оверфлоу выдавать (по крайней мере при мул)

видимо со вторым фреймворком это какая-то проблема миграции, или типа того

завтра еще погоняю

#670
(Правка: 4 сен. 2019, 8:21) 22:44, 3 сен. 2019

У меня тоже ClearBuffer дал ошибку. Буду искать.

Нашёл в чём дело. Там ещё несколько таких же мест, к вечеру постараюсь исправить.

#671
21:29, 4 сен. 2019

Исправил, перезалил по той же ссылке: https://yadi.sk/d/ejnc7Q-iPJyYkA
Поменял имя dll на SR2D64.dll, чтобы не путаться в версиях.
Проверил всё, кроме некоторых операций с маской, ошибок не было.

#672
9:15, 5 сен. 2019

Перенёс обсуждение x64 в соседнюю тему: https://gamedev.ru/community/bycircle/forum/?id=246671

Страницы: 140 41 42 43 44 45
Вело-изобретателиФорумSR2D - софтовый 2D движок