Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Sep 21, 2020 14:16

Foren-Übersicht » English » English Programming Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Try to compile but ...
BeitragVerfasst: Mo Mai 31, 2010 00:32 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 28, 2010 13:28
Beiträge: 25
Wohnort: Ελλάδα -- Greece
Programmiersprache: Delphi, FreePascal
I try to compile this code from the
viewtopic.php?f=2&t=5914&p=51135&hilit=avi+texture#p51135

but i get and error says

Code:
[Error] main.pas(84): Undeclared identifier: 'avi'
[Error] main.pas(87): Incompatible types: 'IAVIStream' and 'PAVIStream'
[Error] main.pas(90): Incompatible types: 'IAVIStream' and 'PAVIStream'
[Error] main.pas(91): Incompatible types: 'IAVIStream' and 'PAVIStream'
[Warning] main.pas(91): Combining signed and unsigned types - widened both operands
[Error] main.pas(104): Incompatible types: 'IAVIStream' and 'PAVIStream'
[Error] main.pas(228): Incompatible types: 'IGetFrame' and 'PGetFrame'
[Warning] main.pas(229): Combining signed and unsigned types - widened both operands
[Fatal Error] test.dpr(5): Could not compile used unit 'main.pas'


What happend...

_________________
Try to think first before you act....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Mo Mai 31, 2010 08:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Since line numbers absolutely don't match the code you could start by posting the real code. E.g. there is no identifier "avi" in the whole code.

If this is really the code you probably have some kind of compiler cache problem. Try to delete all temporary files generated by the compiler and try again.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Mo Mai 31, 2010 11:45 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 28, 2010 13:28
Beiträge: 25
Wohnort: Ελλάδα -- Greece
Programmiersprache: Delphi, FreePascal
Coolcat hat geschrieben:
Since line numbers absolutely don't match the code you could start by posting the real code. E.g. there is no identifier "avi" in the whole code.

If this is really the code you probably have some kind of compiler cache problem. Try to delete all temporary files generated by the compiler and try again.


sorry for the above here is the code
Code:
unit main;

interface

uses

Windows,
Messages,
SysUtils,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
vfw,
dglOpenGL,
Opengl;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ApplicationEventsIdle(Sender: TObject; var Done:  Boolean);
    procedure GrabAVIFrame(frame: integer);
    procedure xUpdate(milliseconds: DWORD);
  private
    { Private declarations }
    Texture: TGLuint;
    Data: Pointer;
    LastFrame, Next: Integer;
    mpf: integer;
    bmih: BITMAPINFOHEADER;
    h_bitmap: HBITMAP;
    pdata: PGLubyte;
    fhdd: HDRAWDIB;
    frame: integer;
    lastTickCount: Cardinal;
    VideoWidth, VideoHeight: Integer;
    StartTick : Cardinal;
    Frames    : Integer;
    psi: TAVIStreamInfo;
    pavi: IAVIStream;
    pgf: IGetFrame;
  public
    { Public declarations }
    RC        : HGLRC;
    DC        : HDC;
    VDC       : HDC; // VideoDeviceContext
    ShowFPS   : Boolean;
    FontBase  : GLUInt;
    FPS       : Single;

    procedure BuildFont(pFontName : String);
    procedure OpenAVI(szFile: LPCSTR);
    procedure PrintText(pX,pY : Integer; const pText : String);
    procedure ShowText;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.BuildFont(pFontName: String);
var
 Font : HFONT;
begin
FontBase := glGenLists(96);
Font     := CreateFont(16, 0, 0, 0, FW_MEDIUM, 0, 0, 0, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY, FF_DONTCARE or DEFAULT_PITCH, PChar(pFontName));
SelectObject(DC, Font);
wglUseFontBitmaps(DC, 0, 256, FontBase);
DeleteObject(Font)
end;

procedure TForm1.OpenAVI(szFile: LPCSTR);
var
  bmi: BITMAPINFO;
