HLFX.Ru Forum
Показать все 22 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Ковыряюсь в вгуи (https://hlfx.ru/forum/showthread.php?threadid=3545)


Отправлено Alex_Gordon 21-07-2012 в 19:08:

Ковыряюсь в вгуи

Решил поковырять вгуи. Появился вопрос: если грузить тгашку через vgui_LoadTGA, можно потом изменять ее ширину и высоту? просто setSize - private, а другого я что-то не нашел

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 21-07-2012 в 19:29:

Alex_Gordon
Никак. Смотри в сторону TexturedPanel.

__________________

xaerox on Vivino


Отправлено Alex_Gordon 22-07-2012 в 04:50:

XaeroX, ты наверное имел в виду ImagePanel. Ну да, там у нее паблик-функция setSize. Но картинка все равно обрезается. Где я дурак в данном случае?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 22-07-2012 в 07:56:

Alex_Gordon
Хм.. Может, я путаю. Значит, самому надо класс написать. Чтобы картинка растягивалась - её надо рисовать как текстуру, см. класс Panel и методы drawSetTexture и drawTexturedRect. В качестве текстуры годится Bitmap и его поле _id (тоже советую сделать подкласс).

__________________

xaerox on Vivino


Отправлено marikcool 23-07-2012 в 04:26:

drawTexturedRect это же ножницы, там нет методов растягивания, все без масштабирования рисуется.


Отправлено HAWK0044 23-07-2012 в 10:40:

marikcool отож я ему и сказал ,что надо через ОГЛ рисовать, а он ломается.


Отправлено XaeroX 23-07-2012 в 13:34:

HAWK0044
В хлфх, в vgui3, есть возможность ставить произвольные растянутые бэки на панели. И емнип, я сделал это именно через эти функции:

C++ Source Code:
1
void CVgui3_BitButton :: paintBackground(void)
2
{
3
  if (_pImage)
4
  {
5
    int r,g,b,a;
6
    gViewPort->getTheme()->getPrimaryFontColor(_armed, r,g,b,a);
7
    drawSetColor(r,g,b,a + (int)floor((255 - a) * (1 - _alpha * _parentalpha)));
8
    drawSetTexture(_pImage->getTextureId());
9
    drawTexturedRect(1,1,_size[0]-1,_size[1]-1);
10
  }
11
  CVgui3_Button::paintBackground();
12
}

__________________

xaerox on Vivino


Отправлено HAWK0044 23-07-2012 в 19:26:

XaeroX ээээ... а ты думаешь ему легко будет vgui3 имплементировать?


Отправлено XaeroX 23-07-2012 в 19:35:

HAWK0044
В смысле - vgui3 имплементировать? Это ж просто название библиотеки.
Но в данном случае ему незачем библиотеку писать, достаточно пару собственных классов сделать в клиентке.

__________________

xaerox on Vivino


Отправлено marikcool 24-07-2012 в 08:30:

ну если работает то копипаст 2 строчки и норм.


Отправлено HAWK0044 24-07-2012 в 13:53:

XaeroX
в первом хл вроде как просто vgui или vgui2


Отправлено XaeroX 24-07-2012 в 14:05:

HAWK0044
А в хлфх - vgui3. Прошу любить и жаловать.

__________________

xaerox on Vivino


Отправлено Alex_Gordon 29-07-2012 в 12:13:

Боюсь, что появился еще один вопрос. Картинки, рисуемые вгуем, рисуются поверх худа. Можно ли это профиксить, и если да, то как?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 29-07-2012 в 13:40:

Вриатле.

C++ Source Code:
1
void V_PostRender( void )
2
{
3
  qboolean	draw_2d = false;
4
 
5
  R_Set2DMode( true );
6
 
7
  if( cls.state == ca_active )
8
  {
9
    SCR_TileClear();
10
    CL_DrawHUD( CL_ACTIVE );
11
    VGui_Paint();
12
  }

Нет, ну разве в самом движке их местами поменять.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Alex_Gordon 29-07-2012 в 15:18:

Дядя Миша, ок, спасибо. Будем разные варианты пробовать.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено HAWK0044 31-07-2012 в 10:00:

Alex_Gordon нет чтоб в худе через ОГЛ отрисовать.. или спрайтами на крайняк... Рисовать изображение через вгуи это еще большее извращение ,или как вы там это называете, чем рисовать через ОГЛ


Отправлено Alex_Gordon 31-07-2012 в 11:26:

Цитата:
HAWK0044 писал:
нет чтоб в худе через ОГЛ отрисовать

мой мооозг. В худе через огл? это как вообще?

Цитата:
HAWK0044 писал:
крайняк... Рисовать изображение через вгуи это еще большее извращение ,

Мы - это кто?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 31-07-2012 в 11:55:

Цитата:
HAWK0044 писал:
Рисовать изображение через вгуи это еще большее извращение

А VGUI по твоему рендерится программно? Да точно так же через OpenGL

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено CrazyRussian 31-07-2012 в 12:01:

Цитата:
Alex_Gordon писал:
В худе через огл? это как вообще?

Вот если бы ты год назад был бы в моем универе когда я читал реферат по видеокартам(я в нем просто не мог не затронуть OpenGL), то знал бы как это.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено HAWK0044 31-07-2012 в 13:27:

Дядя Миша не, не помоему, а по ихнему он "как-то подругому" рисуеться, мотивируют не юзать огл в игровых библиотеках "чтоб грязного кода не было", не понимаю их вообще

Добавлено 31-07-2012 в 17:27:

Alex_Gordon в худе через ОГЛ, кроме как в худе ты сможешь только из дравнормал/транспарент трианглес нарисовать, но уже будет не то, так как это будет не в ортогональной области, если матрицу ортогонал не включать
берёшь и рисуешь:

C++ Source Code:
1
glBegin(GL_QUADS);
2
glTexCoord2f(0,0);
3
glVertex2f(x, y);
4
glTexCoord2f(0, 1);
5
glVertex2f(x,ey);
6
glTexCoord2f(1, 1);
7
glVertex2f(ex,ey);
8
glTexCoord2f(1, 0);
9
glVertex2f(ex,y);
10
 
11
glEnd();


а прицел небось всё равно через огл рисуешь


Отправлено XaeroX 31-07-2012 в 13:53:

Цитата:
CrazyRussian писал:
я в нем просто не мог не затронуть OpenGL

И халфу?

__________________

xaerox on Vivino


Отправлено Alex_Gordon 31-07-2012 в 15:32:

Цитата:
HAWK0044 писал:
а прицел небось всё равно через огл рисуешь

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

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Временная зона GMT. Текущее время 19:24.
Показать все 22 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024