Commits

Alex Szpakowski committed 357697c

More internal code cleanup

Comments (0)

Files changed (19)

src/modules/event/Event.cpp

 namespace event
 {
 
-Message::Message(std::string name, Variant *a, Variant *b, Variant *c, Variant *d)
+Message::Message(const std::string &name, Variant *a, Variant *b, Variant *c, Variant *d)
 	: name(name)
 	, nargs(0)
 {

src/modules/event/Event.h

 	int nargs;
 
 public:
-	Message(std::string name, Variant *a = NULL, Variant *b = NULL, Variant *c = NULL, Variant *d = NULL);
+	Message(const std::string &name, Variant *a = NULL, Variant *b = NULL, Variant *c = NULL, Variant *d = NULL);
 	~Message();
 
 	int toLua(lua_State *L);

src/modules/filesystem/physfs/File.cpp

 
 extern bool hack_setupWriteDirectory();
 
-File::File(std::string filename)
+File::File(const std::string &filename)
 	: filename(filename)
 	, file(0)
 	, mode(filesystem::File::CLOSED)

src/modules/filesystem/physfs/File.h

 	 * @param source The source from which to load the file. (Archive or directory)
 	 * @param filename The relative filepath of the file to load from the source.
 	 **/
-	File(std::string filename);
+	File(const std::string &filename);
 
 	virtual ~File();
 

src/modules/filesystem/physfs/Filesystem.cpp

 
 int Filesystem::enumerate(lua_State *L)
 {
-	int n = lua_gettop(L);
+	const char *dir = luaL_checkstring(L, 1);
 
-	if (n != 1)
-		return luaL_error(L, "Function requires a single parameter.");
-
-	int type = lua_type(L, 1);
-
-	if (type != LUA_TSTRING)
-		return luaL_error(L, "Function requires parameter of type string.");
-
-	const char *dir = lua_tostring(L, 1);
 	char **rc = PHYSFS_enumerateFiles(dir);
-	char **i;
 	int index = 1;
 
 	lua_newtable(L);
 
-	for (i = rc; *i != 0; i++)
+	for (char **i = rc; *i != 0; i++)
 	{
-		lua_pushinteger(L, index);
 		lua_pushstring(L, *i);
-		lua_settable(L, -3);
+		lua_rawseti(L, -2, index);
 		index++;
 	}
 

src/modules/graphics/opengl/Canvas.cpp

 	for (size_t i = 0; i < canvases.size(); i++)
 		canvases[i]->retain();
 
-	// release previously attached canvases
+	// release any old canvases
 	for (size_t i = 0; i < attachedCanvases.size(); i++)
 		attachedCanvases[i]->release();
 
 	settings.wrap   = getWrap();
 	strategy->deleteFBO(fbo, depth_stencil, img);
 
-	// release attached canvases
 	for (size_t i = 0; i < attachedCanvases.size(); i++)
 		attachedCanvases[i]->release();
 

src/modules/graphics/opengl/Font.cpp

 {
 	// try to find the best texture size match for the font size
 	// default to the largest texture size if no rough match is found
-	texture_size_index = NUM_TEXTURE_SIZES - 1;
+	textureSizeIndex = NUM_TEXTURE_SIZES - 1;
 	for (int i = 0; i < NUM_TEXTURE_SIZES; i++)
 	{
 		// base our chosen texture width/height on a very rough guess of the total size taken up by the font's used glyphs
 		// the estimate is likely larger than the actual total size taken up, which is good since texture changes are expensive
 		if ((height * 0.8) * height * 95 <= TEXTURE_WIDTHS[i] * TEXTURE_HEIGHTS[i])
 		{
-			texture_size_index = i;
+			textureSizeIndex = i;
 			break;
 		}
 	}
 
-	texture_width = TEXTURE_WIDTHS[texture_size_index];
-	texture_height = TEXTURE_HEIGHTS[texture_size_index];
+	textureWidth = TEXTURE_WIDTHS[textureSizeIndex];
+	textureHeight = TEXTURE_HEIGHTS[textureSizeIndex];
 
 	love::font::GlyphData *gd = 0;
 
 	glTexImage2D(GL_TEXTURE_2D,
 				 0,
 				 internalformat,
-				 (GLsizei)texture_width,
-				 (GLsizei)texture_height,
+				 (GLsizei)textureWidth,
+				 (GLsizei)textureHeight,
 				 0,
 				 format,
 				 GL_UNSIGNED_BYTE,
 
 void Font::createTexture()
 {
-	texture_x = texture_y = rowHeight = TEXTURE_PADDING;
+	textureX = textureY = rowHeight = TEXTURE_PADDING;
 
 	GLuint t;
 	glGenTextures(1, &t);
 
 	// try to initialize the texture, attempting smaller sizes if initialization fails
 	bool initialized = false;
-	while (texture_size_index >= 0)
+	while (textureSizeIndex >= 0)
 	{
-		texture_width = TEXTURE_WIDTHS[texture_size_index];
-		texture_height = TEXTURE_HEIGHTS[texture_size_index];
+		textureWidth = TEXTURE_WIDTHS[textureSizeIndex];
+		textureHeight = TEXTURE_HEIGHTS[textureSizeIndex];
 
 		initialized = initializeTexture(format);
 
-		if (initialized || texture_size_index <= 0)
+		if (initialized || textureSizeIndex <= 0)
 			break;
 
-		--texture_size_index;
+		--textureSizeIndex;
 	}
 
 	if (!initialized)
 	}
 	
 	// Fill the texture with transparent black
-	std::vector<GLubyte> emptyData(texture_width * texture_height * (type == FONT_TRUETYPE ? 2 : 4), 0);
+	std::vector<GLubyte> emptyData(textureWidth * textureHeight * (type == FONT_TRUETYPE ? 2 : 4), 0);
 	glTexSubImage2D(GL_TEXTURE_2D,
 					0,
 					0, 0,
-					(GLsizei)texture_width,
-					(GLsizei)texture_height,
+					(GLsizei)textureWidth,
+					(GLsizei)textureHeight,
 					format,
 					GL_UNSIGNED_BYTE,
 					&emptyData[0]);
 	int w = gd->getWidth();
 	int h = gd->getHeight();
 
-	if (texture_x + w + TEXTURE_PADDING > texture_width)
+	if (textureX + w + TEXTURE_PADDING > textureWidth)
 	{
 		// out of space - new row!
-		texture_x = TEXTURE_PADDING;
-		texture_y += rowHeight;
+		textureX = TEXTURE_PADDING;
+		textureY += rowHeight;
 		rowHeight = TEXTURE_PADDING;
 	}
-	if (texture_y + h + TEXTURE_PADDING > texture_height)
+	if (textureY + h + TEXTURE_PADDING > textureHeight)
 	{
 		// totally out of space - new texture!
 		createTexture();
 		bindTexture(t);
 		glTexSubImage2D(GL_TEXTURE_2D,
 						0,
-						texture_x,
-						texture_y,
+						textureX,
+						textureY,
 						w, h,
 						(type == FONT_TRUETYPE ? GL_LUMINANCE_ALPHA : GL_RGBA),
 						GL_UNSIGNED_BYTE,
 		g->texture = t;
 
 		Quad::Viewport v;
-		v.x = (float) texture_x;
-		v.y = (float) texture_y;
+		v.x = (float) textureX;
+		v.y = (float) textureY;
 		v.w = (float) w;
 		v.h = (float) h;
 
-		Quad q = Quad(v, (const float) texture_width, (const float) texture_height);
+		Quad q = Quad(v, (const float) textureWidth, (const float) textureHeight);
 		const vertex *verts = q.getVertices();
 
 		// copy vertex data to the glyph and set proper bearing
 	}
 
 	if (w > 0)
-		texture_x += (w + TEXTURE_PADDING);
+		textureX += (w + TEXTURE_PADDING);
 	if (h > 0)
 		rowHeight = std::max(rowHeight, h + TEXTURE_PADDING);
 

src/modules/graphics/opengl/Font.h

 	float lineHeight;
 	float mSpacing; // modifies the spacing by multiplying it with this value
 
-	int texture_size_index;
-	int texture_width;
-	int texture_height;
+	int textureSizeIndex;
+	int textureWidth;
+	int textureHeight;
 
-	std::vector<GLuint> textures; // vector of packed textures
-	std::map<unsigned int, Glyph *> glyphs; // maps glyphs to quad information
+	// vector of packed textures
+	std::vector<GLuint> textures;
+
+	// maps glyphs to glyph texture information
+	std::map<unsigned int, Glyph *> glyphs;
+
 	FontType type;
 	Image::Filter filter;
 
 
 	static const int TEXTURE_PADDING = 1;
 
-	int texture_x, texture_y;
+	int textureX, textureY;
 	int rowHeight;
 
 	bool initializeTexture(GLint format);

src/modules/graphics/opengl/Graphics.cpp

 int Graphics::getModes(lua_State *L) const
 {
 	int n;
-	love::window::Window::WindowSize **modes = currentWindow->getFullscreenSizes(n);
+	love::window::Window::WindowSize *modes = currentWindow->getFullscreenSizes(n);
 
 	if (modes == 0)
 		return 0;
 
-	lua_newtable(L);
+	lua_createtable(L, n, 0);
 
 	for (int i = 0; i < n ; i++)
 	{
 		lua_pushinteger(L, i+1);
-		lua_newtable(L);
+		lua_createtable(L, 0, 2);
 
 		// Inner table attribs.
 
-		lua_pushstring(L, "width");
-		lua_pushinteger(L, modes[i]->width);
-		lua_settable(L, -3);
+		lua_pushinteger(L, modes[i].width);
+		lua_setfield(L, -2, "width");
 
-		lua_pushstring(L, "height");
-		lua_pushinteger(L, modes[i]->height);
-		lua_settable(L, -3);
+		lua_pushinteger(L, modes[i].height);
+		lua_setfield(L, -2, "height");
 
 		// Inner table attribs end.
 
 		lua_settable(L, -3);
-
-		delete modes[i];
 	}
 
 	delete[] modes;

src/modules/graphics/opengl/Shader.cpp

 	if (shaderSources.empty())
 		throw love::Exception("Cannot create shader: no source code!");
 
-	GLint maxtexunits;
-	glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &maxtexunits);
-	maxTextureUnits = std::max(maxtexunits - 1, 0);
+	if (maxTextureUnits <= 0)
+	{
+		GLint maxtexunits;
+		glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &maxtexunits);
+		maxTextureUnits = std::max(maxtexunits - 1, 0);
+	}
 
 	// initialize global texture id counters if needed
 	if (textureCounters.size() < (size_t) maxTextureUnits)
 
 	if (status == GL_FALSE)
 	{
-		const std::string warnings = getWarnings();
+		std::string warnings = getWarnings();
 		glDeleteProgram(program);
 
 		throw love::Exception("Cannot link shader program object:\n%s", warnings.c_str());

src/modules/graphics/opengl/wrap_Canvas.cpp

 	}
 	else if (lua_istable(L, 2))
 	{
-		lua_rawgeti(L, 2, 1);
-		c.r = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 2, 2);
-		c.g = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 2, 3);
-		c.b = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 2, 4);
+		for (int i = 1; i <= 4; i++)
+			lua_rawgeti(L, 2, i);
+
+		c.r = (unsigned char)luaL_checkint(L, -4);
+		c.g = (unsigned char)luaL_checkint(L, -3);
+		c.b = (unsigned char)luaL_checkint(L, -2);
 		c.g = (unsigned char)luaL_optint(L, -1, 255);
+
 		lua_pop(L, 4);
 	}
 	else

src/modules/graphics/opengl/wrap_Graphics.cpp

 	Color c;
 	if (lua_istable(L, 1))
 	{
-		lua_rawgeti(L, 1, 1);
-		c.r = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 1, 2);
-		c.g = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 1, 3);
-		c.b = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 1, 4);
+		for (int i = 1; i <= 4; i++)
+			lua_rawgeti(L, 1, i);
+
+		c.r = (unsigned char)luaL_checkint(L, -4);
+		c.g = (unsigned char)luaL_checkint(L, -3);
+		c.b = (unsigned char)luaL_checkint(L, -2);
 		c.a = (unsigned char)luaL_optint(L, -1, 255);
