Entwickler-Ecke

Multimedia / Grafik - OpenGl Zugriffsverletzung


Andreas95 - So 16.01.11 00:41
Titel: OpenGl Zugriffsverletzung
Ich habe jetz mal versucht mit opengl anzufangen, und benutze dabei den 2d tutorial: http://wiki.delphigl.com/index.php/Tutorial_2D

Wenn ich alles tuhe, bis zum ende des Teils "das objekt anzeigen" und versuche, das programm zu starten, kommt diese Fehlermeldung:
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit einzelne Anweisungen oder Start Fortsetzen.

Hier mein Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls,textures, StdCtrls, Buttons, dglopengl;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  MyTex : glUInt;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   LoadTexture('C:\Borland\Neuer Ordner\textures\bean1\bean0000.tga', MyTex, False);
  glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, MyTex);
 glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.1);
glBegin(GL_QUADS);
 glTexCoord2f(0,0); glVertex3f(-100/2, -100/2,0);
 glTexCoord2f(1,0); glVertex3f(+100/2, -100/2, -0);
 glTexCoord2f(1,1); glVertex3f(+100/2, +100/2, -0);
 glTexCoord2f(0,1); glVertex3f(-100/2, +100/2, -0);
glEnd;
end;

end.


Kann es sein das ich etwas falsch eingestellt habe, wie der Header?
Oder ist es was anderes?
Ich bin in diesem Thema absolutem anfänger also wäre es toll wenn jemand ein Grund dafür weiss :)


F34r0fTh3D4rk - So 16.01.11 01:06

Du musst erst einen OpenGL Renderkontext aufsetzen, falls du das noch nicht getan hast. Sämtliche Routinen zur Initialisierung von OpenGL fehlen in deinem Code, außerdem wird man nicht im OnCreate-Event zeichnen wollen.

Schau mal hier: http://wiki.delphigl.com/index.php/Tutorial_Lektion_1


Bergmann89 - So 16.01.11 01:07

Hey,

das 2D Tutorial beschäftigt sich ausschließlich mit Sachen, die das 2D rendering betreffen. Aber um eine ordentliches OpenGL Bild zu bekommen ist noch weitaus mehr nötig. Am bessten du guckst dir mal das QuickStart [http://wiki.delphigl.com/index.php/Tutorial_Quickstart]-Tutorial an. Da wird beschrieben, wie man zu korrekten Ausgaben kommt. Bei dir fehlt die Erstellung des RenderContexts, die Ausgabe des FrameBuffers und die Initialisierung des Viewports und der ProjektionsMatrix, sowie einige kleinere Initialisierungs-Befehle.

€: zu langsam :)

MfG Bergmann.


Andreas95 - So 16.01.11 12:25

:autsch: Natürlich.. hab ich total misachtet, danke.