Куски моего кода (любитель я, сильно не бейте плз.):
- Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenGLControl1:=TOpenGLControl.Create(Self);
with OpenGLControl1 do begin
Name:='OpenGLControl1';
Align:=alNone;
Parent:=Self;
OnPaint:=@OpenGLControl1Paint;
AutoResizeViewport:=false;
SetBounds(OscLeft,OscTop,OscWidth+OscLeft,OscHeight+OscTop);
end;
Application.AddOnIdleHandler(@OnAppIdle);
//*************************************************
end;
procedure TForm1.OpenGLControl1Paint(Sender: TObject);
begin
glClearColor(0, 0, 0, 0); //четвертый параметр - алфа
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //очистка буферов цвета и глубины
glEnable(GL_DEPTH_TEST); //тест глубины включен (используется для НЕрисования невидимых частей)
glMatrixMode(GL_PROJECTION); //управление проекцией матрицы включено
glLoadIdentity(); //сброс матрицы
glOrtho( -1, 1, -1, 1, -1, 1);
//gluPerspective(45.0, 1, -1, 1.0); //использовать перспективу и задать её параметры
//(угол нашего обзора, измеряемый в градусах вдоль оси Y,
//видимая часть оси X - width/height,
//Третий аргумент задает параметр для ближнего отсечения. Каждое значение Z, меньшее этого параметра, будет отсекаться,
//Четвертый параметр — это параметр для дальнего отсечения. Всякое значение, большее передаваемого параметра, отображаться не будет)
glMatrixMode(GL_MODELVIEW); //управление видом матрицы включено
glLoadIdentity(); //сброс матрицы
glTranslatef(0.0, 0.0,1); //смещение точки отсчета координат (dx,dy,dz)
// glRotatef(cube_rotationx, cube_rotationy, cube_rotationz, 0.0); //поворот системы координат
// на (угол,вектор х компонента, у, z)
glLineWidth(3);
// glEnable(GL_LINE_SMOOTH); //включить сглаживание
glBegin(GL_Lines);
glColor3f(0.0,0.0,1.0);
glVertex3f(-1,-1,-1);
glVertex3f(1,-1,-1);
//****здесь рисуются данные принятые из потока*****
glEnd();
OpenGLControl1.SwapBuffers; // показать нарисованное/скрыть старое
end;
procedure TForm1.OnAppIdle(Sender: TObject; var Done: Boolean);
begin
OpenGLControl1.Invalidate;
Done:=true;
end;
Добавлено спустя 20 часов 31 минуту 29 секунд:
Проблема исчезает при замене ScrollBar на TrackBar. Всётаки хотелось бы услышать ответ на сабж.