*.avi, VFM.Pas, OpenGlProc.pas, dglut.pas, vfm.dcu, openglproc.dcu, dglut.dcu, ole2.dcuкто не хочет искать эти файлы пишите corei7985@mail.ru я передамunit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, OpenGl, jpeg, StdCtrls, Buttons,OpenGlProc, DGLUT,VFW;typeTForm1 = class(TForm)Timer1: TTimer;Panel1: TPanel;SpeedButton1: TSpeedButton;SpeedButton2: TSpeedButton;procedure FormCreate(Sender: TObject);procedure SpeedButton1Click(Sender: TObject);procedure Timer1Timer(Sender: TObject);procedure SpeedButton2Click(Sender: TObject);privatedc:hdc; hrc:HGLRC;procedure init;publicend;varForm1: TForm1; bit:tbitmap;Im:array[0..127,0..127,0..2] of GLubyte;aviname:pchar;delay:Longint;TmpBmp:TBitmap;Bmp:TBItmap;AviStream:PAVISTREAM;frame:PGETFrame ;Streaminfo:Tavistreaminfo;dwcurrframe: dword=0;pbmi:PBitmapInfoHeader;bits:pchar;hbmp:hbitmap;arrayimage:array[0..127,0..127,0..2] of glubyte;siz:integer=0; i,j:Integer;implementation{$R *.dfm}Procedure CrTex;vari,k:integer; c:integer;beginfor i:=0 to 127 dofor k:=0 to 127 dobeginc:=bit.Canvas.Pixels[i,k];Im[i,k][0]:=GetGvalue(c); Im[i,k][1]:=GetGvalue(c); Im[i,k][2]:=GetBvalue(c);end;GLTexImage2D(GL_TEXTURE_2D,0,GL_RGB,128,128,0,GL_RGB,GL_UNSIGNED_BYTE,@Im);end;Procedure SDCPF(dc:hdc);vari:Integer;pfd:TPixelFormatDescriptor;beginFillChar(pfd,sizeof(pfd),0);pfd.dwFlags:=PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;i:=ChoosePixelFormat(dc,@pfd); SetPixelFormat(dc,i,@pfd);end;procedure TForm1.init;varquad:GLUquadricObj;constlightpos0:array[0..3] of GLfloat=(-4,0,-4,0);beginglEnable(GL_LIGHTING);glEnable(GL_LIGHT0);glLightfv(GL_LIGHT0,GL_POSITION,@lightpos0);glEnable(GL_TEXTURE_2D);glEnable(GL_DEPTH_TEST);glEnable(GL_COLOR_MATERIAL);quad:=gluNewQuadric;GLUQuadricTexture(quad,true);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);//CrTex;pbmi:=AVIStreamGetFrame(frame,dwcurrframe);bits:=pointer(integer(pbmi)+SizeOf(tbitmapinfoheader));hbmp:=CreateDIBitmap(dc,pbmi^,CBM_INIT,bits,pbitmapinfo(pbmi)^,DIB_RGB_COLORS);tmpbmp.Handle:=hbmp;bmp.Canvas.StretchDraw(rect(0,0,bmp.Width,bmp.Height),tmpbmp);for i:=0 to bmp.Width-1 dofor j:=0 to bmp.Height-1 do beginarrayimage[i,j,0]:=getrvalue(bmp.Canvas.Pixels[i,j]);arrayimage[i,j,1]:=getGvalue(bmp.Canvas.Pixels[i,j]);arrayimage[i,j,2]:=getBvalue(bmp.Canvas.Pixels[i,j]);end;glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,128,128,0,GL_RGB,GL_UNSIGNED_BYTE,@Arrayimage);glNewList(1,GL_COMPILE);gluSphere(quad,1.0,50,50);glEndList;glEnable(GL_DEPTH_TEST);glViewport(100,80,ClientWidth div 2, ClientHeight div 2);end;-> prod
ПУТЬ К ИСТИНЕ!!!
:Хажи Магомедов
файлы которые нежно добавить в папку программы
*.avi, VFM.Pas, OpenGlProc.pas, dglut.pas, vfm.dcu, openglproc.dcu, dglut.dcu, ole2.dcu
кто не хочет искать эти файлы пишите corei7985@mail.ru я передам
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, OpenGl, jpeg, StdCtrls, Buttons,OpenGlProc, DGLUT,VFW;
type
TForm1 = class(TForm)
Timer1: TTimer;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
dc:hdc; hrc:HGLRC;
procedure init;
public
end;
var
Form1: TForm1; bit:tbitmap;
Im:array[0..127,0..127,0..2] of GLubyte;
aviname:pchar;
delay:Longint;
TmpBmp:TBitmap;
Bmp:TBItmap;
AviStream:PAVISTREAM;
frame:PGETFrame ;
Streaminfo:Tavistreaminfo;
dwcurrframe: dword=0;
pbmi:PBitmapInfoHeader;
bits:pchar;
hbmp:hbitmap;
arrayimage:array[0..127,0..127,0..2] of glubyte;
siz:integer=0; i,j:Integer;
implementation
{$R *.dfm}
Procedure CrTex;
var
i,k:integer; c:integer;
begin
for i:=0 to 127 do
for k:=0 to 127 do
begin
c:=bit.Canvas.Pixels[i,k];
Im[i,k][0]:=GetGvalue(c); Im[i,k][1]:=GetGvalue(c); Im[i,k][2]:=GetBvalue(c);
end;
GLTexImage2D(GL_TEXTURE_2D,0,GL_RGB,128,128,0,GL_RGB,GL_UNSIGNED_BYTE,@Im);
end;
Procedure SDCPF(dc:hdc);
var
i:Integer;
pfd:TPixelFormatDescriptor;
begin
FillChar(pfd,sizeof(pfd),0);
pfd.dwFlags:=PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
i:=ChoosePixelFormat(dc,@pfd); SetPixelFormat(dc,i,@pfd);
end;
procedure TForm1.init;
var
quad:GLUquadricObj;
const
lightpos0:array[0..3] of GLfloat=(-4,0,-4,0);
begin
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0,GL_POSITION,@lightpos0);
glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
quad:=gluNewQuadric;
GLUQuadricTexture(quad,true);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
//CrTex;
pbmi:=AVIStreamGetFrame(frame,dwcurrframe);
bits:=pointer(integer(pbmi)+SizeOf(tbitmapinfoheader));
hbmp:=CreateDIBitmap(dc,pbmi^,CBM_INIT,bits,pbitmapinfo(pbmi)^
,DIB_RGB_COLORS);
tmpbmp.Handle:=hbmp;
bmp.Canvas.StretchDraw(rect(0,0,bmp.Width,bmp.Height),tmpbmp);
for i:=0 to bmp.Width-1 do
for j:=0 to bmp.Height-1 do begin
arrayimage[i,j,0]:=getrvalue(bmp.Canvas.Pixels[i,j]);
arrayimage[i,j,1]:=getGvalue(bmp.Canvas.Pixels[i,j]);
arrayimage[i,j,2]:=getBvalue(bmp.Canvas.Pixels[i,j]);
end;
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,
128,128,
0,GL_RGB,GL_UNSIGNED_BYTE,@Arrayimage);
glNewList(1,GL_COMPILE);
gluSphere(quad,1.0,50,50);
glEndList;
glEnable(GL_DEPTH_TEST);
glViewport(100,80,ClientWidth div 2, ClientHeight div 2);
end;
-> prod