fix some nasty rendering issues reported by Nexia - thanks a lot!
authorsheepluva
Fri, 21 Nov 2014 02:03:19 +0100
changeset 10523 00ac079fa51f
parent 10522 441a443a014d
child 10524 2bc0ff00e95b
fix some nasty rendering issues reported by Nexia - thanks a lot!
CMakeLists.txt
ChangeLog.txt
hedgewars/uGearsRender.pas
hedgewars/uWorld.pas
--- a/CMakeLists.txt	Thu Nov 20 16:38:43 2014 +0100
+++ b/CMakeLists.txt	Fri Nov 21 02:03:19 2014 +0100
@@ -12,7 +12,7 @@
 include(${CMAKE_MODULE_PATH}/utils.cmake)
 
 #possible cmake configuration
-option(NOSERVER "Disable gameServer build (off)]" OFF)
+option(NOSERVER "Disable gameServer build (off)" OFF)
 option(NOPNG "Disable screenshoot compression (off)" OFF)
 option(NOVIDEOREC "Disable video recording (off)" OFF)
 
@@ -33,8 +33,8 @@
 option(MINIMAL_FLAGS "Respect system flags as much as possible (off)" OFF)
 option(NOAUTOUPDATE "Disable OS X Sparkle update checking (off)" OFF)
 
-option(BUILD_ENGINE_C "Compile hwengine as native C [default: off]" OFF)
-option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF)
+option(BUILD_ENGINE_C "Compile hwengine as native C (off)" OFF)
+option(GL2 "Enable OpenGL 2 rendering !!!EXPERIMENTAL - DO NOT USE!!! [default: off)" OFF)
 
 set(GHFLAGS "" CACHE STRING "Additional Haskell flags")
 if(UNIX AND NOT APPLE)
--- a/ChangeLog.txt	Thu Nov 20 16:38:43 2014 +0100
+++ b/ChangeLog.txt	Fri Nov 21 02:03:19 2014 +0100
@@ -16,6 +16,7 @@
  + Various performance tweaks, especially for very large maps.
  + Allow switching through hogs in reverse order with PRECISE+HOGSWITCH (left shift + tab, by default)
  + Added support for custom Sudden Death music to theme.cfg (e.g. sd-music=hell.ogg ).
+ + New Hats: policegirl
  * Fixed drill rockets sometimes exploding on impact.
  * Fixed trainings broken due to indestructable targets/crates.
  * Fixes and tweaks for low qualily rendering.
--- a/hedgewars/uGearsRender.pas	Thu Nov 20 16:38:43 2014 +0100
+++ b/hedgewars/uGearsRender.pas	Fri Nov 21 02:03:19 2014 +0100
@@ -53,6 +53,7 @@
 uses uRender, uUtils, uVariables, uAmmos, Math, uVisualGearsList;
 
 procedure DrawRopeLinesRQ(Gear: PGear);
+var n: LongInt;
 begin
 with RopePoints do
     begin
@@ -64,24 +65,29 @@
 
 if (RopePoints.Count > 0) or (Gear^.Elasticity.QWordValue > 0) then
     begin
-    glDisable(GL_TEXTURE_2D);
+    EnableTexture(false);
     //glEnable(GL_LINE_SMOOTH);
 
-    glPushMatrix;
+    Tint($70, $70, $70, $FF);
+
+    n:= RopePoints.Count + 2;
+
+    SetVertexPointer(@RopePoints.rounded[0], n);
 
-    glTranslatef(WorldDx, WorldDy, 0);
+    openglPushMatrix();
+    openglTranslatef(WorldDx, WorldDy, 0);
 
+    glLineWidth(3.0 * cScaleFactor);
+    glDrawArrays(GL_LINE_STRIP, 0, n);
+    Tint($D8, $D8, $D8, $FF);
     glLineWidth(2.0 * cScaleFactor);
-
-    Tint($C0, $C0, $C0, $FF);
+    glDrawArrays(GL_LINE_STRIP, 0, n);
 
-    glVertexPointer(2, GL_FLOAT, 0, @RopePoints.rounded[0]);
-    glDrawArrays(GL_LINE_STRIP, 0, RopePoints.Count + 2);
     untint;
 
-    glPopMatrix;
+    openglPopMatrix();
 
-    glEnable(GL_TEXTURE_2D);
+    EnableTexture(true);
     //glDisable(GL_LINE_SMOOTH)
     end
 end;
--- a/hedgewars/uWorld.pas	Thu Nov 20 16:38:43 2014 +0100
+++ b/hedgewars/uWorld.pas	Fri Nov 21 02:03:19 2014 +0100
@@ -1040,6 +1040,9 @@
         end;
 
     (*
+    WARNING: the following render code is outdated and does not work with
+             current Render.pas ! - don't just uncomment without fixing it first
+
     glDisable(GL_TEXTURE_2D);
     glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     if (WorldEdge = weWrap) or (worldEdge = weBounce) then
@@ -1729,12 +1732,12 @@
         VertexBuffer[3].X:= cScreenWidth;
         VertexBuffer[3].Y:= cScreenHeight;
 
-        glDisable(GL_TEXTURE_2D);
+        EnableTexture(false);
 
-        glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
+        SetVertexPointer(@VertexBuffer[0], 4);
         glDrawArrays(GL_TRIANGLE_FAN, 0, High(VertexBuffer) - Low(VertexBuffer) + 1);
 
-        glEnable(GL_TEXTURE_2D);
+        EnableTexture(true);
         untint;
         if not isFirstFrame and ((ScreenFadeValue = 0) or (ScreenFadeValue = sfMax)) then
             ScreenFade:= sfNone