+
 		lua_pop(L, 4);
 	}
 	else
 	Color c;
 	if (lua_istable(L, 1))
 	{
-		lua_rawgeti(L, 1, 1);
-		c.r = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 1, 2);
-		c.g = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 1, 3);
-		c.b = (unsigned char)luaL_checkint(L, -1);
-		lua_rawgeti(L, 1, 4);
+		for (int i = 1; i <= 4; i++)
+			lua_rawgeti(L, 1, i);
+
+		c.r = (unsigned char)luaL_checkint(L, -4);
+		c.g = (unsigned char)luaL_checkint(L, -3);
+		c.b = (unsigned char)luaL_checkint(L, -2);
 		c.a = (unsigned char)luaL_optint(L, -1, 255);
+
 		lua_pop(L, 4);
 	}
 	else
 
 	if (is_table)
 	{
+		// grab the first canvas in the array and attach the rest
 		lua_rawgeti(L, 1, 1);
 		canvas = luax_checkcanvas(L, -1);
 		lua_pop(L, 1);

src/modules/graphics/opengl/wrap_SpriteBatch.cpp

 	}
 	else if (lua_istable(L, 2))
 	{
-		lua_rawgeti(L, 2, 1);
-		c.r = (unsigned char) luaL_checkint(L, -1);
-		lua_pop(L, 1);
-		lua_rawgeti(L, 2, 2);
-		c.g = (unsigned char) luaL_checkint(L, -1);
-		lua_pop(L, 1);
-		lua_rawgeti(L, 2, 3);
-		c.b = (unsigned char) luaL_checkint(L, -1);
-		lua_pop(L, 1);
-		lua_rawgeti(L, 2, 4);
+		for (int i = 1; i <= 4; i++)
+			lua_rawgeti(L, 2, i);
+
+		c.r = (unsigned char) luaL_checkint(L, -4);
+		c.g = (unsigned char) luaL_checkint(L, -3);
+		c.b = (unsigned char) luaL_checkint(L, -2);
 		c.a = (unsigned char) luaL_optint(L, -1, 255);
-		lua_pop(L, 1);
+
+		lua_pop(L, 4);
 	}
 	else
 	{

src/modules/image/devil/ImageData.cpp

 
 		create(width, height, ilGetData());
 	}
