Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#1

OpenGL glPixelStorei problem, vermute ich ;-)

  Alt 7. Jun 2009, 15:43
Hallo Freunde...

Brauch wiedermal dringen eure Hilfe. Folgendes:
Ich mach grad ein OpenGL Buch durch und da habe ich probleme bei einem kleinen Beispielprogramm.
Und zwar habe ich das Programm sogar von der Source CD kopiert und des geht auch net.

Im Buch steht: "For OpenGL bitmaps on some versions of Windows you may need to use 4 for double-word alignment. (in glPixelStorei)"

Aber das bringt auch nichts.
Das gewünschte Ergebnis wäre ein Kariertes "Bild" auf dem Display.
Leider passiert gar nichts, nur die Hintergrundfarbe ist Blau wies sein soll.

Code:

Delphi-Quellcode:
implementation

{$R *.DFM}

type
  TBitRow=array[0..7] of byte;
  TCheckerBoard=array[0..63] of TBitRow;

var
  CheckerBoard: TCheckerBoard;

procedure MakeCheckerBoard;
var
  col,
  row: integer;
  square,
  start: byte;
begin
  fillchar(CheckerBoard,SizeOf(CheckerBoard),0);
  start := 0; {black}
  for row := 0 to 63 do
  begin
    if row mod 8 = 0 then
      start := not start; {alternate $00 $FF}
    square := start;
    for col := 0 to 7 do
    begin
      square := not square;
      CheckerBoard[row,col] := square;
    end; {for}
  end; {for}
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  glPixelStorei(GL_UNPACK_ALIGNMENT,1);
  MakeCheckerBoard;
  GlColor3f(0.6,0.1,0.3);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glRasterPos3f(+0.0,+0.0,-2.0);
  glBitmap(64,64,0,0,0,0,@CheckerBoard);
  glFlush;
  OpenGL1.ErrorCheck('FormPaint');
end;
Hat jemand eine Idee?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat