Browse Source

minor fixes

dmuratshin 10 years ago
parent
commit
56d50b5dd3

+ 2 - 2
.hg_archival.txt

@@ -1,5 +1,5 @@
 repo: b6d71054df5712e643a0685bc3ba54b123db5729
-node: b31f72c03aaf7bed6f7262af6f9192287b1920ac
+node: c4814778e3e9402aa1d8d7704fd97de43bf3f8d3
 branch: default
 latesttag: oldrender
-latesttagdistance: 718
+latesttagdistance: 720

+ 2 - 0
oxygine/src/core/ImageData.cpp

@@ -20,6 +20,8 @@ namespace oxygine
                 return 2;
             case TF_R5G6B5:
                 return 2;
+            case TF_B5G6R5:
+                return 2;
             case TF_R4G4B4A4:
                 return 2;
             case TF_PVRTC_2RGB:

+ 2 - 0
oxygine/src/core/ImageData.h

@@ -17,6 +17,7 @@ namespace oxygine
         TF_R5G5B5A1,
         TF_R4G4B4A4,
         TF_R5G6B5,
+        TF_B5G6R5,
         TF_PVRTC_2RGB,
         TF_PVRTC_2RGBA,
         TF_PVRTC_4RGB,
@@ -38,6 +39,7 @@ namespace oxygine
             FORMAT_CASE(R5G5B5A1); \
             FORMAT_CASE(R4G4B4A4); \
             FORMAT_CASE(R5G6B5); \
+            FORMAT_CASE(B5G6R5); \
         default: \
             OX_ASSERT(!"unknown format"); \
     }

+ 7 - 1
oxygine/src/core/Mutex.h

@@ -1,6 +1,12 @@
 #pragma once
 #include "oxygine_include.h"
-#include "pthread.h"
+
+#ifdef _WIN32
+typedef struct pthread_mutex_t_* pthread_mutex_t;
+#else
+#   include "pthread.h"
+#endif
+
 namespace oxygine
 {
     class Mutex

+ 32 - 0
oxygine/src/core/pixel.h

@@ -148,6 +148,38 @@ namespace oxygine
         }
     };
 
