Index: /Include/abgl.ab
===================================================================
--- /Include/abgl.ab	(revision 51)
+++ /Include/abgl.ab	(revision 52)
@@ -210,5 +210,5 @@
 	End Function
 
-Public
+Public /* constructor */
 	Sub Light(num As GLenum)
 		Number=num
@@ -216,6 +216,19 @@
 
 Public
-	Sub SetAmbient(amb As *GLdouble)
-		glLightdv(Number,GL_AMBIENT,amb)
+	Sub SetAmbient(red As GLfloat, green As GLfloat, blue As GLfloat, alpha As GLfloat)
+		Dim amb[3] As GLfloat
+		amb[0]=red
+		amb[1]=green
+		amb[2]=blue
+		amb[3]=alpha
+		glLightfv(Number,GL_AMBIENT,amb)
+	End Sub
+	Sub SetAmbient(color As Color4f)
+		Dim amb[3] As GLfloat
+		amb[0]=color.R
+		amb[1]=color.G
+		amb[2]=color.B
+		amb[3]=color.A
+		glLightfv(Number,GL_AMBIENT,amb)
 	End Sub
 	Sub SetAmbient(amb As *GLfloat)
@@ -223,6 +236,19 @@
 	End Sub
 
-	Sub SetDiffuse(dif As *GLdouble)
-		glLightdv(Number,GL_DIFFUSE,dif)
+	Sub SetDiffuse(red As GLfloat, green As GLfloat, blue As GLfloat, alpha As GLfloat)
+		Dim dif[3] As GLfloat
+		dif[0]=red
+		dif[1]=green
+		dif[2]=blue
+		dif[3]=alpha
+		glLightfv(Number,GL_DIFFUSE,dif)
+	End Sub
+	Sub SetDiffuse(color As Color4f)
+		Dim dif[3] As GLfloat
+		amb[0]=color.R
+		amb[1]=color.G
+		amb[2]=color.B
+		amb[3]=color.A
+		glLightfv(Number,GL_DIFFUSE,dif)
 	End Sub
 	Sub SetDiffuse(dif As *GLfloat)
@@ -230,6 +256,19 @@
 	End Sub
 
-	Sub SetSpecular(spc As *GLdouble)
-		glLightdv(Number,GL_SPECULAR,spc)
+	Sub SetSpecular(red As GLfloat, green As GLfloat, blue As GLfloat, alpha As GLfloat)
+		Dim spc[3] As GLfloat
+		spc[0]=red
+		spc[1]=green
+		spc[2]=blue
+		spc[3]=alpha
+		glLightfv(Number,GL_SPECULAR,spc)
+	End Sub
+	Sub SetSpecular(color As Color4f)
+		Dim spc[3] As GLfloat
+		amb[0]=color.R
+		amb[1]=color.G
+		amb[2]=color.B
+		amb[3]=color.A
+		glLightfv(Number,GL_SPECULAR,spc)
 	End Sub
 	Sub SetSpecular(spc As *GLfloat)
@@ -237,7 +276,4 @@
 	End Sub
 
-	Sub SetPosition(pos As *GLdouble)
-		glLightdv(Number,GL_POSITION,pos)
-	End Sub
 	Sub SetPosition(pos As *GLfloat)
 		glLightfv(Number,GL_POSITION,pos)
@@ -257,4 +293,18 @@
 		glMaterialfv(face,GL_AMBIENT,amb)
 	End Sub
+	Sub Ambient(color As Color4f)
+		Dim face As GLenum
+		glGetIntegerv(GL_COLOR_MATERIAL_FACE,VarPtr(face))
+		Dim amb[3] As GLfloat
+		amb[0]=color.R
+		amb[1]=color.G
+		amb[2]=color.B
+		amb[3]=color.A
+		glMaterialfv(face,GL_AMBIENT,amb)
+	End Sub
+	Sub Ambient(amb As *GLfloat)
+		glMaterialfv(face,GL_AMBIENT,amb)
+	End Sub
+
 	Sub Diffuse(red As GLfloat, green As GLfloat, blue As GLfloat, alpha As GLfloat)
 		Dim face As GLenum
@@ -267,4 +317,18 @@
 		glMaterialfv(face,GL_DIFFUSE,dif)
 	End Sub
+	Sub Diffuse(color As Color4f)
+		Dim face As GLenum
+		glGetIntegerv(GL_COLOR_MATERIAL_FACE,VarPtr(face))
+		Dim dif[3] As GLfloat
+		dif[0]=color.R
+		dif[1]=color.G
+		dif[2]=color.B
+		dif[3]=color.A
+		glMaterialfv(face,GL_DIFFUSE,dif)
+	End Sub
+	Sub Diffuse(dif As *GLfloat)
+		glMaterialfv(face,GL_DIFFUSE,dif)
+	End Sub
+
 	Sub Specular(red As GLfloat, green As GLfloat, blue As GLfloat, alpha As GLfloat)
 		Dim face As GLenum
@@ -277,4 +341,18 @@
 		glMaterialfv(face,GL_SPECULAR,spc)
 	End Sub
+	Sub Specular(color As Color4f)
+		Dim face As GLenum
+		glGetIntegerv(GL_COLOR_MATERIAL_FACE,VarPtr(face))
+		Dim spc[3] As GLfloat
+		spc[0]=color.R
+		spc[1]=color.G
+		spc[2]=color.B
+		spc[3]=color.A
+		glMaterialfv(face,GL_SPECULAR,spc)
+	End Sub
+	Sub Specular(spc As *GLfloat)
+		glMaterialfv(face,GL_SPECULAR,spc)
+	End Sub
+
 	Sub Shininess(shin As GLfloat)
 		Dim face As GLenum
@@ -282,4 +360,5 @@
 		glMaterialf(face,GL_SHININESS,shin)
 	End Sub
+
 	Sub Emission(red As GLfloat, green As GLfloat, blue As GLfloat, alpha As GLfloat)
 		Dim face As GLenum
