OSDN Git Service

Make Blitter part of Renderer.
[android-x86/external-swiftshader.git] / src / Renderer / Renderer.cpp
index a8f6032..a84423d 100644 (file)
@@ -114,6 +114,7 @@ namespace sw
 
                setRenderTarget(0, 0);
                clipper = new Clipper(symmetricNormalizedDepth);
+               blitter = new Blitter;
 
                updateViewMatrix = true;
                updateBaseMatrix = true;
@@ -177,7 +178,10 @@ namespace sw
                sync->destruct();
 
                delete clipper;
-               clipper = 0;
+               clipper = nullptr;
+
+               delete blitter;
+               blitter = nullptr;
 
                terminateThreads();
                delete resumeApp;
@@ -202,21 +206,6 @@ namespace sw
                sw::deallocate(mem);
        }
 
-       void Renderer::clear(void *pixel, Format format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask)
-       {
-               blitter.clear(pixel, format, dest, dRect, rgbaMask);
-       }
-
-       void Renderer::blit(Surface *source, const SliceRect &sRect, Surface *dest, const SliceRect &dRect, bool filter, bool isStencil)
-       {
-               blitter.blit(source, sRect, dest, dRect, filter, isStencil);
-       }
-
-       void Renderer::blit3D(Surface *source, Surface *dest)
-       {
-               blitter.blit3D(source, dest);
-       }
-
        void Renderer::draw(DrawType drawType, unsigned int indexOffset, unsigned int count, bool update)
        {
                #ifndef NDEBUG
@@ -681,6 +670,21 @@ namespace sw
                }
        }
 
+       void Renderer::clear(void *pixel, Format format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask)
+       {
+               blitter->clear(pixel, format, dest, dRect, rgbaMask);
+       }
+
+       void Renderer::blit(Surface *source, const SliceRect &sRect, Surface *dest, const SliceRect &dRect, bool filter, bool isStencil)
+       {
+               blitter->blit(source, sRect, dest, dRect, filter, isStencil);
+       }
+
+       void Renderer::blit3D(Surface *source, Surface *dest)
+       {
+               blitter->blit3D(source, dest);
+       }
+
        void Renderer::threadFunction(void *parameters)
        {
                Renderer *renderer = static_cast<Parameters*>(parameters)->renderer;