HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Рисование линий на экране через TriAPI (https://hlfx.ru/forum/showthread.php?threadid=5536)
Отправлено SNMetamorph 07-07-2020 в 07:42:
Рисование линий на экране через TriAPI
Думал, что все окажется прозрачно и просто, но возникла одна проблема
Есть такой вот код для рисования, который вызывается из HUD_DrawTransparentTriangles()
C++ Source Code:
1 | g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal); |
2 | g_pClientEngFuncs->pTriAPI->Brightness(1.0f); |
3 | g_pClientEngFuncs->pTriAPI->CullFace(TRI_NONE); |
5 | g_pClientEngFuncs->pTriAPI->Begin(TRI_LINES); |
6 | g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255); |
7 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA); |
8 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB); |
10 | g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255); |
11 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA); |
12 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB); |
13 | g_pClientEngFuncs->pTriAPI->End(); |
15 | g_pClientEngFuncs->pTriAPI->CullFace(TRI_FRONT); |
16 | g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal); |
Линии рисуются, но проблема в том, что цвета её меняются абсолютно рандомно, когда я перемещаюсь по карте или двигаю камерой стоя на месте.
Что я сделал не так?__________________
Мой сайт
Xash3D Modding Discord
Отправлено SNMetamorph 15-07-2020 в 04:33:
Таки разобрался с этой проблемой.
Пришлось в проект подключить заголовочные файлы виндусных gl-функций.
C++ Source Code:
Затем, код который я изначально приводил как пример, обрёл такой вид
C++ Source Code:
1 | glDisable(GL_TEXTURE_2D); |
2 | g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal); |
3 | g_pClientEngFuncs->pTriAPI->Brightness(1.0f); |
4 | g_pClientEngFuncs->pTriAPI->CullFace(TRI_NONE); |
5 | g_pClientEngFuncs->pTriAPI->Begin(TRI_LINES); |
6 | g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255); |
7 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA); |
8 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB); |
9 | g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255); |
10 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA); |
11 | g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB); |
12 | g_pClientEngFuncs->pTriAPI->End(); |
13 | g_pClientEngFuncs->pTriAPI->CullFace(TRI_FRONT); |
14 | g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal); |
15 | glEnable(GL_TEXTURE_2D); |
И всё, цвета перестали моргать и произвольно меняться!
Т.е. учитывая всё сделанное выше, TriAPI в GoldSrc не позволяет нормально рисовать линии без использования сторонних средств. Но вот этот фикс в подавляющем большинстве случаев сработает.__________________
Мой сайт
Xash3D Modding Discord
Отправлено XaeroX 15-07-2020 в 05:26:
Цитата:
SNMetamorph писал:
TriAPI в GoldSrc не позволяет нормально рисовать линии без использования сторонних средств
g_pClientEngFuncs->pTriAPI->SpriteTexture c white.spr?__________________
Отправлено SNMetamorph 15-07-2020 в 10:09:
Цитата:
XaeroX писал:
g_pClientEngFuncs->pTriAPI->SpriteTexture c white.spr?
О, ну это тоже наверняка сработать должно. Не знал про этот костыль.__________________
Мой сайт
Xash3D Modding Discord
Отправлено Дядя Миша 15-07-2020 в 10:57:
Почему костыль? Я и в OpenGL так частенько рисую. Когда не хочется выключать текстуру.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено KiQ 16-07-2020 в 07:11:
Дядя Миша переключение текстуры менее затратно, чем выключение?
__________________
-Brain is dead-
Отправлено Дядя Миша 16-07-2020 в 09:55:
KiQ Просто чтобы стейт не сбивать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'