LuaManual Colours - Gambini/libRocket GitHub Wiki

Colours

A Colour (Colourf or Colourb) is a basic type. It has four properties for red, green, blue, and alpha. Colourf has them as floats bound between 0.0 and 1.0. Colourb has them as ints bound between 0 and 255.

Colourb

Colourb new(int red, int green, int blue, int alpha):: Creates a new Colourb for use in Lua.

red (int):: red property. Read & write.

green (int):: green property. Read & write.

blue (int):: blue property. Read & write.

alpha (int):: alpha property. Read & write.

rgba (int,int,int,int):: Returns four separate values (not a table) representing the four properties of the Colourb. Read & write. When writing, all of them are optional. You may only wish to set r and g, so only pass those two. However, if you want to set only r and a, then you must pass all of them, because there is no way to tell which ones you want omitted.

For info on how to read operator overload documentation, see the beginning of the operator overloading section of the Vectors page.

bool operator ==(Colourb lhs, Colourb rhs):: Equality

Colourb operator +(Colourb lhs, Colourb rhs):: Addition

Colourb operator *****(Colourb lhs, float rhs):: Multiplication. Linear scaling lhs.

Colourf

Colourf new(float red, float green, float blue, float alpha):: Creates a new Colourf for use in Lua.

red (float):: red property. Read & write.

green (float):: green property. Read & write.

blue (float):: blue property. Read & write.

alpha (float):: alpha property. Read & write.

rgba (float,float,float,float):: Returns four separate values (not a table) representing the four properties of the Colourf. Read & write. When writing, all of them are optional. You may only wish to set r and g, so only pass those two. However, if you want to set only r and a, then you must pass all of them, because there is no way to tell which ones you want omitted.

For info on how to read operator overload documentation, see the beginning of the operator overloading section of the Vectors page.

bool operator ==(Colourf lhs, Colourf rhs):: Equality

Colour.rgba Example

Because it cannot be clearly expressed in words, this is an example of things that work and things that don't.

--Lua code
local col = Colourb.new(100,200,300,400)
local r,g,b,a = col.rgba 
--now: r=100,g=200,b=300,400

col.rgba = 150,250,350,450
--now: col.red=150,col.green=250,col.blue=350,col.alpha=450

--for our next block, our intent is to only change col.red and col.alpha with two
--variables, but it will not work
r = 10 --variables from above
a = 40
col.rgba = r,a
--now: col.red=10,col.green=40,col.blue=350,col.alpha=450

--A correct way to do the above is
--first version
col.red = r
col.alpha = a
--or second version
col.rgba = r,col.green,col.blue,a
--Note the second version takes 3 function calls to the first version's two calls.