begin
AVIFileInit;                                                                  // P?ipravi' knihovnu AVIFile na pouz(iti'
  if AVIStreamOpenFromFile(pavi,szFile,streamtypeVIDEO,0,OF_READ,nil) <> 0 then // Otev?e AVI proud

    MessageBox(HWND_DESKTOP,'Failed To Open The AVI Stream','Error',MB_OK or MB_ICONEXCLAMATION); // Chybova'
  AVIStreamInfo(pavi,psi,sizeof(psi));
  VideoWidth := psi.rcFrame.Right - psi.rcFrame.Left;
  VideoHeight := psi.rcFrame.Bottom - psi.rcFrame.Top;
  lastframe := AVIStreamLength(pavi);
  mpf := AVIStreamSampleToTime(pavi,lastframe) div lastframe;
  with bmih do
    begin
    biSize := sizeof(BITMAPINFOHEADER);
    biPlanes := 1;
    biBitCount := 24;
    biWidth := 256;
    biHeight := 256;
    biCompression := BI_RGB;
    end;
  bmi.bmiHeader := bmih;
  h_bitmap := CreateDIBSection(VDC,bmi,DIB_RGB_COLORS,data,0,0);
  SelectObject(VDC,h_bitmap);
  pgf := AVIStreamGetFrameOpen(pavi,nil);
  if pgf = nil then
    MessageBox(HWND_DESKTOP,'Failed To Open The AVI Frame','Error',MB_OK or MB_ICONEXCLAMATION);

end;

procedure TForm1.PrintText(pX, pY: Integer; const pText: String);
begin
if (pText = '') then
 exit;
glPushAttrib(GL_LIST_BIT);
glRasterPos2i(pX, pY);
glListBase(FontBase);
glCallLists(Length(pText), GL_UNSIGNED_BYTE, PChar(pText));
glPopAttrib;
end;

procedure TForm1.ShowText;
begin
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glOrtho(0,640,480,0, -1,1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
PrintText(5,15, FloatToStr(FPS)+' fps');
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Data := NIL;
Texture := 0;
LastFrame := 0;
mpf := 0;
Frame := 0;
Next := 0;
VideoWidth := 0;
VideoHeight := 0;


InitOpenGL;
DC := GetDC(Handle);
RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0);
ActivateRenderingContext(DC, RC);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glClearColor(0,0,0,0);
glGenTextures(1, @Texture);
glBindTexture(GL_TEXTURE_2D, Texture);
glEnable(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, GL_BGR, GL_UNSIGNED_BYTE, @data);
VDC := CreateCompatibleDC(0);
fhdd := DrawDibOpen;
OpenAVI('1.avi');
BuildFont('MS Sans Serif');
Application.OnIdle := ApplicationEventsIdle;
StartTick := GetTickCount;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DeactivateRenderingContext;
wglDeleteContext(RC);
ReleaseDC(Handle, DC);
ChangeDisplaySettings(devmode(nil^), 0);
end;

procedure TForm1.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
var
  tickCount: cardinal;
  Left_Min, Top_Min, Right_Max, Bottom_Max: Integer;
begin
  glMatrixMode(GL_PROJECTION_MATRIX);
  glLoadIdentity;
  glViewPort(0, 0, ClientWidth, ClientHeight);
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

  Left_Min := 0;
  Top_Min := 0;
  Right_Max := ClientWidth;
  Bottom_Max := ClientHeight;
  glOrtho(0,ClientWidth,ClientHeight,0, 0,128);

  GrabAVIFrame(frame);

  glLoadIdentity;
  glBindTexture(GL_TEXTURE_2D, Texture);
  glBegin(GL_QUADS);
    glTexCoord2f(0,0); glVertex3f(0,Top_Min,0);
    glTexCoord2f(0,1); glVertex3f(0,Bottom_Max,0);
    glTexCoord2f(1,1); glVertex3f(Right_Max,Bottom_Max,0);
    glTexCoord2f(1,0); glVertex3f(Right_Max,0,0);
  glEnd;

  tickCount := GetTickCount;
  xUpdate(tickCount - lastTickCount);
  lasttickcount := tickCount;

ShowText;

SwapBuffers(DC);
Done := False;
sleep(10);


inc(Frames);

if GetTickCount - StartTick >= 500 then
 begin
 FPS       := Frames/(GetTickCount-StartTick)*1000;
 Frames    := 0;
 StartTick := GetTickCount
 end;
end;

procedure TForm1.GrabAVIFrame(frame: integer);
var
  lpbi: PBitmapInfoHeader;
begin
  lpbi := AVIStreamGetFrame(pgf,frame);
  pdata := Pointer(Integer(lpbi) + abs(lpbi.biSize) + lpbi.biClrUsed * sizeof(RGBQUAD));
  DrawDibDraw(fhdd,VDC,0,0,256,256,lpbi,pdata,0,0,VideoWidth,VideoHeight,0);
  glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 256, GL_BGR, GL_UNSIGNED_BYTE, data);
