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; |
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; |