![]() |
|
#1
|
|||
|
|||
![]() Может кому пригодится, писалось для себя.
Надстройка над 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); Код:
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; Последний раз редактировалось Demi, 09.04.2010 в 16:31. |