diff -r 9ad9a88a8e91 include/mgl2/base.h --- include/mgl2/base.h Sun Apr 14 22:38:31 2013 +0100 +++ include/mgl2/base.h Sun Apr 14 22:42:46 2013 +0100 @@ -161,11 +161,14 @@ { Create(a.nt, a.nl); memcpy(trig, a.trig, 6*nt*sizeof(short)); memcpy(line, a.line, 2*nl*sizeof(short)); return *this; } }; + +const int MGL_TEXTURE_COLOURS=512; + //----------------------------------------------------------------------------- /// Structure for texture (color scheme + palette) representation struct MGL_EXPORT mglTexture { - mglColor col[512]; ///< Colors itself + mglColor col[MGL_TEXTURE_COLOURS]; ///< Colors itself long n; ///< Number of initial colors along u char Sch[260]; ///< Color scheme used @@ -179,6 +182,7 @@ void Set(const char *cols, int smooth=0,mreal alpha=1); void Set(HCDT val, const char *cols); void GetC(mreal u,mreal v,mglPnt &p) const; + size_t GetNumColours() { return MGL_TEXTURE_COLOURS;} mglColor GetC(mreal u,mreal v=0) const; inline bool IsSame(const mglTexture &t) const { return n==t.n && !memcmp(col,t.col,512*sizeof(mglColor)); } diff -r 9ad9a88a8e91 src/base.cpp --- src/base.cpp Sun Apr 14 22:38:31 2013 +0100 +++ src/base.cpp Sun Apr 14 22:42:46 2013 +0100 @@ -882,7 +882,8 @@ return i+j/255.; // add new texture mglTexture t; - for(i=0;i<514;i++) t.col[i]=c; + size_t maxColours=t.GetNumColours(); + for(i=0;i