Browse Source

replacing affineTransfrom with Matrix, not completed

dm 7 years ago
parent
commit
d16caf634d

+ 1 - 1
oxygine/src/oxygine/Material.cpp

@@ -69,7 +69,7 @@ namespace oxygine
     }
 
 
-    void STDMaterial::render(const AffineTransform& tr, const Color& c, const RectF& src, const RectF& dest)
+    void STDMaterial::render(const Matrix& tr, const Color& c, const RectF& src, const RectF& dest)
     {
         STDRenderer::getCurrent()->setTransform(tr);
         STDRenderer::getCurrent()->addQuad(c, src, dest);

+ 2 - 2
oxygine/src/oxygine/Material.h

@@ -56,7 +56,7 @@ namespace oxygine
         virtual void update(size_t& hash, compare&) const = 0;
         virtual void rehash(size_t& hash) const = 0;
 
-        virtual void render(const AffineTransform& tr, const Color& c, const RectF& src, const RectF& dest) {}
+        virtual void render(const Matrix& tr, const Color& c, const RectF& src, const RectF& dest) {}
         virtual void render(const Color& c, const RectF& src, const RectF& dest) {}
 
         void apply();
@@ -102,7 +102,7 @@ namespace oxygine
         void xapply() override;
         void xflush() override;
 
-        void render(const AffineTransform& tr, const Color& c, const RectF& src, const RectF& dest) override;
+        void render(const Matrix& tr, const Color& c, const RectF& src, const RectF& dest) override;
         void render(const Color& c, const RectF& src, const RectF& dest) override;
     };
 

+ 1 - 1
oxygine/src/oxygine/RenderState.h

@@ -20,7 +20,7 @@ namespace oxygine
             return color;
         }
 
-        Transform transform;
+        Matrix transform;
         unsigned char alpha;
         const RectF* clip;
     };

+ 4 - 4
oxygine/src/oxygine/STDRenderDelegate.cpp

@@ -54,7 +54,7 @@ namespace oxygine
         {
             renderer->flush();
 
-            RectF ss_rect = getActorTransformedDestRect(actor, actor->getTransform() * parentRS.transform);
+            RectF ss_rect = getActorTransformedDestRect(actor, actor->getTransform() * AffineTransform(parentRS.transform));
 
             clippedRect.clip(ss_rect);
             if (!clippedRect.isEmpty())
@@ -200,13 +200,13 @@ namespace oxygine
 
         Color color = rs.getFinalColor(sprite->getColor());
 
-        sprite->_mat->apply();
-        sprite->_mat->render(rs.transform, color, sprite->getAnimFrame().getSrcRect(), sprite->getDestRect());
+        sprite->_mat->apply();        
+        sprite->_mat->render(AffineTransform(rs.transform), color, sprite->getAnimFrame().getSrcRect(), sprite->getDestRect());
     }
 
     void STDRenderDelegate::doRender(TextField* tf, const RenderState& rs)
     {
-        float scale = sqrtf(rs.transform.a * rs.transform.a + rs.transform.c * rs.transform.c);
+        float scale = sqrtf(rs.transform.m11 * rs.transform.m11 + rs.transform.m22 * rs.transform.m22);
 
         text::Node* root = tf->getRootNode(scale);
         if (!root)

+ 1 - 1
oxygine/src/oxygine/STDRenderer.cpp

@@ -523,7 +523,7 @@ namespace oxygine
     }
 
 
-    void STDRenderer::setTransform(const Transform& tr)
+    void STDRenderer::setTransform(const Matrix& tr)
     {
         _transform = tr;
     }

+ 3 - 3
oxygine/src/oxygine/STDRenderer.h

@@ -82,7 +82,7 @@ namespace oxygine
 
         const Matrix&               getViewProjection() const;
         IVideoDriver*               getDriver();
-        const AffineTransform&      getTransform() const { return _transform; }
+        const Matrix&      getTransform() const { return _transform; }
         const VertexDeclaration*    getVertexDeclaration() const { return _vdecl; }
         unsigned int                getBaseShaderFlags() const { return _baseShaderFlags; }
 
@@ -93,7 +93,7 @@ namespace oxygine
         void setBaseShaderFlags(unsigned int fl);
 
         /**Sets World transformation.*/
-        void setTransform(const Transform& world);
+        void setTransform(const Matrix& world);
         void addQuad(const Color&, const RectF& srcRect, const RectF& destRect);
 
         /**Begins rendering into RenderTexture or into primary framebuffer if rt is null*/
@@ -129,7 +129,7 @@ namespace oxygine
     protected:
         virtual void shaderProgramChanged() {}
 
-        Transform _transform;
+        Matrix _transform;
 
         void setShader(ShaderProgram* prog);
 

+ 1 - 1
oxygine/src/oxygine/actor/Actor.cpp

@@ -1110,7 +1110,7 @@ namespace oxygine
         if (_flags & flag_fastTransform)
         {
             rs.transform = parentRS.transform;
-            rs.transform.translate(Vector2(tr.x, tr.y));
+            rs.transform.translate(Vector3(tr.x, tr.y, 0));
         }
         else
             Transform::multiply(rs.transform, tr, parentRS.transform);

+ 2 - 1
oxygine/src/oxygine/core/Renderer.h

@@ -5,6 +5,7 @@
 #include "../math/AffineTransform.h"
 #include "../math/Color.h"
 #include "../math/Rect.h"
+#include "../math/Matrix.h"
 #include <vector>
 
 #if OXYGINE_NO_SUBPIXEL_RENDERING
@@ -33,7 +34,7 @@ namespace oxygine
 
 
     template<class V>
-    void fillQuadT(V* pv, const RectF& srcRect, const RectF& destRect, const AffineTransform& transform, unsigned int rgba)
+    void fillQuadT(V* pv, const RectF& srcRect, const RectF& destRect, const Matrix& transform, unsigned int rgba)
     {
         float u = srcRect.pos.x;
         float v = srcRect.pos.y;

+ 2 - 2
oxygine/src/oxygine/dev_tools/TreeInspectorPreview.cpp

@@ -349,7 +349,7 @@ namespace oxygine
         nextBatch();
     }
 
-    void VideoDriverCache::render(const AffineTransform& transform)
+    void VideoDriverCache::render(const Matrix& transform)
     {
         for (batches::iterator i = _batches.begin(); i != _batches.end(); ++i)
         {
@@ -425,7 +425,7 @@ namespace oxygine
         }
     }
 
-    void VideoDriverCache::transform(const AffineTransform& transform)
+    void VideoDriverCache::transform(const Matrix& transform)
     {
         /*
         AffineTransform transform;

+ 3 - 3
oxygine/src/oxygine/dev_tools/TreeInspectorPreview.h

@@ -60,7 +60,7 @@ namespace oxygine
         batches _batches;
         RectF _bounds;
 
-        AffineTransform _transform;
+        Matrix _transform;
         mutable VertexDeclarations<VertexDeclarationNull> _declarations;
 
         VideoDriverCache();
@@ -95,8 +95,8 @@ namespace oxygine
 
         void draw(PRIMITIVE_TYPE pt, const VertexDeclaration* decl, const void* verticesData,  unsigned int numVertices) override;
         void draw(PRIMITIVE_TYPE pt, const VertexDeclaration* decl, const void* verticesData,  unsigned int numVertices, const unsigned short* indicesData, unsigned int numIndices) override;
-        void render(const AffineTransform& m);
-        void transform(const AffineTransform& m);
+        void render(const Matrix& m);
+        void transform(const Matrix& m);
 
         spNativeTexture rt;
         Matrix wvp;