mirror of
https://github.com/love2d/love.git
synced 2026-08-14 01:20:56 +02:00
Renamed Source:s/getDistance to Source:s/getAttenuationDistances (resolves issue #632).
Fixed detection for mipmap sharpness support.
This commit is contained in:
@@ -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},
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -122,7 +122,7 @@ void Mesh::setVertexMap(const std::vector<uint32> &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<uint32> &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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user