Browse Source

improved downsampled atlas
minor fixes

dmuratshin 11 years ago
parent
commit
a132fdaaef

+ 2 - 2
.hg_archival.txt

@@ -1,5 +1,5 @@
 repo: b6d71054df5712e643a0685bc3ba54b123db5729
-node: ca9fc754227a83436c0231e36ad75de1f9118009
+node: 55bd1ce8df5448e181747ca0cce6a24c9cba7c4f
 branch: default
 latesttag: oldrender
-latesttagdistance: 543
+latesttagdistance: 550

+ 3 - 3
oxygine/src/Actor.h

@@ -208,9 +208,9 @@ namespace oxygine
 		
 		spTween addTween(spTween);		
 
-		template<class GS>
-		spTween addTween(const GS &gs, timeMS duration, int loops = 1, bool twoSides = false, timeMS delay = 0, Tween::EASE ease = Tween::ease_linear)
-		{return addTween(createTween(gs, duration, loops, twoSides, delay, ease));}
+		template<class Prop>
+		spTween addTween(const Prop &prop, timeMS duration, int loops = 1, bool twoSides = false, timeMS delay = 0, Tween::EASE ease = Tween::ease_linear)
+		{return addTween(createTween(prop, duration, loops, twoSides, delay, ease));}
 
 		void removeTween(spTween);
 		void removeTweensByName(const std::string &name);

+ 1 - 5
oxygine/src/Input.h

@@ -1,16 +1,12 @@
 #pragma once
 #include "oxygine_include.h"
-#include "Event.h"
-#include "math/vector3.h"
-#include "math/vector2.h"
+#include "EventDispatcher.h"
 #include "closure/closure.h"
 #include "PointerState.h"
-#include "math/Rect.h"
 
 namespace oxygine
 {
 	class Actor;
-	class PointerState;
 	class EventState;
 	
 	const int MAX_TOUCHES = 8;

+ 4 - 1
oxygine/src/core/FileSystem.cpp

@@ -1,4 +1,5 @@
 #include "FileSystem.h"
+#include "utils/stringUtils.h"
 #include <string.h>
 #include <algorithm>
 
@@ -120,7 +121,9 @@ namespace oxygine
 
 		bool FileSystem::isExistsHere(const char *file)
 		{
-			return _isExists(file);
+			char str[512];
+			path::normalize(file, str);
+			return _isExists(str);
 		}
 
 	

+ 6 - 2
oxygine/src/core/STDFileSystem.cpp

@@ -34,6 +34,7 @@
 #elif OXYGINE_SDL
 	#ifdef WIN32
 		#include <direct.h>
+		#include <Windows.h>
 	#endif
 
 	#include <sys/stat.h>
@@ -222,8 +223,9 @@ namespace oxygine
 
 #if __S3E__
 			return(s3eFileDelete(buff) == S3E_RESULT_SUCCESS ? status_ok : status_error);
-#else
-			LOGD("STDFileSystem::_deleteFile %s", buff);
+#elif WIN32
+			return DeleteFileA(buff) ? status_ok : status_error;
+#else			
 			return(::remove(buff) != -1 ? status_ok : status_error);
 #endif
 
@@ -270,6 +272,8 @@ namespace oxygine
 
 #if __S3E__
 			return (s3eFileRename(buffSrc, buffDest) == S3E_RESULT_SUCCESS ? status_ok : status_error);
+#elif WIN32
+			return MoveFileA(buffSrc, buffDest) ? status_ok : status_error;
 #else
 			return (::rename(buffSrc, buffDest) != -1 ? status_ok : status_error);
 #endif

+ 30 - 3
oxygine/src/core/ZipFileSystem.cpp

@@ -185,17 +185,28 @@ namespace file
 	void Zips::update()
 	{
 		std::sort(_files.begin(), _files.end(), sortFiles);
+#ifdef OX_DEBUG
+		for (size_t i = 0; i < _files.size() - 1; ++i)
+		{
+			OX_ASSERT(strcmp(_files[i].name, _files[i + 1].name) != 0);
+		}
+#endif
 		log::messageln("ZipFS, total files: %d", _files.size());
 	}
 
 	bool Zips::read(const char *name, file::buffer &bf)
 	{
-		const file_entry *entry = getEntry(name);
+		const file_entry *entry = getEntryByName(name);
 		if (!entry)
 			return false;
 		return readEntry(entry, bf);
 	}
 
+	bool Zips::read(const file_entry *entry, file::buffer &bf)
+	{
+		return readEntry(entry, bf);
+	}
+
 	void Zips::reset()
 	{
 		for (zips::iterator i = _zps.begin(); i != _zps.end(); ++i)
@@ -214,7 +225,7 @@ namespace file
 		return strcmp_cns(g.name, name) < 0;
 	}
 
-	const file_entry *Zips::getEntry(const char *name)
+	const file_entry *Zips::getEntryByName(const char *name)
 	{
 		if (_sort)
 		{
@@ -232,6 +243,22 @@ namespace file
 
 		return 0;
 	}
+
+	const file_entry *Zips::getEntry(int index)
+	{
+		if (_sort)
+		{
+			update();
+			_sort = false;
+		}
+
+		return &_files[index];
+	}
+
+	size_t Zips::getNumEntries() const
+	{
+		return _files.size();
+	}
 	
 	class fileHandleZip: public fileHandle
 	{
@@ -310,7 +337,7 @@ namespace file
 
 	FileSystem::status ZipFileSystem::_open(const char *file, const char *mode, error_policy ep, file::fileHandle *&fh)
 	{
-		const file_entry *entry = _zips.getEntry(file);
+		const file_entry *entry = _zips.getEntryByName(file);
 		if (entry)
 		{
 			fh = new fileHandleZip(entry);

+ 4 - 1
oxygine/src/core/ZipFileSystem.h

@@ -32,8 +32,11 @@ namespace file
 		void update();
 
 		bool read(const char *name, file::buffer &bf);
+		bool read(const file_entry *entry, file::buffer &bf);
 
-		const file_entry *getEntry(const char *name);
+		const file_entry*	getEntryByName(const char *name);
+		const file_entry*	getEntry(int index);
+		size_t				getNumEntries() const;
 
 	private:
 		void read(unzFile zp);

File diff suppressed because it is too large
+ 0 - 1
oxygine/src/core/system_data.cpp


BIN
oxygine/system_data/original/system/anims/finger.png


+ 2 - 2
tools/others/oxyresbuild_tests.py

@@ -102,12 +102,12 @@ class MyTest(unittest.TestCase):
         #
         
         self.assertEqual(anim.frame_size, (64, 64))
-        self.assertEqual(frame.src, (0, 0, 38, 38))
+        self.assertEqual(frame.src, (0, 0, 34, 34))
         self.assertEqual(anim.frame_scale, 1.0)
         
         anim, frame = self.process(xml, "-r -s 0.5")        
         self.assertEqual(anim.frame_size, (64, 64))
-        self.assertEqual(frame.src, (0, 0, 22, 22))
+        self.assertEqual(frame.src, (0, 0, 18, 18))
         self.assertEqual(anim.frame_scale, 2)
         
         

+ 1 - 0
tools/resbuild/process_atlas.py

@@ -351,6 +351,7 @@ def processRS(context, walker):
                 trim = False
             if image.mode == "RGBA" and trim:
                 r,g,b,a = frame_image.split()
+                a = a.point(lambda p: p - 2)
                 frame_bbox = a.getbbox()
             else:
                 frame_bbox = frame_image.getbbox()

Some files were not shown because too many files changed in this diff