+    class PixelB5G6R5
+    {
+        /*
+        in memory: RRRRR_GGGGGG_BBBBB
+        in dword:  BBBBB_GGGGGG_RRRRR
+        */
+    public:
+        void getPixel(const unsigned char* data, Pixel& p) const
+        {
+            unsigned short color = *((unsigned short*)data);
+            p.b = lookupTable5to8[(color & 0xF800) >> 11];
+            p.g = lookupTable6to8[(color & 0x7E0) >> 5];
+            p.r = lookupTable5to8[(color & 0x1F)];
+            p.a = 255;
+        }
+
+        void setPixel(unsigned char* data, const Pixel& p)
+        {
+            unsigned short* pshort = (unsigned short*)data;
+            *pshort = ((p.b >> 3) << 11) | ((p.g >> 2) << 5) | (p.r >> 3);
+        }
+        void copy(const unsigned char* src, unsigned char* dst)
+        {
+            *((unsigned short*)dst) = *((unsigned short*)src);
+        }
+
+        unsigned char snap_a(unsigned char alpha) const
+        {
+            return 255;
+        }
+    };
+
 
 
     /*

+ 6 - 5
oxygine/src/res/CreateResourceContext.cpp

@@ -4,16 +4,16 @@
 
 namespace oxygine
 {
-    XmlWalker::XmlWalker(const std::string& base, const std::string& path, float scaleFactor, bool load, pugi::xml_node xml, pugi::xml_node meta) : _rootMeta(meta),
+    XmlWalker::XmlWalker(const std::string* xmlFolder, const std::string& path, float scaleFactor, bool load, pugi::xml_node xml, pugi::xml_node meta) : _rootMeta(meta),
         _root(xml),
         _notStarted(true),
         _notStartedMeta(true),
         _scaleFactor(scaleFactor),
         _load(load),
-        _base(base),
+        _xmlFolder(xmlFolder),
         _path(path)
     {
-        //_scaleFactor = _root.attribute("scale_factor").as_float(_scaleFactor);
+
     }
 
     std::string XmlWalker::connectPath(const char* currentPath, const char* str)
@@ -35,6 +35,7 @@ namespace oxygine
         if (str[0] == '.' && (str[1] == '/' || str[1] == '\\'))
         {
             str += 2;
+            return *_xmlFolder + str;
         }
 
         return _path + str;
@@ -76,7 +77,7 @@ namespace oxygine
             break;
         }
 
-        return XmlWalker(_base, _path, _scaleFactor, _load, _last, _lastMeta);
+        return XmlWalker(_xmlFolder, _path, _scaleFactor, _load, _last, _lastMeta);
     }
 
     void XmlWalker::_checkSetAttributes(pugi::xml_node node)
@@ -86,7 +87,7 @@ namespace oxygine
         {
             if (!strcmp(attr.name(), "path"))
             {
-                _path = connectPath(_base.c_str(), attr.value());
+                _path = connectPath(_xmlFolder->c_str(), attr.value());
                 if (!_path.empty())
                     _path += "/";
             }

+ 3 - 3
oxygine/src/res/CreateResourceContext.h

@@ -14,7 +14,7 @@ namespace oxygine
     class XmlWalker
     {
     public:
-        XmlWalker(const std::string& base, const std::string& path, float scaleFactor, bool load, pugi::xml_node xml, pugi::xml_node meta);
+        XmlWalker(const std::string* xmlFolder, const std::string& path, float scaleFactor, bool load, pugi::xml_node xml, pugi::xml_node meta);
 
         bool empty() const {return _root.empty();}
 
@@ -36,7 +36,7 @@ namespace oxygine
         void            _checkSetAttributes(pugi::xml_node node);
         std::string connectPath(const char* currentPath, const char* str);
 
-        std::string _base;
+        const std::string* _xmlFolder;
         std::string _path;
 
         pugi::xml_node _root;
@@ -56,7 +56,7 @@ namespace oxygine
     {
     public:
         CreateResourceContext(): resources(0), xml_name(0), prebuilt_folder(0),
-            walker("", "", 1.0f, true, pugi::xml_node(), pugi::xml_node())
+            walker(0, "", 1.0f, true, pugi::xml_node(), pugi::xml_node())
         {
 
         }

+ 2 - 1
oxygine/src/res/Resources.cpp

@@ -250,7 +250,8 @@ namespace oxygine
 
         FS_LOG("loading xml resources");
 
-        XmlWalker walker(destHead, "", 1.0f, load_completely, resources, resources_meta);
+        std::string xmlFolder = destHead;
+        XmlWalker walker(&xmlFolder, "", 1.0f, load_completely, resources, resources_meta);
 
         while (true)
         {

+ 4 - 1
tools/others/format.bat

@@ -4,4 +4,7 @@ d:\AStyle\bin\AStyle.exe d:\oxygine-framework\oxygine\src\*.cpp d:\oxygine-frame
 d:\AStyle\bin\AStyle.exe d:\oxygine-sound\src\*.cpp d:\oxygine-sound\src\*.h %options%
 d:\AStyle\bin\AStyle.exe d:\oxygine-magicparticles\src\*.cpp d:\oxygine-magicparticles\src\*.h %options%
 
-d:\AStyle\bin\AStyle.exe d:\oxygine-framework\examples\*.cpp d:\oxygine-framework\examples\*.h %options%  --exclude=box2d\box2d
+d:\AStyle\bin\AStyle.exe d:\oxygine-framework\examples\*.cpp d:\oxygine-framework\examples\*.h %options%  --exclude=box2d\box2d
+
+d:\AStyle\bin\AStyle.exe d:\oxygine-movie\examples\*.cpp d:\oxygine-movie\examples\*.h %options%
+d:\AStyle\bin\AStyle.exe d:\oxygine-movie\src\*.cpp d:\oxygine-movie\src\*.h %options%

+ 1 - 1
tools/resbuild/xml_processor.py

@@ -25,7 +25,7 @@ class XmlWalker:
     def getPath(self, attr):
         path = self.root.getAttribute(attr)
         if path.startswith("./") or path.startswith(".\\"):
-            path = path[2:len(path)]
+            return self.base + path[2:len(path)]
             
         return self.path + path