# HG changeset patch # User sheepluva # Date 1416531799 -3600 # Node ID 00ac079fa51fef91f7d4a6ffff91bc582b68af30 # Parent 441a443a014dfd3dfe68d213eb00ec9e42024c1d fix some nasty rendering issues reported by Nexia - thanks a lot! diff -r 441a443a014d -r 00ac079fa51f CMakeLists.txt --- 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) diff -r 441a443a014d -r 00ac079fa51f ChangeLog.txt --- 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. diff -r 441a443a014d -r 00ac079fa51f hedgewars/uGearsRender.pas --- 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; diff -r 441a443a014d -r 00ac079fa51f hedgewars/uWorld.pas --- 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