]> git.sesse.net Git - casparcg/commitdiff
Radically improved performance in texture.cpp at least on Nvidia Quadro 2000. GL_UNSI...
authorHelge Norberg <helge.norberg@svt.se>
Mon, 30 Nov 2015 20:55:02 +0000 (21:55 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Mon, 30 Nov 2015 20:55:02 +0000 (21:55 +0100)
accelerator/ogl/util/texture.cpp

index 18b899984d78e2c6ce433370a8feae0fdee3a996..322ffeb13b74dab3ca8aac2def97515a5628501e 100644 (file)
@@ -38,7 +38,8 @@ namespace caspar { namespace accelerator { namespace ogl {
        
 static GLenum FORMAT[] = {0, GL_RED, GL_RG, GL_BGR, GL_BGRA};
 static GLenum INTERNAL_FORMAT[] = {0, GL_R8, GL_RG8, GL_RGB8, GL_RGBA8};       
-static GLenum TYPE[] = {0, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT_8_8_8_8_REV}; 
+static GLenum TYPE[]                   = { 0, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE };
+static GLenum READPIXELS_TYPE[]        = { 0, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT_8_8_8_8_REV };
 
 static tbb::atomic<int>                        g_total_count;
 static tbb::atomic<std::size_t>        g_total_size;
@@ -150,7 +151,7 @@ public:
                dest.bind();
                GL(glBindTexture(GL_TEXTURE_2D, id_));
                GL(glReadBuffer(GL_COLOR_ATTACHMENT0));
-               GL(glReadPixels(0, 0, width_, height_, FORMAT[stride_], TYPE[stride_], NULL));
+               GL(glReadPixels(0, 0, width_, height_, FORMAT[stride_], READPIXELS_TYPE[stride_], NULL));
                GL(glBindTexture(GL_TEXTURE_2D, 0));
                dest.unbind();
                GL(glFlush());