Mikle
Я так понял "бэкплан" - спрайт на заднем фоне...
Какой конкретно необходим функционал?
Встрою все это в класс спрайта, пойдет?
max255
> Какой конкретно необходим функционал?
Самое простое - что-то типа TileDraw из SR2D.
Mikle
Сделаю где то так DrawTile(Position as D3DVECTOR2, TileX as Long, TileY as Long, optional SizeX as Long, optional SizeY as Long)
Плюс к этому добавлю view rect в MX2DRender для виртуальной 2D камеры...
max255
Классную вещь делаешь. Мне даже начинать страшно за подобное браться.
Текст не правильно отображается

СырМан
Поменяй шрифт... Выше писали уже ;)
Mikle
Сделал тайлы... Сейчас делаю SDK...
>Жесть... Какие у вас FPS-ы... У мя около 500... Компу лет 6 как-никак...
Наконец доделал SDK...
Документации как таковой нет... Все описано в комментах...
Если будут вопросы пишите...
Посмотрел.
Имеет смысл проверять пересечение со спрайтом не каждый кадр, а только при условии, что поменялись или координаты мыши, или кадр анимации. Всё-таки Lock текстуры даже для взятия одного пикселя ощутимо садит быстродействие.
Пример Text после запуска сразу закрывается, в том числе при запуске из среды (закрывается так же среда). Вот лог:
|============================MXEngine log file============================| |MXEngine V2.4b |Use render: DirectX9 |Use port: dx_vb.dll by Mikle |==================================================================| |00.00.000 MXEngine started... |00.00.000 Create core... |00.00.000 Windowed 1024x768 |00.00.000 Create render device... |00.00.015 Create sprite engine... |00.00.015 Hardware render OK... |00.00.015 Texture loaded: F:\Work\DX9\dx_vb\MXEngine\MXEngine SDK\media\wood.png |00.00.015 Em
Mikle
> Имеет смысл проверять пересечение со спрайтом не каждый кадр, а только при
> условии, что поменялись или координаты мыши, или кадр анимации.
Это всего-лишь демка... И об оптимизации нет и речи...
Mikle
> Пример Text после запуска сразу закрывается
Вот мой лог...
|============================MXEngine log file============================| |MXEngine V2.4b |Use render: DirectX9 |Use port: dx_vb.dll by Mikle |==================================================================| |00.00.015 MXEngine started... |00.00.015 Create core... |00.00.015 Windowed 1024x768 |00.00.031 Create render device... |00.00.187 Create sprite engine... |00.00.203 Hardware render OK... |00.00.281 Texture loaded: F:\MXEngine DX9\MXEngine SDK\media\wood.png |00.00.296 Empty sprite created... |00.00.296 Create text buffer 300X30 |00.00.359 Texture reloaded: F:\MXEngine DX9\MXEngine SDK\media\wood.png |00.03.093 Relase texture: F:\MXEngine DX9\MXEngine SDK\media\wood.png |00.03.093 Relase texture: EMPTY_TEXTURE |00.03.093 Relase text buffer... |00.03.093 Unload core... |================================END================================|
Походу твоя видюха не создает текстуру 300X30...
И при попытке взять из нее сурфейс дохнет среда...
Закоментируй в коде все что связано со спрайтом spr2...
Или же, в крайнем случае, пробеги дебагером по коду... Если что выйдет отпишись пожалуйста...
Mikle
И еще, скажи что, на твой взгляд, еще нужно в 2D систему?
Привет, max255. У меня есть ряд вопросов по движку, ответь пож.
1. В данный момент движок рендерит при помощи и dx8 и dx9 одновременно? Есть возможность выбора? Или полного исключения того или иного?
2. Теперь для запуска на win7 при использование dx9 не будет необходимости что-то куда-то класть и регистрировать?
3. Для его работы вообще требуются какие либо примочки (шрифты, dll'ки, права админа и пр.)
4. Есть ли возможность из работающего приложения поменять размеры окна или перевести его в полноэкранный режим?
5. Каким образом происходит управление выделяемой выдеопаматью? Загрузил спрайт -
выделилась, выгрузил - очистилась?
6. Используются какие-либо шейдеры?
7. Движок полностью бесплатный, разрешается внесение изменений?
8. Если видеокарта не поддерживает dx9 и даже dx8, что произойдёт? Вылет, переход на софтрендер?
Пока всё
СырМан
Отвечу на те вопросы, которые больше касаются dx_vb:
> движок рендерит при помощи и dx8 и dx9 одновременно?
Только dx9.
> Теперь для запуска на win7 при использование dx9 не будет необходимости что-то
> куда-то класть и регистрировать?
Ничего не нужно делать, и не было нужно, это делалось для dx8.
> Для его работы вообще требуются какие либо примочки (шрифты, dll'ки, права админа и пр.)
dx_vb.dll положишь в папку с проектом, шрифты - если используешь нестандартные, иначе не нужно, права админа не требуются.
> Есть ли возможность из работающего приложения поменять размеры окна или
> перевести его в полноэкранный режим?
Можно, можно и размер окна поменять.
> Если видеокарта не поддерживает dx9 и даже dx8, что произойдёт? Вылет, переход на софтрендер?
Полная поддержка всех фишек dx9 не требуется, должно поддерживаться только то, что применено. А видеокарт, которые бы не поддерживали dx9 вообще, я что-то не припомню, VooDoo1 ?
Протестировал работу примеров на разных компьютерах
1. На ноутбуке Win Xp Celeron M 1,6 Ггц, видео Via IGP UniChrom 32mb выявлены такие проблемы:
В примерах пляшущая дувочка-моль получилась не чёткая.
В примере Sprite_button.exe наблюдается резкое падение fps (с 78 до 2) при наведении на 2 кнопку (на танцующее чучело). Всё остальное работает.
2. На Win 7 Phenom II x4, видео Nvidia GTS 250 не работает Text.exe, всё остальное работает.
3. На Win XP Athlon 1,8 Ггц, видео ATI x1600pro все примеры работают.
Mikle
Спасибо за ответы!
СырМан
> 5. Каким образом происходит управление выделяемой выдеопаматью? Загрузил спрайт
> выделилась, выгрузил - очистилась?
Все верно... Можеш сам посмотреть деструктор класса спрайта... В нем удаляется указатель на текстуру...
Но!!! Злоупотреблять все же не стоит... Один раз создаешь в начале и сносишь в конце...
>6. Используются какие-либо шейдеры?
Пока нет, но думаю в будущем будут...
>7. Движок полностью бесплатный, разрешается внесение изменений?
Че хочешь делай... )))
>8. Если видеокарта не поддерживает dx9 и даже dx8, что произойдёт?
Таких уже нет...
>В примерах пляшущая дувочка-моль получилась не чёткая.
Это потому, что скорее всего видюха не держит pow2 текстуры... Это можно исправить... Но пока нет такого железа что-бы потестить...
В старом двиге поборол этод "дефект", тут надо докрутить...
>В примере Sprite_button.exe наблюдается резкое падение fps (с 78 до 2) при наведении на 2 кнопку (на танцующее чучело). Всё остальное работает.
Это потому, что в каждом кадре идет проверка альфы под указателем мыши... Там либо нужно оптимизировать код(не движка, самой проги...) либо не юзать проверку альфы как во втором случае...
>не работает Text.exe, всё остальное работает.
Вот тут я сам не пойму в чем дело... Вечером попробую пофиксить...
max255
> СырМан
> > 5. Каким образом происходит управление выделяемой выдеопаматью? Загрузил
> > спрайт выделилась, выгрузил - очистилась?
> Все верно... Можеш сам посмотреть деструктор класса спрайта... В нем удаляется указатель на текстуру...
> Но!!! Злоупотреблять все же не стоит... Один раз создаешь в начале и сносишь в конце...
А я всегда думал что постоянно нужно производить какие-то манипуляции с переносом текстуры из видео памяти в оперативную и обратно
max255
> Это потому, что в каждом кадре идет проверка альфы под указателем мыши... Там
> нужно оптимизировать код (не движка, самой проги...)
Каким образом?
> Но!!! Злоупотреблять все же не стоит...
Почему? Что произойдёт?
В грибах у меня каждый уровень и меню загружались и выгружались при необходимости.
> > . Используются какие-либо шейдеры?
> Пока нет, но думаю в будущем будут...
А шейдеры будет работать на видеокарте подобной Via IGP UniChrom?
Хотя, их же просто можно не использовать?
Тема в архиве.