hedgewars/uRender.pas
changeset 10873 84c00d1127d6
parent 10871 570af168cc74
child 10886 99273b7afbff
child 10952 8ad21fe5d062
equal deleted inserted replaced
10872:0ad3c53992d2 10873:84c00d1127d6
    93 procedure SetVertexPointer(p: Pointer;n: Integer); inline;
    93 procedure SetVertexPointer(p: Pointer;n: Integer); inline;
    94 procedure SetColorPointer(p: Pointer;n: Integer); inline;
    94 procedure SetColorPointer(p: Pointer;n: Integer); inline;
    95 
    95 
    96 procedure UpdateModelviewProjection(); inline;
    96 procedure UpdateModelviewProjection(); inline;
    97 
    97 
    98 procedure openglLoadIdentity    (); inline;
       
    99 procedure openglTranslProjMatrix(X, Y, Z: GLFloat); inline;
       
   100 procedure openglPushMatrix      (); inline;
    98 procedure openglPushMatrix      (); inline;
   101 procedure openglPopMatrix       (); inline;
    99 procedure openglPopMatrix       (); inline;
   102 procedure openglTranslatef      (X, Y, Z: GLfloat); inline;
   100 procedure openglTranslatef      (X, Y, Z: GLfloat); inline;
   103 procedure openglScalef          (ScaleX, ScaleY, ScaleZ: GLfloat); inline;
       
   104 procedure openglRotatef         (RotX, RotY, RotZ: GLfloat; dir: LongInt); inline;
       
   105 procedure openglTint            (r, g, b, a: Byte); inline;
       
   106 
   101 
   107 
   102 
   108 implementation
   103 implementation
   109 uses {$IFNDEF PAS2C} StrUtils, {$ENDIF}SysUtils, uVariables, uUtils, uConsts
   104 uses {$IFNDEF PAS2C} StrUtils, {$ENDIF}SysUtils, uVariables, uUtils, uConsts
   110      {$IFDEF GL2}, uMatrix, uConsole{$ENDIF}
   105      {$IFDEF GL2}, uMatrix, uConsole{$ENDIF}
   132 
   127 
   133 {$IFDEF USE_S3D_RENDERING}
   128 {$IFDEF USE_S3D_RENDERING}
   134     // texture/vertex buffers for left/right/default eye modes
   129     // texture/vertex buffers for left/right/default eye modes
   135     texLRDtb, texLvb, texRvb: array [0..3] of TVertex2f;
   130     texLRDtb, texLvb, texRvb: array [0..3] of TVertex2f;
   136 {$ENDIF}
   131 {$ENDIF}
       
   132 
       
   133 procedure openglLoadIdentity    (); forward;
       
   134 procedure openglTranslProjMatrix(X, Y, Z: GLFloat); forward;
       
   135 procedure openglScalef          (ScaleX, ScaleY, ScaleZ: GLfloat); forward;
       
   136 procedure openglRotatef         (RotX, RotY, RotZ: GLfloat; dir: LongInt); forward;
       
   137 procedure openglTint            (r, g, b, a: Byte); forward;
   137 
   138 
   138 procedure CreateFramebuffer(var frame, depth, tex: GLuint); forward;
   139 procedure CreateFramebuffer(var frame, depth, tex: GLuint); forward;
   139 procedure DeleteFramebuffer(var frame, depth, tex: GLuint); forward;
   140 procedure DeleteFramebuffer(var frame, depth, tex: GLuint); forward;
   140 
   141 
   141 function isAreaOffscreen(X, Y, Width, Height: LongInt): boolean; inline;
   142 function isAreaOffscreen(X, Y, Width, Height: LongInt): boolean; inline;
  1582     //
  1583     //
  1583 
  1584 
  1584 firsti:= -1;
  1585 firsti:= -1;
  1585 afteri:=  0;
  1586 afteri:=  0;
  1586 
  1587 
  1587 if GameTicks < 2000 then
       
  1588     lol:= 2000 - GameTicks
       
  1589 else
       
  1590     lol:= 0;
       
  1591 
       
  1592 if InTopY < 0 then
  1588 if InTopY < 0 then
  1593     InTopY:= 0;
  1589     InTopY:= 0;
  1594 
  1590 
  1595 if not WithWalls then
  1591 if not WithWalls then
  1596     begin
  1592     begin
  1598     InLeftX := OutLeftX;
  1594     InLeftX := OutLeftX;
  1599     InRightX:= OutRightX;
  1595     InRightX:= OutRightX;
  1600     end
  1596     end
  1601 else
  1597 else
  1602     begin
  1598     begin
       
  1599 
       
  1600     // animate water walls raise animation at start of game
       
  1601     if GameTicks < 2000 then
       
  1602         lol:= 2000 - GameTicks
       
  1603     else
       
  1604         lol:= 0;
       
  1605 
  1603     if InLeftX > ViewLeftX then
  1606     if InLeftX > ViewLeftX then
  1604         begin
  1607         begin
  1605         VertexBuffer[0].X:= OutLeftX - lol;
  1608         VertexBuffer[0].X:= OutLeftX - lol;
  1606         VertexBuffer[0].Y:= OutTopY;
  1609         VertexBuffer[0].Y:= OutTopY;
  1607         VertexBuffer[1].X:= InLeftX - lol;
  1610         VertexBuffer[1].X:= InLeftX - lol;