From 2710c6c488f181447e61ae3ef97cef9c7f880c19 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 10 Oct 2013 23:05:45 -0300 Subject: [PATCH] Renamed Source:s/getDistance to Source:s/getAttenuationDistances (resolves issue #632). Fixed detection for mipmap sharpness support. --- src/modules/audio/wrap_Source.cpp | 8 ++++---- src/modules/audio/wrap_Source.h | 4 ++-- src/modules/graphics/opengl/Image.cpp | 14 +++++++------- src/modules/graphics/opengl/Mesh.cpp | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/modules/audio/wrap_Source.cpp b/src/modules/audio/wrap_Source.cpp index 5bd7501bf..f28c840a5 100644 --- a/src/modules/audio/wrap_Source.cpp +++ b/src/modules/audio/wrap_Source.cpp @@ -252,7 +252,7 @@ int w_Source_getVolumeLimits(lua_State *L) return 2; } -int w_Source_setDistance(lua_State *L) +int w_Source_setAttenuationDistances(lua_State *L) { Source *t = luax_checksource(L, 1); float dref = (float)luaL_checknumber(L, 2); @@ -264,7 +264,7 @@ int w_Source_setDistance(lua_State *L) return 0; } -int w_Source_getDistance(lua_State *L) +int w_Source_getAttenuationDistances(lua_State *L) { Source *t = luax_checksource(L, 1); lua_pushnumber(L, t->getReferenceDistance()); @@ -332,8 +332,8 @@ static const luaL_Reg functions[] = { "setVolumeLimits", w_Source_setVolumeLimits }, { "getVolumeLimits", w_Source_getVolumeLimits }, - { "setDistance", w_Source_setDistance }, - { "getDistance", w_Source_getDistance }, + { "setAttenuationDistances", w_Source_setAttenuationDistances }, + { "getAttenuationDistances", w_Source_getAttenuationDistances }, { "setRolloff", w_Source_setRolloff}, { "getRolloff", w_Source_getRolloff}, diff --git a/src/modules/audio/wrap_Source.h b/src/modules/audio/wrap_Source.h index eceb56e80..f0f27f140 100644 --- a/src/modules/audio/wrap_Source.h +++ b/src/modules/audio/wrap_Source.h @@ -55,8 +55,8 @@ int w_Source_isPlaying(lua_State *L); int w_Source_isStatic(lua_State *L); int w_Source_setVolumeLimits(lua_State *L); int w_Source_getVolumeLimits(lua_State *L); -int w_Source_setDistance(lua_State *L); -int w_Source_getDistance(lua_State *L); +int w_Source_setAttenuationDistances(lua_State *L); +int w_Source_getAttenuationDistances(lua_State *L); int w_Source_setRolloff(lua_State *L); int w_Source_getRolloff(lua_State *L); int w_Source_getType(lua_State *L); diff --git a/src/modules/graphics/opengl/Image.cpp b/src/modules/graphics/opengl/Image.cpp index d1b27bf45..b3f0649f8 100644 --- a/src/modules/graphics/opengl/Image.cpp +++ b/src/modules/graphics/opengl/Image.cpp @@ -58,6 +58,7 @@ Image::Image(love::image::CompressedData *cdata) , width((float)(cdata->getWidth(0))) , height((float)(cdata->getHeight(0))) , texture(0) + , texCoordScale(1.0, 1.0) , mipmapSharpness(defaultMipmapSharpness) , mipmapsCreated(false) , compressed(true) @@ -114,8 +115,7 @@ void Image::drawq(Quad *quad, float x, float y, float angle, float sx, float sy, Matrix t; t.setTransformation(x, y, angle, sx, sy, ox, oy, kx, ky); - const Vertex *v = quad->getVertices(); - drawv(t, v); + drawv(t, quad->getVertices()); } void Image::predraw() const @@ -149,21 +149,21 @@ void Image::uploadCompressedMipmaps() bind(); - int mipmapcount = cdata->getMipmapCount(); + int count = cdata->getMipmapCount(); // We have to inform OpenGL if the image doesn't have all mipmap levels. if (GLEE_VERSION_1_2 || GLEE_SGIS_texture_lod) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, mipmapcount - 1); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, count - 1); } - else if (cdata->getWidth(mipmapcount-1) > 1 || cdata->getHeight(mipmapcount-1) > 1) + else if (cdata->getWidth(count-1) > 1 || cdata->getHeight(count-1) > 1) { // Telling OpenGL to ignore certain levels isn't always supported. throw love::Exception("Cannot load mipmaps: " "compressed image does not have all required levels."); } - for (int i = 1; i < mipmapcount; i++) + for (int i = 1; i < count; i++) { glCompressedTexImage2DARB(GL_TEXTURE_2D, i, @@ -627,7 +627,7 @@ bool Image::hasMipmapSupport() bool Image::hasMipmapSharpnessSupport() { - return GLEE_VERSION_1_4 || GLEE_EXT_texture_lod_bias; + return GLEE_VERSION_1_4; } bool Image::hasCompressedTextureSupport() diff --git a/src/modules/graphics/opengl/Mesh.cpp b/src/modules/graphics/opengl/Mesh.cpp index 32f04b371..f0c9cd5e9 100644 --- a/src/modules/graphics/opengl/Mesh.cpp +++ b/src/modules/graphics/opengl/Mesh.cpp @@ -122,7 +122,7 @@ void Mesh::setVertexMap(const std::vector &map) ibo = nullptr; } - if (!ibo) + if (!ibo && size > 0) { // Full memory backing because we might access the data at any time. ibo = VertexBuffer::Create(size, GL_ELEMENT_ARRAY_BUFFER, GL_DYNAMIC_DRAW, VertexBuffer::BACKING_FULL); @@ -130,7 +130,7 @@ void Mesh::setVertexMap(const std::vector &map) element_count = map.size(); - if (element_count > 0) + if (ibo && element_count > 0) { VertexBuffer::Bind ibo_bind(*ibo); VertexBuffer::Mapper ibo_map(*ibo); @@ -241,7 +241,7 @@ void Mesh::draw(float x, float y, float angle, float sx, float sy, float ox, flo GLenum mode = getGLDrawMode(draw_mode); - if (element_count > 0) + if (ibo && element_count > 0) { VertexBuffer::Bind ibo_bind(*ibo);