GLEngine2D
Может кому пригодится, писалось для себя.
Надстройка над OpenGL
Возможности:
-цвет в формате RGBA
-точки
-линии
-градиентные линии
-треугольники
-градиентные треугольники
-4угольники
-прямоугольнки
-градиентные 4угольники
-эллипс под углом
-текст
-отрисовка изображений TGA BMP JPEG (с альфаканалом и смешиванием цветов)
-отрисовка видео (с альфаканалом и смешиванием цветов)
-аппаратное ускорение
-очень просто.
Примеры использования:
1 Инициализация
Код:
Uses
GlEngine
...
Var
GLE:TGLEngine;
im:Cardinal;
Video:TGLVideo;
....
GLE:=TGLEngine.Create;
// Указываем на чём рисуем и каким размером
GLE.VisualInit(GetDC(Panel1.Handle),Panel1.ClientWidth,Panel1.ClientHeight);
// Загружаем картинку
GLE.LoadImage(ExtractFilePath(application.ExeName)+'0.tga',im,false);
// Открываем видео - работает не у всех..
GLE.OpenVideo(PChar(ExtractFilePath(application.ExeName)+'300divx.avi'),Video);
2 Рисование
Код:
GLE.BeginRender;
GLE.SetColor(1,1,1,1); //текущий цвет RGBA
GLE.SetBKColor(1,1,1); //цвет фона
gle.PointSize(1); // размер точки
gle.PointSmooth(true); // сглаживать точки
GLE.Point(20,20); // рисуем точку в координатах 20, 20
GLE.LineWidth(1); //Толщина линии
GlE.Line(40,20,80,20); // рисуем линию
GlE.LineGrad(40,200+20,80,200+20,gle.ColorGL(Random,0,0,1),gle.ColorGL(0,0,random,1)); // градиентная линия
Остальное думаю будет понятно и без комментариев
Код:
Procedure Bolt(x1,y1,x2,y2:single); // ломаная
Procedure Arrow(x1,y1,x2,y2, size,angle:single;Solid:Boolean); // стрелка
Procedure PointSize(Size:single);
Procedure Point(x1,y1:single);
Procedure PointSmooth(Enable:Boolean);
Procedure Triangle(x1,y1,x2,y2,x3,y3:single);
Procedure TriangleGrad(x1,y1,x2,y2,x3,y3:single;c1,c2,c3:TGLColor);
Procedure Bar(x1, y1, x2, y2, x3, y3, x4, y4:single); Overload ;
Procedure Bar(x1, y1, x2, y2:single); Overload;
Procedure BarGrad(x1,y1,x2,y2,x3,y3,x4,y4:single;c1,c2,c3,c4:TGLColor);
Procedure Ellipse(x,y,r1,r2,AngleRotate:single;n:integer);
Procedure SetTextStyle(NameFont:string; size:integer);
Procedure TextOut(x,y:single; text:string);
Procedure KillFont;
Procedure SetColor(r,g,b,a:single);Overload;
Procedure SetColor(color:TGLColor);Overload;
Procedure SetBKColor(r,g,b:single);
Procedure SetFill(Mode:TGLFill);
Procedure DrawImage(x,y,w,h,Angle:single;Center:boolean;Image:GlInt);
Procedure DrawFrame(x1,y1,x2,y2:single;Center:boolean;var glVideo:TGLVideo);
Procedure CloseVideo(var glVideo:TGLVideo);
Procedure FinishRender;
Procedure VisualDone;
|