Fix Issue #476: Add HDR Canvas (thanks, Alexander Szpakowski!).

* Add `love.graphics.isSupported("hdrcanvas")' to query whether the hardware
  actually supports HDR canvases.

* Add optional third argument to `love.graphics.newCanvas(w,h, type)', where
  `type' is one of "normal" or "hdr" and defaults to "normal". HDR canvases
  use floating point that can have values > 1 to store pixels, allowing for
  HDR rendering and other higher level lighting techniques when combined with
  pixel effects.

* Add `canvas:getType()'.
This commit is contained in:
vrld
2012-10-11 22:22:10 +02:00
parent 7364e52ebc
commit ccdf6e1c00
9 changed files with 148 additions and 35 deletions
@@ -181,6 +181,16 @@ int w_Canvas_getHeight(lua_State *L)
return 1;
}
int w_Canvas_getType(lua_State *L)
{
Canvas *canvas = luax_checkcanvas(L, 1);
Canvas::TextureType type = canvas->getTextureType();
const char *str;
Canvas::getConstant(type, str);
lua_pushstring(L, str);
return 1;
}
static const luaL_Reg functions[] =
{
{ "renderTo", w_Canvas_renderTo },
@@ -192,6 +202,7 @@ static const luaL_Reg functions[] =
{ "clear", w_Canvas_clear },
{ "getWidth", w_Canvas_getWidth },
{ "getHeight", w_Canvas_getHeight },
{ "getType", w_Canvas_getType },
{ 0, 0 }
};