Merged default into minor

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2014-06-19 15:06:59 -03:00
15 changed files with 57 additions and 92 deletions
+20 -21
View File
@@ -1051,31 +1051,30 @@ love::image::ImageData *Graphics::newScreenshot(love::image::Image *image, bool
return img;
}
std::string Graphics::getRendererInfo(Graphics::RendererInfo infotype) const
Graphics::RendererInfo Graphics::getRendererInfo() const
{
const char *infostr = 0;
RendererInfo info;
info.name = "OpenGL";
switch (infotype)
{
case Graphics::RENDERER_INFO_NAME:
default:
infostr = "OpenGL";
break;
case Graphics::RENDERER_INFO_VERSION:
infostr = (const char *) glGetString(GL_VERSION);
break;
case Graphics::RENDERER_INFO_VENDOR:
infostr = (const char *) glGetString(GL_VENDOR);
break;
case Graphics::RENDERER_INFO_DEVICE:
infostr = (const char *) glGetString(GL_RENDERER);
break;
}
const char *str = (const char *) glGetString(GL_VERSION);
if (str)
info.version = str;
else
throw love::Exception("Cannot retrieve renderer version information.");
if (!infostr)
throw love::Exception("Cannot retrieve renderer information.");
str = (const char *) glGetString(GL_VENDOR);
if (str)
info.vendor = str;
else
throw love::Exception("Cannot retrieve renderer vendor information.");
return std::string(infostr);
str = (const char *) glGetString(GL_RENDERER);
if (str)
info.device = str;
else
throw love::Exception("Cannot retrieve renderer device information.");
return info;
}
double Graphics::getSystemLimit(SystemLimit limittype) const
+3 -4
View File
@@ -431,12 +431,11 @@ public:
love::image::ImageData *newScreenshot(love::image::Image *image, bool copyAlpha = true);
/**
* Returns a string containing system-dependent renderer information.
* Returned string can vary greatly between systems! Do not rely on it for
* Returns system-dependent renderer information.
* Returned string s can vary greatly between systems! Do not rely on it for
* anything!
* @param infotype The type of information to return.
**/
std::string getRendererInfo(Graphics::RendererInfo infotype) const;
RendererInfo getRendererInfo() const;
/**
* Gets the system-dependent numeric limit for the specified parameter.
+3
View File
@@ -79,6 +79,9 @@ Mesh::Mesh(int vertexcount, Mesh::DrawMode mode)
Mesh::~Mesh()
{
if (texture)
texture->release();
delete vbo;
delete ibo;
}
+2 -2
View File
@@ -46,8 +46,8 @@ SpriteBatch::SpriteBatch(Texture *texture, int size, int usage)
, size(size)
, next(0)
, color(0)
, array_buf(0)
, element_buf(0)
, array_buf(nullptr)
, element_buf(nullptr)
, buffer_used_offset(0)
, buffer_used_size(0)
{
+2 -8
View File
@@ -21,18 +21,12 @@
#include "VertexBuffer.h"
#include "common/Exception.h"
#include "common/config.h"
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <limits>
// Conflicts with std::numeric_limits<GLushort>::max() (Windows).
#ifdef max
# undef max
#endif
namespace love
{
namespace graphics
@@ -55,7 +49,7 @@ VertexBuffer::VertexBuffer(size_t size, GLenum target, GLenum usage, MemoryBacki
, usage(usage)
, backing(backing)
, vbo(0)
, memory_map(0)
, memory_map(nullptr)
, is_dirty(true)
{
if (getMemoryBacking() == BACKING_FULL)
@@ -207,7 +201,7 @@ bool VertexBuffer::load(bool restore)
VertexBuffer::Bind bind(*this);
// Copy the old buffer only if 'restore' was requested.
const GLvoid *src = restore ? memory_map : 0;
const GLvoid *src = restore ? memory_map : nullptr;
while (GL_NO_ERROR != glGetError())
/* clear error messages */;
@@ -23,6 +23,7 @@
#define LOVE_GRAPHICS_OPENGL_VERTEX_BUFFER_H
// LOVE
#include "common/config.h"
#include "graphics/Volatile.h"
// OpenGL
+6 -13
View File
@@ -1018,20 +1018,13 @@ int w_hasCanvasFormat(lua_State *L)
int w_getRendererInfo(lua_State *L)
{
std::string name, version, vendor, device;
luax_catchexcept(L, [&]() {
name = instance->getRendererInfo(Graphics::RENDERER_INFO_NAME);
version = instance->getRendererInfo(Graphics::RENDERER_INFO_VERSION);
vendor = instance->getRendererInfo(Graphics::RENDERER_INFO_VENDOR);
device = instance->getRendererInfo(Graphics::RENDERER_INFO_DEVICE);
});
luax_pushstring(L, name);
luax_pushstring(L, version);
luax_pushstring(L, vendor);
luax_pushstring(L, device);
Graphics::RendererInfo info;
luax_catchexcept(L, [&](){ info = instance->getRendererInfo(); });
luax_pushstring(L, info.name);
luax_pushstring(L, info.version);
luax_pushstring(L, info.vendor);
luax_pushstring(L, info.device);
return 4;
}