hedgewars/uStore.pas
changeset 10275 6c91047f59b6
parent 10266 a90a55ec5b98
child 10276 89056c7254ef
equal deleted inserted replaced
10274:07adc8b6288c 10275:6c91047f59b6
    61 procedure SwapBuffers; {$IFDEF USE_VIDEO_RECORDING}cdecl{$ELSE}inline{$ENDIF};
    61 procedure SwapBuffers; {$IFDEF USE_VIDEO_RECORDING}cdecl{$ELSE}inline{$ENDIF};
    62 procedure SetSkyColor(r, g, b: real);
    62 procedure SetSkyColor(r, g, b: real);
    63 
    63 
    64 {$IFDEF GL2}
    64 {$IFDEF GL2}
    65 procedure UpdateModelviewProjection;
    65 procedure UpdateModelviewProjection;
       
    66 {$ENDIF}
       
    67 
    66 procedure EnableTexture(enable:Boolean);
    68 procedure EnableTexture(enable:Boolean);
    67 {$ENDIF}
       
    68 
    69 
    69 procedure SetTexCoordPointer(p: Pointer;n: Integer);
    70 procedure SetTexCoordPointer(p: Pointer;n: Integer);
    70 procedure SetVertexPointer(p: Pointer;n: Integer);
    71 procedure SetVertexPointer(p: Pointer;n: Integer);
    71 procedure SetColorPointer(p: Pointer;n: Integer);
    72 procedure SetColorPointer(p: Pointer;n: Integer);
    72 procedure BeginWater;
       
    73 procedure EndWater;
       
    74 
    73 
    75 procedure updateViewLimits();
    74 procedure updateViewLimits();
    76 
    75 
    77 implementation
    76 implementation
    78 uses uMisc, uConsole, uVariables, uUtils, uTextures, uRender, uRenderUtils,
    77 uses uMisc, uConsole, uVariables, uUtils, uTextures, uRender, uRenderUtils,
  1092     glEnable(GL_BLEND);
  1091     glEnable(GL_BLEND);
  1093     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  1092     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  1094     // disable/lower perspective correction (will not need it anyway)
  1093     // disable/lower perspective correction (will not need it anyway)
  1095 end;
  1094 end;
  1096 
  1095 
  1097 {$IFDEF GL2}
       
  1098 procedure EnableTexture(enable:Boolean);
  1096 procedure EnableTexture(enable:Boolean);
  1099 begin
  1097 begin
       
  1098     {$IFDEF GL2}
  1100     if enable then
  1099     if enable then
  1101         glUniform1i(glGetUniformLocation(shaderMain, pchar('enableTexture')), 1)
  1100         glUniform1i(glGetUniformLocation(shaderMain, pchar('enableTexture')), 1)
  1102     else
  1101     else
  1103         glUniform1i(glGetUniformLocation(shaderMain, pchar('enableTexture')), 0);
  1102         glUniform1i(glGetUniformLocation(shaderMain, pchar('enableTexture')), 0);
  1104 end;
  1103     {$ELSE}
  1105 {$ENDIF}
  1104     if enable then
       
  1105         glEnable(GL_TEXTURE_2D)
       
  1106     else
       
  1107         glDisable(GL_TEXTURE_2D);
       
  1108     {$ENDIF}
       
  1109 end;
  1106 
  1110 
  1107 procedure SetTexCoordPointer(p: Pointer; n: Integer);
  1111 procedure SetTexCoordPointer(p: Pointer; n: Integer);
  1108 begin
  1112 begin
  1109 {$IFDEF GL2}
  1113 {$IFDEF GL2}
  1110     glBindBuffer(GL_ARRAY_BUFFER, tBuffer);
  1114     glBindBuffer(GL_ARRAY_BUFFER, tBuffer);
  1220     cScaleFactor:= f;
  1224     cScaleFactor:= f;
  1221     updateViewLimits();
  1225     updateViewLimits();
  1222 
  1226 
  1223 {$IFDEF GL2}
  1227 {$IFDEF GL2}
  1224     UpdateModelviewProjection;
  1228     UpdateModelviewProjection;
  1225 {$ENDIF}
       
  1226 end;
       
  1227 
       
  1228 procedure BeginWater;
       
  1229 begin
       
  1230 {$IFDEF GL2}
       
  1231     glUseProgram(shaderWater);
       
  1232     uCurrentMVPLocation:=uWaterMVPLocation;
       
  1233     UpdateModelviewProjection;
       
  1234     glDisableVertexAttribArray(aTexCoord);
       
  1235     glEnableVertexAttribArray(aColor);
       
  1236 {$ELSE}
       
  1237     glDisableClientState(GL_TEXTURE_COORD_ARRAY);
       
  1238     glEnableClientState(GL_COLOR_ARRAY);
       
  1239 {$ENDIF}
       
  1240 end;
       
  1241 
       
  1242 procedure EndWater;
       
  1243 begin
       
  1244 {$IFDEF GL2}
       
  1245     glUseProgram(shaderMain);
       
  1246     uCurrentMVPLocation:=uMainMVPLocation;
       
  1247     UpdateModelviewProjection;
       
  1248     glDisableVertexAttribArray(aColor);
       
  1249     glEnableVertexAttribArray(aTexCoord);
       
  1250 {$ELSE}
       
  1251     glDisableClientState(GL_COLOR_ARRAY);
       
  1252     glEnableClientState(GL_TEXTURE_COORD_ARRAY);
       
  1253 {$ENDIF}
  1229 {$ENDIF}
  1254 end;
  1230 end;
  1255 
  1231 
  1256 
  1232 
  1257 ////////////////////////////////////////////////////////////////////////////////
  1233 ////////////////////////////////////////////////////////////////////////////////