• Lunes 23 de Diciembre de 2024, 15:50

Autor Tema:  Principiante En Opengl  (Leído 2041 veces)

leandro.tami

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Principiante En Opengl
« en: Martes 3 de Octubre de 2006, 20:33 »
0
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:

Código: Text
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3.   pfd: TPixelFormatDescriptor;
  4.   FormatIndex: integer;
  5. begin
  6.   fillchar(pfd,SizeOf(pfd),0);
  7.   with pfd do
  8.   begin
  9.     nSize := SizeOf(pfd);
  10.     nVersion := 1; {The current version of the desccriptor is 1}
  11.     dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL;
  12.     iPixelType := PFD_TYPE_RGBA;
  13.     cColorBits := 24; {support 24-bit color}
  14.     cDepthBits := 32; {depth of z-axis}
  15.     iLayerType := PFD_MAIN_PLANE;
  16.   end; {with}
  17.   FormatIndex := ChoosePixelFormat(Canvas.Handle,@pfd);
  18.   GLContext := wglCreateContext(Canvas.Handle);
  19.   wglMakeCurrent(Canvas.Handle,GLContext);
  20. end; {FormCreate}
  21.  
  22. procedure TForm1.FormPaint(Sender: TObject);
  23. begin
  24.   {background}
  25.   glClearColor(0.0,0.4,0.0,0.0);
  26.   glClear(GL_COLOR_BUFFER_BIT);
  27.   {error checking}
  28.   errorCode := glGetError;
  29.   if errorCode<>GL_NO_ERROR then
  30.     raise Exception.Create('Error in Paint'#13+
  31.     gluErrorString(errorCode));
  32. end;
  33.  
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.

bartolomeo

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Principiante En Opengl
« Respuesta #1 en: Martes 3 de Octubre de 2006, 20:52 »
0
Importante saber que tipo de error es el que sale para determinar las posibles soluciones.

[size=109]Por que Rolo soy yo¡¡¡¡¡[/size]

leandro.tami

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Principiante En Opengl
« Respuesta #2 en: Martes 3 de Octubre de 2006, 21:03 »
0
Cierto, perdón. El problema es que es bastante poco significativo. El string descriptivo es "Operación no válida", código 1282

EDIT:
Ya resolví el problema. Me comí una línea... una bastante obvia...

SetPixelFormat(Canvas.Handle,FormatIndex,@pfd); (en FormCreate)