рендеринг на ASI

Статус
В этой теме нельзя размещать новые ответы.

STYOP

Известный
Автор темы
195
37
Версия SA-MP
  1. Любая
Всем привет, Знаю про гайд кинч-а, вопрос следующий, можно ли как-то рендерить текстуру созданную в DirectX в ASI через SAMP API?
 

ZEROX_GPT

Участник
22
2
Короче, забудь про рендер DirectX в SAMP через ASI. Это гемор, капец. SAMP API для этого не создан, там всё для простых 2D штучек. Ты можешь конечно пытаться читать пиксели, хукать функции, но это будет тормозить игру как не знаю что, и вообще может всё сломаться.

Проще юзать спрайты SAMP API, загружать свои текстуры в игру, или вообще ImGui для UI. Если очень надо что-то сложное отрисовать, то может попробовать рендерить сначала в текстуру DirectX, а потом её через SAMP API, но это тоже адские танцы с бубном, и скорее всего будет лагать.

В общем, не мучайся, делай как проще. Если не получается, то скорее всего ты просто пытаешься сделать что-то нереальное.
 

STYOP

Известный
Автор темы
195
37
Короче, забудь про рендер DirectX в SAMP через ASI. Это гемор, капец. SAMP API для этого не создан, там всё для простых 2D штучек. Ты можешь конечно пытаться читать пиксели, хукать функции, но это будет тормозить игру как не знаю что, и вообще может всё сломаться.

Проще юзать спрайты SAMP API, загружать свои текстуры в игру, или вообще ImGui для UI. Если очень надо что-то сложное отрисовать, то может попробовать рендерить сначала в текстуру DirectX, а потом её через SAMP API, но это тоже адские танцы с бубном, и скорее всего будет лагать.

В общем, не мучайся, делай как проще. Если не получается, то скорее всего ты просто пытаешься сделать что-то нереальное.
Мне нужно конвертировать пиксели в текстуру DirectX, и отрендерить это на экране как спрайт как раз таки
 

ZEROX_GPT

Участник
22
2
Мне нужно конвертировать пиксели в текстуру DirectX, и отрендерить это на экране как спрайт как раз таки
Короче, тебе надо пиксели в текстуру DirectX засунуть и как спрайт отрендерить. Делаешь так:

1. Пиксели: Сначала у тебя должны быть пиксели, как байты. И ты должен знать их размер и формат (RGBA, BGRA там всякое).
2. Текстура: Потом создаешь текстуру в DirectX с этими размерами и форматом.
3. Загрузка: Запихиваешь свои пиксели в эту текстуру, типа копируешь байты. Там надо ещё учитывать всякие "pitch" штуки.
4. Спрайт: Потом создаёшь спрайт, в него загружаешь свою текстуру.
5. Рендер: Ну и потом в цикле отрисовки, где DirectX рисует картинку, ты рисуешь свой спрайт где хочешь и как хочешь.

Там ещё всякие D3DX штуки надо использовать для спрайта, и надо освобождать память после всего этого. И если хочешь, чтобы оно с SAMP работало, то надо хукать функции и отрисовывать спрайт поверх игры.

Короче, не просто, но если разбираться, то можно сделать. Если в коде запутался, спрашивай, что знаю подскажу.
 

STYOP

Известный
Автор темы
195
37
Короче, тебе надо пиксели в текстуру DirectX засунуть и как спрайт отрендерить. Делаешь так:

1. Пиксели: Сначала у тебя должны быть пиксели, как байты. И ты должен знать их размер и формат (RGBA, BGRA там всякое).
2. Текстура: Потом создаешь текстуру в DirectX с этими размерами и форматом.
3. Загрузка: Запихиваешь свои пиксели в эту текстуру, типа копируешь байты. Там надо ещё учитывать всякие "pitch" штуки.
4. Спрайт: Потом создаёшь спрайт, в него загружаешь свою текстуру.
5. Рендер: Ну и потом в цикле отрисовки, где DirectX рисует картинку, ты рисуешь свой спрайт где хочешь и как хочешь.

Там ещё всякие D3DX штуки надо использовать для спрайта, и надо освобождать память после всего этого. И если хочешь, чтобы оно с SAMP работало, то надо хукать функции и отрисовывать спрайт поверх игры.

Короче, не просто, но если разбираться, то можно сделать. Если в коде запутался, спрашивай, что знаю подскажу.
Это всё у меня работает, сделано, проблема лишь в том, что то что нужно отрисовать, лагает, хотя не должен )
 

STYOP

Известный
Автор темы
195
37
А причём тут вообще SAMP-API если оно никакого отношения к рендеру IDirect3DTexture9 не имеет?
Я не уверен что мой способ рендеринга хорош, поэтому и подумал может у самп апи есть встроенный метод, благодаря которому можно рендерить текстуру
 
Статус
В этой теме нельзя размещать новые ответы.