Пишу МР3-плеер (к примеру), вместо кнопочек неплохо бы смотрелись вращающиеся OGL-сферки, но можно ли, и вообще, подскажите по этому поводу что-нибудь, пожалуйста.
Или просто цепочку картинок грузят в ImageList, создают таймер и в цикле их "анимируют". Это меньше десятка вызовов API, низкая загрузка системы и GL вообще не нужен А я думал, что только у MS возникают подобные сабжу идеи.
Я немного коряво сформулировал вопрос (за что и получил гору флуда!).В инете очень много сорцев с простейшими примерами- сферы, торы всякие, и даже (прости господи) чайники, или сразу серьёзные полноэкранные проги. А в прикладном окошечном программировании можно использовать OpenGL (многие задачи с его помощью, видимо, решить проще и эффективнее)? Попытка использовать контекст изображения не принесла плодов
V_I_P_er Какая разница-то, оконная реализация или фулскрин??? Блин, ставь WS_POPUP или WS_OVERLAPPEDWINDOW и радуйся жизни. Проще - возможно. Эффективнее - никак нет. Если не требуется прога "а ля 3D MAX", то GDI будет эффективнее. Всмысле рациональнее по ресурсам.
V_I_P_er Ты хочешь ничего не изучая взять и прикрутить OpenGL. Тебе же придется реализовывать свой GUI. Поэтому проще и эффективнее, если ты не хочешь особо вникать, воспользоваться GDI.
Примерный способ решения (хотя OpenGL-кнопы - это бред имхо ) Код (Text): dc = GetDC(...); /* заполняешь структуру PIXELFORMATDESCRIPTOR */ .. .. ChoosePixelFormat(...); SetPixelFormat(...); wglCreateContext(...); wglMakeCurrent(...); на выходе: Код (Text): wglMakeCurrent(NULL, NULL); wglDeleteContext(...); Рисовать можно где угодно, только контект получи. А вообще - RTFM
Наконец-то пошла "крупная рыба" . Barracuda, настраивать диалог с ОГЛ я умею, ты подскажи вот что: Кнопка- то-же окно, только с предопределённым стилем (классом). Я смог создать регион- круг (эллипс, если угодно), и "натянул" на него прекрасную-распрекрасную сферу. Отдельным окном оно быть согласно, а ужиться в другом Main-окне в позорной роли кантрола ну никак не желает. Немогу предоставить (пока) нужную часть исходника, на рабочем компе нет с'ёмных носителей и инета. Может ли ОГЛ работать совместно с GUI ?
А какая разница для OpenGL, куда рисовать - в окно или на кнопку (эдит-бокс, куда угодно ещё)? Имхо - никакой. Для начала я советую попытаться сделать так, как я написал. Т.е. берём обычную кнопку, получаем её хендл, вызываем GetDC(my_button_handle) и т.д. (см. выше) Если не получится - будем думать дальше Когда-то очень давно я тоже задался вопросом рисования в неглавном окне, тогда я выбрал edit-box, и всё рисовалось в этот эдит-бокс (машинка в 3d )), а при нажатии на кнопки окошко мигало и мелькал текст, который был в эдит-боксе Так что и с кнопкой проблем быть, по-моему, не должно.
S_T_A_S_ Не понт. Далеко не понт ogl каждый лох подцепить может Самый рулез - баттон на софтварном воксельном движке ))
Какая-то странная структура у софтины ... Наверное пишешь драгндропом ? Хех ... Ну а CreatePipe не поможет ? Будет тебе твой контрол главным (у себя) $)
Насчет драгндропа- ты меня раскусил. CreatePipe? Я не хотел бы создавать лишний процесс, надеясь ограничиться написанием для дочернего окна персональной процедуры-обработчика нужных сообщений (б**, 2 раза писал и стирал слово прерываний). Разобрался я (почти), в чем былам трабла. Короче, проблема была офф-топик, мои извинения!
Может и не в тему, случайно наткнулся на примеры от microsoft: The OPENGL attributes sample creates a control that draws a spinning cube using the OpenGL graphics library The DIRECT3D attributes sample creates a control that draws a spinning triangle using the Direct3D graphics library.