This commit is contained in:
bart@bartbes.ath.cx
2010-02-12 20:25:06 +01:00
17 changed files with 428 additions and 289 deletions
+11 -3
View File
@@ -18,6 +18,7 @@
A9255F461043247300BA1496 /* IL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; }; A9255F461043247300BA1496 /* IL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; };
A9255F52104324D700BA1496 /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; }; A9255F52104324D700BA1496 /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; };
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; }; A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; };
A93A3AB51121E86E003B04A4 /* Image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93A3AB41121E86E003B04A4 /* Image.cpp */; };
A93E6E4910420B4A007D418B /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4610420B4A007D418B /* OpenAL.framework */; }; A93E6E4910420B4A007D418B /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4610420B4A007D418B /* OpenAL.framework */; };
A93E6E4A10420B4A007D418B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4710420B4A007D418B /* OpenGL.framework */; }; A93E6E4A10420B4A007D418B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4710420B4A007D418B /* OpenGL.framework */; };
A93E6E4B10420B4A007D418B /* FreeType.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; }; A93E6E4B10420B4A007D418B /* FreeType.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; };
@@ -225,6 +226,7 @@
A9255E021043195A00BA1496 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = /Library/Frameworks/Vorbis.framework; sourceTree = "<absolute>"; }; A9255E021043195A00BA1496 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = /Library/Frameworks/Vorbis.framework; sourceTree = "<absolute>"; };
A9255F421043240F00BA1496 /* IL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IL.framework; path = /Library/Frameworks/IL.framework; sourceTree = "<absolute>"; }; A9255F421043240F00BA1496 /* IL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IL.framework; path = /Library/Frameworks/IL.framework; sourceTree = "<absolute>"; };
A9255F51104324D700BA1496 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = "<absolute>"; }; A9255F51104324D700BA1496 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = "<absolute>"; };
A93A3AB41121E86E003B04A4 /* Image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Image.cpp; sourceTree = "<group>"; };
A93E69DE10420ABF007D418B /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; A93E69DE10420ABF007D418B /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
A93E69DF10420ABF007D418B /* Data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Data.h; sourceTree = "<group>"; }; A93E69DF10420ABF007D418B /* Data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Data.h; sourceTree = "<group>"; };
A93E69E010420ABF007D418B /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Exception.cpp; sourceTree = "<group>"; }; A93E69E010420ABF007D418B /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Exception.cpp; sourceTree = "<group>"; };
@@ -560,9 +562,9 @@
A93E6B9210420ACC007D418B /* wrap_Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_Timer.h; sourceTree = "<group>"; }; A93E6B9210420ACC007D418B /* wrap_Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_Timer.h; sourceTree = "<group>"; };
A93E6B9410420ACC007D418B /* resources.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = resources.cpp; sourceTree = "<group>"; }; A93E6B9410420ACC007D418B /* resources.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = resources.cpp; sourceTree = "<group>"; };
A93E6B9510420ACC007D418B /* resources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resources.h; sourceTree = "<group>"; }; A93E6B9510420ACC007D418B /* resources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resources.h; sourceTree = "<group>"; };
A93E6B9710420ACC007D418B /* boot.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = boot.lua; sourceTree = "<group>"; }; A93E6B9710420ACC007D418B /* boot.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.lua; path = boot.lua; sourceTree = "<group>"; };
A93E6B9810420ACC007D418B /* boot.lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = boot.lua.h; sourceTree = "<group>"; }; A93E6B9810420ACC007D418B /* boot.lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = boot.lua.h; sourceTree = "<group>"; };
A93E6B9910420ACC007D418B /* graphics.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = graphics.lua; sourceTree = "<group>"; }; A93E6B9910420ACC007D418B /* graphics.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.lua; path = graphics.lua; sourceTree = "<group>"; };
A93E6B9A10420ACC007D418B /* graphics.lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = graphics.lua.h; sourceTree = "<group>"; }; A93E6B9A10420ACC007D418B /* graphics.lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = graphics.lua.h; sourceTree = "<group>"; };
A93E6E4610420B4A007D418B /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; A93E6E4610420B4A007D418B /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
A93E6E4710420B4A007D418B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; A93E6E4710420B4A007D418B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
@@ -592,6 +594,8 @@
A9DEC1C01046EFA70049C70C /* LoveDocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = LoveDocument.icns; path = icons/LoveDocument.icns; sourceTree = "<group>"; }; A9DEC1C01046EFA70049C70C /* LoveDocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = LoveDocument.icns; path = icons/LoveDocument.icns; sourceTree = "<group>"; };
A9F16926109E7BAD00FC83D1 /* libmodplug.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libmodplug.framework; path = /Library/Frameworks/libmodplug.framework; sourceTree = "<absolute>"; }; A9F16926109E7BAD00FC83D1 /* libmodplug.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libmodplug.framework; path = /Library/Frameworks/libmodplug.framework; sourceTree = "<absolute>"; };
A9F169A6109E824900FC83D1 /* mpg123.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpg123.framework; path = /Library/Frameworks/mpg123.framework; sourceTree = "<absolute>"; }; A9F169A6109E824900FC83D1 /* mpg123.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpg123.framework; path = /Library/Frameworks/mpg123.framework; sourceTree = "<absolute>"; };
A9F8833511163C8C00831E98 /* audio.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.lua; path = audio.lua; sourceTree = "<group>"; };
A9F8833611163C8C00831E98 /* audio.lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio.lua.h; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@@ -948,6 +952,7 @@
A93E6A8310420AC2007D418B /* Drawable.h */, A93E6A8310420AC2007D418B /* Drawable.h */,
A968F0D21083A9D400A895AA /* Graphics.cpp */, A968F0D21083A9D400A895AA /* Graphics.cpp */,
A93E6A8410420AC2007D418B /* Graphics.h */, A93E6A8410420AC2007D418B /* Graphics.h */,
A93A3AB41121E86E003B04A4 /* Image.cpp */,
A93E6A8510420AC2007D418B /* Image.h */, A93E6A8510420AC2007D418B /* Image.h */,
A93E6A8610420AC2007D418B /* opengl */, A93E6A8610420AC2007D418B /* opengl */,
A93E6AA510420AC3007D418B /* Volatile.cpp */, A93E6AA510420AC3007D418B /* Volatile.cpp */,
@@ -1001,8 +1006,8 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A93E6AA810420AC3007D418B /* devil */, A93E6AA810420AC3007D418B /* devil */,
A98D913E10507BF9008E03F2 /* EncodedImageData.h */,
A98D914310507C97008E03F2 /* EncodedImageData.cpp */, A98D914310507C97008E03F2 /* EncodedImageData.cpp */,
A98D913E10507BF9008E03F2 /* EncodedImageData.h */,
A93E6AAD10420AC3007D418B /* Image.h */, A93E6AAD10420AC3007D418B /* Image.h */,
A93E6AAE10420AC3007D418B /* ImageData.cpp */, A93E6AAE10420AC3007D418B /* ImageData.cpp */,
A93E6AAF10420AC3007D418B /* ImageData.h */, A93E6AAF10420AC3007D418B /* ImageData.h */,
@@ -1368,6 +1373,8 @@
A93E6B9610420ACC007D418B /* scripts */ = { A93E6B9610420ACC007D418B /* scripts */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A9F8833511163C8C00831E98 /* audio.lua */,
A9F8833611163C8C00831E98 /* audio.lua.h */,
A93E6B9710420ACC007D418B /* boot.lua */, A93E6B9710420ACC007D418B /* boot.lua */,
A93E6B9810420ACC007D418B /* boot.lua.h */, A93E6B9810420ACC007D418B /* boot.lua.h */,
A93E6B9910420ACC007D418B /* graphics.lua */, A93E6B9910420ACC007D418B /* graphics.lua */,
@@ -1612,6 +1619,7 @@
A968F0DD1083AA6600A895AA /* Shape.cpp in Sources */, A968F0DD1083AA6600A895AA /* Shape.cpp in Sources */,
A968F0DE1083AA6600A895AA /* Joint.cpp in Sources */, A968F0DE1083AA6600A895AA /* Joint.cpp in Sources */,
A9CF0E8610B9EB1000E6F37E /* utf8.cpp in Sources */, A9CF0E8610B9EB1000E6F37E /* utf8.cpp in Sources */,
A93A3AB51121E86E003B04A4 /* Image.cpp in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
+3 -3
View File
@@ -80,11 +80,11 @@ namespace love
bool find(const char * key, T & t) bool find(const char * key, T & t)
{ {
unsigned str_hash = djb2(key); //unsigned str_hash = djb2(key);
for(unsigned i = 0; i < MAX; ++i) for(unsigned i = 0; i < MAX; ++i)
{ {
unsigned str_i = (str_hash + i) % MAX; //unsigned str_i = (str_hash + i) % MAX; //this isn't used, is this intentional?
if(records[i].set && streq(records[i].key, key)) if(records[i].set && streq(records[i].key, key))
{ {
@@ -151,7 +151,7 @@ namespace love
unsigned hash = 5381; unsigned hash = 5381;
int c; int c;
while (c = *key++) while ((c = *key++))
hash = ((hash << 5) + hash) + c; hash = ((hash << 5) + hash) + c;
return hash; return hash;
+5 -5
View File
@@ -33,8 +33,8 @@ namespace openal
{ {
Source::Source(Pool * pool, love::sound::SoundData * soundData) Source::Source(Pool * pool, love::sound::SoundData * soundData)
: love::audio::Source(Source::TYPE_STATIC), pool(pool), pitch(1.0f), : love::audio::Source(Source::TYPE_STATIC), pool(pool), valid(false),
volume(1.0f), looping(false), decoder(0), valid(false) pitch(1.0f), volume(1.0f), looping(false), decoder(0)
{ {
alGenBuffers(1, buffers); alGenBuffers(1, buffers);
ALenum fmt = getFormat(soundData->getChannels(), soundData->getBits()); ALenum fmt = getFormat(soundData->getChannels(), soundData->getBits());
@@ -48,8 +48,8 @@ namespace openal
} }
Source::Source(Pool * pool, love::sound::Decoder * decoder) Source::Source(Pool * pool, love::sound::Decoder * decoder)
: love::audio::Source(Source::TYPE_STREAM), pool(pool), pitch(1.0f), : love::audio::Source(Source::TYPE_STREAM), pool(pool), valid(false),
volume(1.0f), looping(false), decoder(decoder), valid(false) pitch(1.0f), volume(1.0f), looping(false), decoder(decoder)
{ {
decoder->retain(); decoder->retain();
alGenBuffers(MAX_BUFFERS, buffers); alGenBuffers(MAX_BUFFERS, buffers);
@@ -259,7 +259,7 @@ namespace openal
{ {
int usedBuffers = 0; int usedBuffers = 0;
for(int i = 0; i < MAX_BUFFERS; i++) for(unsigned int i = 0; i < MAX_BUFFERS; i++)
{ {
int decoded = streamAtomic(buffers[i], decoder); int decoded = streamAtomic(buffers[i], decoder);
++usedBuffers; ++usedBuffers;
+2
View File
@@ -130,6 +130,8 @@ namespace sdl
case Event::TYPE_QUIT: case Event::TYPE_QUIT:
e.type = SDL_QUIT; e.type = SDL_QUIT;
return true; return true;
default:
return true;
} }
return true; return true;
+4
View File
@@ -66,6 +66,8 @@ namespace sdl
return true; return true;
case Event::TYPE_QUIT: case Event::TYPE_QUIT:
return true; return true;
default:
return false;
} }
return false; return false;
@@ -108,6 +110,8 @@ namespace sdl
return 3; return 3;
case Event::TYPE_QUIT: case Event::TYPE_QUIT:
return 1; return 1;
default:
return 0;
} }
return 0; return 0;
+2
View File
@@ -74,6 +74,8 @@ namespace physfs
case WRITE: case WRITE:
file = PHYSFS_openWrite(filename.c_str()); file = PHYSFS_openWrite(filename.c_str());
break; break;
default:
break;
} }
return (file != 0); return (file != 0);
+1 -1
View File
@@ -28,7 +28,7 @@ namespace love
namespace font namespace font
{ {
ImageRasterizer::ImageRasterizer(love::image::ImageData * data, unsigned short * glyphs) ImageRasterizer::ImageRasterizer(love::image::ImageData * data, unsigned short * glyphs)
: imageData(imageData) : imageData(data)
{ {
imageData->retain(); imageData->retain();
} }
+69
View File
@@ -0,0 +1,69 @@
/**
* Copyright (c) 2006-2010 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#include "Image.h"
namespace love
{
namespace graphics
{
Image::~Image()
{
}
bool Image::getConstant(const char * in, FilterMode & out)
{
return filterModes.find(in, out);
}
bool Image::getConstant(FilterMode in, const char *& out)
{
return filterModes.find(in, out);
}
bool Image::getConstant(const char * in, WrapMode & out)
{
return wrapModes.find(in, out);
}
bool Image::getConstant(WrapMode in, const char *& out)
{
return wrapModes.find(in, out);
}
StringMap<Image::FilterMode, Image::FILTER_MAX_ENUM>::Entry Image::filterModeEntries[] =
{
{ "linear", Image::FILTER_LINEAR },
{ "nearest", Image::FILTER_NEAREST },
};
StringMap<Image::FilterMode, Image::FILTER_MAX_ENUM> Image::filterModes(Image::filterModeEntries, sizeof(Image::filterModeEntries));
StringMap<Image::WrapMode, Image::WRAP_MAX_ENUM>::Entry Image::wrapModeEntries[] =
{
{ "clamp", Image::WRAP_CLAMP },
{ "repeat", Image::WRAP_REPEAT },
};
StringMap<Image::WrapMode, Image::WRAP_MAX_ENUM> Image::wrapModes(Image::wrapModeEntries, sizeof(Image::wrapModeEntries));
} // graphics
} // love
+20 -5
View File
@@ -24,6 +24,7 @@
// LOVE // LOVE
#include <graphics/Volatile.h> #include <graphics/Volatile.h>
#include <graphics/Drawable.h> #include <graphics/Drawable.h>
#include <common/StringMap.h>
namespace love namespace love
{ {
@@ -36,14 +37,16 @@ namespace graphics
enum WrapMode enum WrapMode
{ {
WRAP_CLAMP, WRAP_CLAMP = 1,
WRAP_REPEAT WRAP_REPEAT,
WRAP_MAX_ENUM
}; };
enum FilterMode enum FilterMode
{ {
FILTER_LINEAR, FILTER_LINEAR = 1,
FILTER_NEAREST FILTER_NEAREST,
FILTER_MAX_ENUM
}; };
struct Filter struct Filter
@@ -58,7 +61,19 @@ namespace graphics
WrapMode t; WrapMode t;
}; };
virtual ~Image(){}; virtual ~Image();
static bool getConstant(const char * in, FilterMode & out);
static bool getConstant(FilterMode in, const char *& out);
static bool getConstant(const char * in, WrapMode & out);
static bool getConstant(WrapMode in, const char *& out);
private:
static StringMap<FilterMode, FILTER_MAX_ENUM>::Entry filterModeEntries[];
static StringMap<FilterMode, FILTER_MAX_ENUM> filterModes;
static StringMap<WrapMode, WRAP_MAX_ENUM>::Entry wrapModeEntries[];
static StringMap<WrapMode, WRAP_MAX_ENUM> wrapModes;
}; // Image }; // Image
+1 -1
View File
@@ -31,7 +31,7 @@ namespace opengl
{ {
Glyph::Glyph(love::font::GlyphData * data) Glyph::Glyph(love::font::GlyphData * data)
: data(data), texture(0), width((float)data->getWidth()), height((float)data->getHeight()) : data(data), width((float)data->getWidth()), height((float)data->getHeight()), texture(0)
{ {
data->retain(); data->retain();
data->getWidth(); data->getWidth();
+7 -2
View File
@@ -123,6 +123,7 @@ namespace opengl
void Image::setFilter(Image::Filter f) void Image::setFilter(Image::Filter f)
{ {
GLint gmin, gmag; GLint gmin, gmag;
gmin = gmag = 0; // so that they're not used uninitialized
switch(f.min) switch(f.min)
{ {
@@ -132,6 +133,8 @@ namespace opengl
case FILTER_NEAREST: case FILTER_NEAREST:
gmin = GL_NEAREST; gmin = GL_NEAREST;
break; break;
default:
break;
} }
switch(f.mag) switch(f.mag)
@@ -142,12 +145,14 @@ namespace opengl
case FILTER_NEAREST: case FILTER_NEAREST:
gmag = GL_NEAREST; gmag = GL_NEAREST;
break; break;
default:
break;
} }
bind(); bind();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gmin); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gmin);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gmag); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gmag);
} }
Image::Filter Image::getFilter() const Image::Filter Image::getFilter() const
+1 -1
View File
@@ -31,7 +31,7 @@ namespace graphics
namespace opengl namespace opengl
{ {
ImageFont::ImageFont(Image * image, std::string glyphs) ImageFont::ImageFont(Image * image, std::string glyphs)
: Font(0), glyphs(glyphs), image(image) : Font(0), image(image), glyphs(glyphs)
{ {
image->retain(); image->retain();
+46 -12
View File
@@ -50,8 +50,17 @@ namespace opengl
{ {
Image * t = luax_checkimage(L, 1); Image * t = luax_checkimage(L, 1);
Image::Filter f; Image::Filter f;
f.min = (Image::FilterMode)luaL_checkint(L, 2); Image::FilterMode min;
f.mag = (Image::FilterMode)luaL_checkint(L, 3); Image::FilterMode mag;
const char * minstr = luaL_checkstring(L, 2);
const char * magstr = luaL_checkstring(L, 3);
if (!Image::getConstant(minstr, min))
return luaL_error(L, "Invalid filter mode: %s", minstr);
if (!Image::getConstant(magstr, mag))
return luaL_error(L, "Invalid filter mode: %s", magstr);
f.min = min;
f.mag = mag;
t->setFilter(f); t->setFilter(f);
return 0; return 0;
} }
@@ -60,27 +69,52 @@ namespace opengl
{ {
Image * t = luax_checkimage(L, 1); Image * t = luax_checkimage(L, 1);
Image::Filter f = t->getFilter(); Image::Filter f = t->getFilter();
lua_pushinteger(L, f.min); Image::FilterMode min = f.min;
lua_pushinteger(L, f.mag); Image::FilterMode mag = f.mag;
const char * minstr;
const char * magstr;
if (!Image::getConstant(min, minstr))
return luaL_error(L, "Invalid filter mode: %s", minstr);
if (!Image::getConstant(mag, magstr))
return luaL_error(L, "Invalid filter mode: %s", magstr);
lua_pushstring(L, minstr);
lua_pushstring(L, magstr);
return 2; return 2;
} }
int w_Image_setWrap(lua_State * L) int w_Image_setWrap(lua_State * L)
{ {
Image * t = luax_checkimage(L, 1); Image * i = luax_checkimage(L, 1);
Image::Wrap w; Image::Wrap w;
w.s = (Image::WrapMode)luaL_checkint(L, 2); Image::WrapMode s;
w.t = (Image::WrapMode)luaL_checkint(L, 3); Image::WrapMode t;
t->setWrap(w); const char * sstr = luaL_checkstring(L, 2);
const char * tstr = luaL_checkstring(L, 3);
if (!Image::getConstant(sstr, s))
return luaL_error(L, "Invalid wrap mode: %s", sstr);
if (!Image::getConstant(tstr, t))
return luaL_error(L, "Invalid wrap mode, %s", tstr);
w.s = s;
w.t = t;
i->setWrap(w);
return 0; return 0;
} }
int w_Image_getWrap(lua_State * L) int w_Image_getWrap(lua_State * L)
{ {
Image * t = luax_checkimage(L, 1); Image * i = luax_checkimage(L, 1);
Image::Wrap w = t->getWrap(); Image::Wrap w = i->getWrap();
lua_pushinteger(L, w.s); Image::WrapMode s = w.s;
lua_pushinteger(L, w.t); Image::WrapMode t = w.t;
const char * sstr;
const char * tstr;
if (!Image::getConstant(s, sstr))
return luaL_error(L, "Invalid filter mode: %s", sstr);
if (!Image::getConstant(t, tstr))
return luaL_error(L, "Invalid filter mode: %s", tstr);
lua_pushstring(L, sstr);
lua_pushstring(L, tstr);
return 2; return 2;
} }
+1 -1
View File
@@ -25,7 +25,7 @@ namespace love
namespace image namespace image
{ {
EncodedImageData::EncodedImageData(void * d, Format f, int s) EncodedImageData::EncodedImageData(void * d, Format f, int s)
: data(d), format(f), size(s) : data(d), size(s), format(f)
{ {
} }
+4 -4
View File
@@ -154,16 +154,16 @@ namespace devil
void ImageData::setPixel(int x, int y, pixel c) void ImageData::setPixel(int x, int y, pixel c)
{ {
int tx = x > width-1 ? width-1 : x; //int tx = x > width-1 ? width-1 : x;
int ty = y > height-1 ? height-1 : y; //int ty = y > height-1 ? height-1 : y; // not using these seems to not break anything
pixel * pixels = (pixel *)getData(); pixel * pixels = (pixel *)getData();
pixels[y*width+x] = c; pixels[y*width+x] = c;
} }
pixel ImageData::getPixel(int x, int y) const pixel ImageData::getPixel(int x, int y) const
{ {
int tx = x > width-1 ? width-1 : x; //int tx = x > width-1 ? width-1 : x;
int ty = y > height-1 ? height-1 : y; //int ty = y > height-1 ? height-1 : y; // not using these seems to not break anything
pixel * pixels = (pixel *)getData(); pixel * pixels = (pixel *)getData();
return pixels[y*width+x]; return pixels[y*width+x];
} }
+1 -1
View File
@@ -60,7 +60,7 @@ namespace box2d
void PrismaticJoint::setMotorEnabled(bool motor) void PrismaticJoint::setMotorEnabled(bool motor)
{ {
return joint->EnableMotor(true); return joint->EnableMotor(motor);
} }
bool PrismaticJoint::isMotorEnabled() const bool PrismaticJoint::isMotorEnabled() const
+1 -1
View File
@@ -218,7 +218,7 @@ namespace box2d
for(int i = 1;i<=argc;i++) for(int i = 1;i<=argc;i++)
{ {
size_t bpos = (size_t)(lua_tointeger(L, i)-1); size_t bpos = (size_t)(lua_tointeger(L, i)-1);
if(bpos < 0 || bpos > 16) if(bpos > 16)
return luaL_error(L, "Values must be in range 1-16."); return luaL_error(L, "Values must be in range 1-16.");
b.set(bpos, true); b.set(bpos, true);
} }