Цитата:
Сообщение от T_N_W
Ага, кое что я уже нашел. То что у меня в private нужно перенести в public, а процедуры походу и прописывать не надо. procedure TForm1.GLInit; этоя так понял включает свет и цвет объекта.
|
Блин, я ввёл тебя в заблуждение. В реальности можно это запихнуть и в public и в private и вообще в глобальную переменную: ничего не изменится.
А GLInit м... я её удалил уже вчера.
Цитата:
Сообщение от T_N_W
Проблема частичьно решена. Таймер убрал полностью и все что с ни связвно. SwapBuffers(DC) перенес в конец процедуры WMPaint.
|
А вот это точно твоя ошибка! Верни таймер и зубудь про WMPaint. Вот есть книга именно о OpenGL в Delphi:
http://c-books.info/books/load.php?ty=delphi
Плюс посмотри на это:
procedure TForm1.WMPaint(var Msg: TWMPaint);
var
quadObj : gluQuadricObj;
begin
quadObj := gluNewQuadric;//новый объект
glRotate(5.0, 0.0, 1.0, 0.0);//повернём
glPushMatrix;//перейдём к новым координатам, сохранив старые
glRotated(-90,1.0,0.0,0.0);//ещё раз повернём
gluSphere(quadObj,1.3,20,20);//а теперь нарисуем сферу "1.3 - радиус",
// а 20 и 20 - это колличество разбиений
glPopMatrix;//перейдём к старым координатам
gluDeleteQuadric(quadObj);//эта функция сделает "чёрную" работу
end;
Ага, "повернём"

. Да так повернём, что потом все объекты будут поворачиваться т.к. сначало нужно запомнить текущую матрицу трансформации функцией glPushMatrix. И ещё раз повторяю, верни таймер на место!
Есть у меня одна хорошая для тебя демка:
http://rapidshare.de/files/48877305/gl_demo.rar.html [только учти (!), там не включай "FBO текстуру", а то просто зависнит, я там с ней неправильно работал]