All pastes #18081 Raw Edit

Steve

public text v1 · immutable
#18081 ·published 2005-07-19 20:45 UTC
rendered paste body
   //  When the program is created

procedure TfmMain.FormCreate(Sender: TObject);
var
  DC:HDC;
  RC:HGLRC;
  i:integer;
  tmpJpg : TJPEGImage;
begin
    // Load the jpg into a bitmap
  tmpJpg := TJPEGImage.Create;
  try
    tmpJpg.LoadFromFile('./spark0.jpg');
    BackBmp := tbitmap.Create;
    BackBmp.Assign(tmpJpg);
  finally
    tmpJpg.Free;
  end;

    // Make the OpenGL bit
  DC:=GetDC(Panel1.Handle);
  SetupPixelFormat(DC);
  RC:=wglCreateContext(DC); //makes OpenGL window out of DC
  wglMakeCurrent(DC, RC);   //makes OpenGL window active
  GLInit;                   //initialize OpenGL
end;


   //  Start OpenGL stuff
procedure GLInit;
begin
  glMatrixMode(GL_PROJECTION);
  gluOrtho2D(0,512,0,512);
  glMatrixMode(GL_MODELVIEW);
  glEnable(GL_DEPTH_TEST);

  glGenTextures(1,@BackTex);

    // Bind the texture
  glBindTexture(GL_TEXTURE_2D, BackTex);
  glTexImage2D(GL_TEXTURE_2D,0,3,512,512,0,GL_RGB,GL_BITMAP,BackBmp);
end;


   // Draw the stuff
procedure TfmMain.Draw2D;
const
  W=512; H= 512;
begin
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glLoadIdentity;

  glBindTexture(GL_TEXTURE_2D, BackTex);
  glBegin(GL_POLYGON);
    glTexCoord2f(0,0); glVertex2f(0, 0);
    glTexCoord2f(0,H); glVertex2f(0, H);
    glTexCoord2f(W,H); glVertex2f(W, H);
    glTexCoord2f(W,0); glVertex2f(W, 0);
  glEnd();

  SwapBuffers(wglGetCurrentDC);
end;