home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / expas.arj / TEMP / 10-19.PAS < prev    next >
Pascal/Delphi Source File  |  1995-01-20  |  1KB  |  66 lines

  1. program main;
  2. {$IFDEF DPMI}
  3. uses fgmain, fgbitmap, fgmisc, fgpcx, fgvb, WinAPI;
  4. {$ELSE}
  5. {$M 16384,0,16384}
  6. uses fgmain, fgbitmap, fgmisc, fgpcx, fgvb;
  7. {$ENDIF}
  8.  
  9. var
  10.   status : integer;
  11.   handle1, handle2 : integer;
  12.   buffer1, buffer2 : pointer;
  13.  
  14. begin
  15.   fg_initpm;
  16.   fg_setmode(19);
  17.   fg_vbinit;
  18.  
  19. {$IFDEF DPMI}
  20.   buffer1 := GlobalAllocPtr(gmem_Fixed,Longint(64000));
  21.   buffer2 := GlobalAllocPtr(gmem_Fixed,Longint(4000));
  22.   if (buffer1 = NIL) or (buffer2 = NIL) then
  23.   begin
  24.     fg_setmode(3);
  25.     fg_reset;
  26.     writeln('Could not create the virtual buffers.');
  27.     exit;
  28.   end;
  29.   handle1 := fg_vbdefine(buffer1,320,200);
  30.   handle2 := fg_vbdefine(buffer2,80,50);
  31. {$ELSE}
  32.   handle1 := fg_vballoc(320,200);
  33.   handle2 := fg_vballoc(80,50);
  34.   if (handle1 < 0) or (handle2 < 0) then
  35.   begin
  36.     fg_setmode(3);
  37.     fg_reset;
  38.     writeln('Could not create the virtual buffers.');
  39.     exit;
  40.   end;
  41.   buffer1 := fg_vbaddr(handle1);
  42.   buffer2 := fg_vbaddr(handle2);
  43. {$ENDIF}
  44.  
  45.   status := fg_vbopen(handle1);
  46.   status := fg_loadpcx('CORAL.PCX'+chr(0),0);
  47.   fg_vbpaste(0,319,0,199,0,199);
  48.   fg_waitkey;
  49.  
  50.   fg_scale(buffer1,buffer2,320,200,80,50);
  51.   status := fg_vbopen(handle2);
  52.   fg_vbpaste(0,79,0,49,0,199);
  53.   fg_waitkey;
  54.  
  55.   fg_vbclose;
  56. {$IFDEF dpmi}
  57.   GlobalFreePtr(buffer1);
  58.   GlobalFreePtr(buffer2);
  59. {$ELSE}
  60.   fg_vbfree(handle1);
  61.   fg_vbfree(handle2);
  62. {$ENDIF}
  63.   fg_setmode(3);
  64.   fg_reset;
  65. end.
  66.