Be cheeky and pack extra overdraw levels into slight colour changes

* Since we decode the visual colours into an integer by looking them up
  in the overdraw ramp rather than re-running to get an integer return,
  we make some invisibly subtly different colours above the highest
  overdraw colour, and use these to tell overdraw levels above 20.
This commit is contained in:
baldurk
2015-02-12 17:02:46 +00:00
parent 086cc0e491
commit 4a3217fdcc
5 changed files with 119 additions and 10 deletions
+108 -1
View File
@@ -33,7 +33,7 @@
#include "quat.h"
// colour ramp from http://www.ncl.ucar.edu/Document/Graphics/ColorTables/GMT_wysiwyg.shtml
const Vec4f overdrawRamp[21] =
const Vec4f overdrawRamp[128] =
{
Vec4f(0.000000f, 0.000000f, 0.000000f, 0.0f),
Vec4f(0.250980f, 0.000000f, 0.250980f, 1.0f),
@@ -56,6 +56,113 @@ const Vec4f overdrawRamp[21] =
Vec4f(1.000000f, 0.376471f, 0.752941f, 1.0f),
Vec4f(1.000000f, 0.627451f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.878431f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.878600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.878700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.878800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.878900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.879900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.880900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.881900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.882900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.883900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.884900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.885900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.886900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.887900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888200f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888300f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888400f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888500f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888600f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888700f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888800f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.888900f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.889000f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.889100f, 1.000000f, 1.0f),
Vec4f(1.000000f, 0.889200f, 1.000000f, 1.0f),
};
static inline size_t matIdx(const size_t x, const size_t y) { return x+y*4; }
+1 -1
View File
@@ -75,7 +75,7 @@ struct Vec4f
float x, y, z, w;
};
extern const Vec4f overdrawRamp[21];
extern const Vec4f overdrawRamp[128];
inline Vec3f operator *(const Vec3f &a, const float b)
{