ada_sphere_procs.adb
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:1k
源码类别:

GIS编程

开发平台:

Visual C++

  1. with GL; use GL;
  2. with GLU; use GLU;
  3. with Glut; use Glut;
  4. with GNAT.OS_Lib;
  5. package body ada_sphere_procs is
  6.   procedure display is
  7.   begin
  8.     glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  9.     glutSolidSphere(1.0, 10, 10);
  10.     glutSwapBuffers;
  11.   end display;
  12.   procedure reshape(w : Integer; h : Integer) is
  13.   begin
  14.     glViewport(0, 0, GLsizei(w), GLsizei(h));
  15.   end reshape;
  16.   procedure menu (value : Integer) is
  17.   begin
  18.     if (value = 666) then
  19.       GNAT.OS_Lib.OS_Exit (0);
  20.     end if;
  21.   end menu;
  22.   procedure init is
  23.     light_diffuse : array(0 .. 3) of aliased GLfloat :=
  24.       (1.0, 0.0, 0.0, 1.0);
  25.     light_position : array(0 .. 3) of aliased GLfloat :=
  26.       (1.0, 1.0, 1.0, 0.0);
  27.   begin
  28.     glClearColor(0.1, 0.1, 0.1, 0.0);
  29.     glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse(0)'access);
  30.     glLightfv(GL_LIGHT0, GL_POSITION, light_position(0)'access);
  31.     glFrontFace(GL_CW);
  32.     glEnable(GL_LIGHTING);
  33.     glEnable(GL_LIGHT0);
  34.     glEnable(GL_DEPTH_TEST);
  35.     glDepthFunc(GL_LESS);
  36.     glMatrixMode(GL_PROJECTION);
  37.     gluPerspective(40.0, 1.0, 1.0, 10.0);
  38.     glMatrixMode(GL_MODELVIEW);
  39.     gluLookAt(
  40.       0.0, 0.0, -5.0,
  41.       0.0, 0.0, 0.0,
  42.       0.0, 1.0, 0.0);
  43.   end init;
  44. end ada_sphere_procs;