Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизВопрос по OpenGL, программа не работает, подскажите, в чем дело! Найти похожие ветки
← →
Michael5 (2006-02-04 19:12) [0]Пытаюсь научиться рисовать на рабочем столе.
Костафей дал ссылку на книжку-хелп Михаила Краснова (спасибо им обоим, очень нравится), но к ней не приложены примеры. В книге только выдержки из программ, и у меня подозрение, что я чего-то упускаю. Результата работы программ не видно.procedure TForm1.Button1Click(Sender: TObject);
begin
glLineWidth (33);
glBegin (GL_LINES);
glVertex2f (-1, 1);
glVertex2f (1, -1);
glVertex2f (-1, -1);
glVertex2f (1, 1);
glEnd;
end;
Как я себе представляю, эта программа должна перечеркнуть форму по нажатии баттона... А нету... Подскажите пожалуйста, в чем тут дело?!
← →
Кефир87 © (2006-02-04 19:18) [1]Так ничего и не заработает. Ктож так делает?! А где инициализация?! Учи мат. часть! Читай Краснова!
← →
Desdechado © (2006-02-04 19:22) [2]http://pmg-ru.narod.ru/russian/nehe/
народный учабник по OpenGL
← →
Michael5 (2006-02-04 19:59) [3]Да всю главу перечитал, ничего не понял. Про инициализацию не знал. Пример с использованием GDI ведь работает, что меня с толку и сбило.
Спасибо за ссылку!
← →
Кефир87 © (2006-02-04 20:18) [4]
> Да всю главу перечитал
Какую?! Надо читать с самого начала.
← →
Michael5 (2006-02-04 20:31) [5]Да, понял, ув.Кефир, почитал, чего-то добавил, заработало:
var
dc: HDC;
begin
SetDCPixelFormat(Canvas. Handle); //задаем формат пиксела
hrc:= wglCreateContext(Canvas. Handle); // создаем контекст воспроизведения
dc:= GetDC (0); // получаю ссылку на рабочий стол
wglMakeCurrent (dc, hrc); // установить контекст
//wglMakeCurrent (Canvas. Handle, hrc); // установить контекст
glBegin (GL_LINES);
glVertex2f (-1, 1);
glVertex2f (1, -1);
glVertex2f (-1, -1);
glVertex2f (1, 1);
glEnd;
...
Теперь другое не получается: оригинальную строкуwglMakeCurrent (Canvas. Handle, hrc); // установить контекст
я подправил ссылкой на рабочий стол - не работает...
Да, Desdechadо, ссылка какая-то кривая... Но, впрочем, я теперь знаю, что искать!
← →
Michael5 (2006-02-04 20:48) [6]Ой, неправильно! формально правильно было бы так (с точки зрения синтаксиса):
dc:= GetDC (0); // получаю ссылку на рабочий стол
SetDCPixelFormat(dc); //задаем формат пиксела
hrc:= wglCreateContext(dc); // создаем контекст воспроизведения
wglMakeCurrent (dc, hrc); // установить контекст
т.е. беру ссылку на рабочий стол, и использую ее вместо Canvas. Handle.
Тоже не работает...
← →
grouzd[E]v © (2006-02-04 20:54) [7]
> В книге только выдержки из программ
Не, там была куча примеров. Спроси XProger"a, у него вроде были с дискетки, я свою посеял где-то =)
---
... we are walking on a thin line and you better avoid the risk ...
← →
grouzd[E]v © (2006-02-04 21:01) [8]А вот и дискета, делов-то (592кб)
http://www.libray.narod.ru/Program/DOpenGL/OpenGL_Samples.rar
---
... we are walking on a thin line and you better avoid the risk ...
← →
Кефир87 © (2006-02-04 21:08) [9]
> Michael5 (04.02.06 20:48) [6]
Я те што сказал?! На десктопе нельзя! Ты когданить такое видел?! OpenGL на рабочем столе гы 8) Одно дело оверлей и то по моему это умеет только DirectDraw.
← →
Michael5 (2006-02-04 21:09) [10]Блин, я уже ИксПрогеру успел написать!!! :))
Придется отписываться...
Спасибо большое!
← →
Michael5 (2006-02-04 21:13) [11]
> Кефир87 © (04.02.06 21:08) [9]
Елки, а как надо-то???!
Хочу сделать вывод на десктоп, программку - в трей. (На экране хочу создавать табличку, но это уже подробности...)
А как тогда это сделать? Как работают настольные календари (по типу rainlendar"а и т.п.)
Ничерта не пойму, подскажи!
← →
Кефир87 © (2006-02-04 21:22) [12]Никогда не видел эти календари, но видимо их рисуют на десктопе. Но НЕ с помощью OpenGL. Для примера, попробуй сделать Canvas.Handle := GetDC(0) и нарисовать на нем что-нибудь. Или на окошке особенном каком-нибудь 8)
← →
Michael5 (2006-02-04 22:03) [13]Да не, это масло масляное...
В общем, попробовал - не работает.
А вывод интересует именно на десктоп
← →
Кефир87 © (2006-02-04 22:43) [14]Блин. Нарисовать чтонибудь НЕ используя OpenGL! Канвасом: Canvas.Ellipe и т.д.
← →
Desdechado © (2006-02-04 22:54) [15]> ссылка какая-то кривая...
ссылка с переадресацией, нормальная
← →
Michael5 (2006-02-04 23:30) [16]А у рабочего стола тоже есть канва? Может, и вариант.
← →
Кефир87 © (2006-02-04 23:57) [17]
> Michael5 (04.02.06 23:30) [16]
>
> А у рабочего стола тоже есть канва?
Ну считай так, если так будет проще 8) Делаешь Canvas.Handle := GetDC(0). И рисуй на нем как обычно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c