-	catch (love::Exception &)
-	{
-		ilDeleteImage(image);
-		throw;
-	}
 	catch (std::exception &e)
 	{
+		// catches love and std exceptions
 		ilDeleteImage(image);
 		throw love::Exception("%s", e.what());
 	}
 		f->write(encoded_data, size);
 		f->close();
 	}
-	catch (love::Exception &)
-	{
-		ilDeleteImage(tempimage);
-		delete[] encoded_data;
-		throw;
-	}
 	catch (std::exception &e)
 	{
+		// catches love and std exceptions
 		ilDeleteImage(tempimage);
 		delete[] encoded_data;
 		throw love::Exception("%s", e.what());

src/modules/image/wrap_ImageData.cpp

 	{
 		ext = file->getExtension();
 		fmt = ext.c_str();
-		ImageData::getConstant(fmt, format);
+		if (!ImageData::getConstant(fmt, format))
+			return luaL_error(L, "Invalid image format '%s'.", fmt);
 	}
 	else
 	{
 		fmt = luaL_checkstring(L, 3);
 		if (!ImageData::getConstant(fmt, format))
-			luaL_error(L, "Invalid image format.");
+			return luaL_error(L, "Invalid image format '%s'.", fmt);
 	}
 
 	try
 
 static const luaL_Reg functions[] =
 {
-
 	// Data
 	{ "getPointer", w_Data_getPointer },
 	{ "getSize", w_Data_getSize },

src/modules/timer/sdl/Timer.cpp

 {
 
 Timer::Timer()
-	: currTime(getMicroTime())
-	, prevFpsUpdate(currTime)
+	: currTime(0)
+	, prevFpsUpdate(0)
 	, fps(0)
 	, averageDelta(0)
 	, fpsUpdateFrequency(1)
 	// Init the SDL timer system.
 	if (SDL_InitSubSystem(SDL_INIT_TIMER) < 0)
 		throw Exception(SDL_GetError());
+
+	prevFpsUpdate = currTime = getMicroTime();
 }
 
 Timer::~Timer()

src/modules/window/Window.h

 	virtual void getWindow(int &width, int &height, WindowFlags &flags) const = 0;
 
 	virtual bool checkWindowSize(int width, int height, bool fullscreen) const = 0;
-	virtual WindowSize **getFullscreenSizes(int &n) const = 0;
+	virtual WindowSize *getFullscreenSizes(int &n) const = 0;
 
 	virtual int getWidth() const = 0;
 	virtual int getHeight() const = 0;
 
 	virtual bool isCreated() const = 0;
 
-	virtual void setWindowTitle(std::string &title) = 0;
+	virtual void setWindowTitle(const std::string &title) = 0;
 	virtual std::string getWindowTitle() const = 0;
 
 	virtual bool setIcon(love::image::ImageData *imgd) = 0;

src/modules/window/sdl/Window.cpp

 
 typedef Window::WindowSize WindowSize;
 
-WindowSize **Window::getFullscreenSizes(int &n) const
+WindowSize *Window::getFullscreenSizes(int &n) const
 {
 	SDL_Rect **modes = SDL_ListModes(0, SDL_OPENGL | SDL_FULLSCREEN);
 
 	for (int i = 0; modes[i]; i++)
 		n++;
 
-	WindowSize **sizes = new WindowSize*[n];
+	WindowSize *sizes = new WindowSize[n];
 
 	for (int i = 0; i < n; i++)
 	{
-		sizes[i] = new WindowSize;
-		sizes[i]->width = modes[i]->w;
-		sizes[i]->height = modes[i]->h;
+		WindowSize w = {modes[i]->w, modes[i]->h};
+		sizes[i] = w;
 	}
 	return sizes;
 }
 	return created;
 }
 
-void Window::setWindowTitle(std::string &title)
+void Window::setWindowTitle(const std::string &title)
 {
 	windowTitle = title;
 	SDL_WM_SetCaption(windowTitle.c_str(), 0);

src/modules/window/sdl/Window.h

 	void getWindow(int &width, int &height, WindowFlags &flags) const;
 
 	bool checkWindowSize(int width, int height, bool fullscreen) const;
-	WindowSize **getFullscreenSizes(int &n) const;
+	WindowSize *getFullscreenSizes(int &n) const;
 
 	int getWidth() const;
 	int getHeight() const;
 
 	bool isCreated() const;
 
-	void setWindowTitle(std::string &title);
+	void setWindowTitle(const std::string &title);
 	std::string getWindowTitle() const;
 
 	bool setIcon(love::image::ImageData *imgd);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.