end;

procedure TForm1.xUpdate(milliseconds: DWORD);
begin
Inc(next,milliseconds);
  frame := next div mpf;
  if frame >= lastframe then
    begin
    frame := 0;
    next := 0;
    end;
end;

end.


How can i erase the compiler cache ?

_________________
Try to think first before you act....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Di Jun 01, 2010 06:52 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 28, 2010 13:28
Beiträge: 25
Wohnort: Ελλάδα -- Greece
Programmiersprache: Delphi, FreePascal
i Change the

Code:
psi: TAVIStreamInfo;
    pavi: IAVIStream;
    pgf: IGetFrame;


make it
Code:
psi: PAVIStreamInfo;
    pavi: PAVIStream;
    pgf: PGetFrame;


It compiles put i get an access violation in atiogxx.dll ...

Any help please...

My project count on this :(

_________________
Try to think first before you act....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Di Jun 01, 2010 07:44 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Do you have a stack trace of the access violation? If not, you could use a debugger to find the exact location in your code. When working without debugger you could write some debug message on standard output to track down the error.

I can't help you with the problem itself, I have no idea what you are doing there, except that it has obviously something to do with AVI streams.

Zitat:
How can i erase the compiler cache ?

I have no idea how to do that on Delphi. I'm using qmake/GCC on Linux...there you just have to call "make clean" and possibly regenerate your makefile. However, Delphi does probably not use Makefiles...but if I had to guess...a button somewhere near the compile button labeled "clean" or "recompile".

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Di Jun 01, 2010 07:55 
Offline
DGL Member

Registriert: Do Mär 05, 2009 20:17
Beiträge: 284
Wohnort: Kaiserslautern
azrael11 hat geschrieben:
sorry for the above here is the code
Code:
unit main;

interface

uses

{...}
dglOpenGL,
Opengl;

type
{...}




not sure but i read somewhere this can cause trouble too... to use 2 opengl headers in same project

regards


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Di Jun 01, 2010 08:44 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 28, 2010 13:28
Beiträge: 25
Wohnort: Ελλάδα -- Greece
Programmiersprache: Delphi, FreePascal
Coolcat hat geschrieben:
Do you have a stack trace of the access violation? If not, you could use a debugger to find the exact location in your code. When working without debugger you could write some debug message on standard output to track down the error.

i use the debugger and i get this message in this line
Code:
 VideoWidth := psi.rcFrame.Right - psi.rcFrame.Left;


Code:
[Warning] main.pas(92): Combining signed and unsigned types - widened both operands
[Hint] main.pas(187): Value assigned to 'Left_Min' never used
[Warning] main.pas(230): Combining signed and unsigned types - widened both operands


This works only if i change the
Code:
psi: TAVIStreamInfo;
    pavi: IAVIStream;
    pgf: IGetFrame;

to
Code:
psi: PAVIStreamInfo;
    pavi: PAVIStream;
    pgf: PGetFrame;



Coolcat hat geschrieben:
I can't help you with the problem itself, I have no idea what you are doing there, except that it has obviously something to do with AVI streams.


This code is to show avi movies to a texture. A simple code that is show in this thread
viewtopic.php?f=2&t=5914&p=51135&hilit=avi+texture#p51135

This put the avi in the six panels of a cude.

Thanks for your anwser...

_________________
Try to think first before you act....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Try to compile but ...
BeitragVerfasst: Di Jun 01, 2010 08:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 28, 2010 13:28
Beiträge: 25
Wohnort: Ελλάδα -- Greece
Programmiersprache: Delphi, FreePascal
Wölfchen hat geschrieben:
azrael11 hat geschrieben:
sorry for the above here is the code
Code:
unit main;

interface

uses

{...}
dglOpenGL,
Opengl;

type
{...}




not sure but i read somewhere this can cause trouble too... to use 2 opengl headers in same project

regards

Thanks for that ...
But have no effect if is in here or not.
In the last compile no use of it...

If there is someone that compile the code succesfully can he provide the source and the exe code so i test it?

The thread that i prefer above is in german so i don't speak german ...
Please help...

_________________
Try to think first before you act....


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » English » English Programming Forum


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.039s | 17 Queries | GZIP : On ]