Hola gente! Es mi primer post aquí. Me alegro mucho de haber encontrado un sitio como éste, especialmente en este momento en el que estoy dando mis primeros pasos en OpenGL y ni bien intento probar el ejemplo más básico del libro "Delphi Developer's Guide to OpenGL" ya tengo problemas.
El ejemplo en cuestión consta de código para los eventos OnCreate, OnDestroy y OnPaint. Pido disculpas si es demasiado código pero creo que copiarlo es lo mejor:
procedure TForm1.FormCreate(Sender: TObject);
var
pfd: TPixelFormatDescriptor;
FormatIndex: integer;
begin
fillchar(pfd,SizeOf(pfd),0);
with pfd do
begin
nSize := SizeOf(pfd);
nVersion := 1; {The current version of the desccriptor is 1}
dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL;
iPixelType := PFD_TYPE_RGBA;
cColorBits := 24; {support 24-bit color}
cDepthBits := 32; {depth of z-axis}
iLayerType := PFD_MAIN_PLANE;
end; {with}
FormatIndex := ChoosePixelFormat(Canvas.Handle,@pfd);
GLContext := wglCreateContext(Canvas.Handle);
wglMakeCurrent(Canvas.Handle,GLContext);
end; {FormCreate}
procedure TForm1.FormPaint(Sender: TObject);
begin
{background}
glClearColor(0.0,0.4,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
{error checking}
errorCode := glGetError;
if errorCode<>GL_NO_ERROR then
raise Exception.Create('Error in Paint'#13+
gluErrorString(errorCode));
end;
El error se produce en FormPaint, el IF indica que se produjo un error y se levanta la excepción. No tengo idea de lo que lo puede estar causando :S Estoy usando Turbo Delphi.
Agradecería cualquier tipo de ayuda! Saludos.