Blob Blame History Raw
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<maxColours;i++)	t.col[i]=c;
 	MGL_PUSH(Txt,t,mutexTxt);	return Txt.size()-1;
 }
 //-----------------------------------------------------------------------------