OpenGL GUI (С++)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by dos999, 16 May 2011.

  1. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    Всем привет!

    Возникла необходимость нарисовать в OpenGL небольшой интерфейс пользователя, пару кнопочек, список и т.д.

    Подскажите плиз есть ли какая ни будь библиотека облегчающая данную задачу? А тот как то не очень хочется изобретать велосипед...
     
  2. GettoLove

    GettoLove New Member

    Joined:
    5 Apr 2008
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    QT? вот неплохие ответы на эту тему:
    http://stackoverflow.com/questions/211018/what-is-the-best-free-cross-platform-opengl-gui-library-for-a-video-game
     
  3. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    нет, не Qt (среда неважна), но за линк спасибо, есть над чем подумать.
     
  4. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Я предлогаю поковыряться в библиотеках glut.h ,а так же glaux.h
    В них много полезного как для создание,основной акцент и идёт на работу с 3d обьектами, но разумеется, 2d никто не отменял.Посмотри разделы о текстурирование и загрузки обьектов(Obj-Loader)
    Так же можно найти кое что полезное здесь http://pmg.org.ru/nehe/
    и здесь
    http://www.gamedev.net/
     
    #4 Spot, 17 May 2011
    Last edited: 17 May 2011
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Именно OpenGL ? не GDI не GDI+ ?

    http://www.rsdn.ru/article/gdi/gdiplus1.xml

    Если мутишь скин, то лучше всего сделать конфиг файл своего формата... например

    X,Y,width,height,type,action,path
    5,0,100%,25,BUTTON,IDB_START,"./skin/but_start.png"

    И в программе обрабатывать нажатие кнопки мышки.
    Code:
    	case WM_LBUTTONDOWN:
    	case WM_MOUSEMOVE:
    {
    			POINT pt;
    			pt.x = GET_X_LPARAM(lParam); 
    			pt.y = GET_Y_LPARAM(lParam); 
    
    for(int i=0;i<count_elements;i++) {
    				if (MK_LBUTTON == wParam && PtInRect((LPRECT) &element[i].r, pt)) {
    					SendMessage(hWnd,WM_COMMAND,element[i].mes,NULL); 
    					break; }
    				}
    break;
    }
    
    ^ типа того...
     
    _________________________