X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=pbo_frame_allocator.cpp;h=1c370b4266d4f09609a8d657d1f8bda86fa1d85b;hb=538aa2fb443b25f34feafb4a50bb52206f7fe79c;hp=5f9d1bda9b659cc929c998bb37b274dbe1009ad8;hpb=956a923ae947b58a21ed08ba5d30700633608468;p=nageru diff --git a/pbo_frame_allocator.cpp b/pbo_frame_allocator.cpp index 5f9d1bd..1c370b4 100644 --- a/pbo_frame_allocator.cpp +++ b/pbo_frame_allocator.cpp @@ -1,5 +1,6 @@ #include "pbo_frame_allocator.h" +#include #include #include #include @@ -38,6 +39,10 @@ PBOFrameAllocator::PBOFrameAllocator(size_t frame_size, GLuint width, GLuint hei check_error(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + check_error(); glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, width, height, 0, GL_RED, GL_UNSIGNED_BYTE, NULL); check_error(); @@ -47,6 +52,10 @@ PBOFrameAllocator::PBOFrameAllocator(size_t frame_size, GLuint width, GLuint hei check_error(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + check_error(); glTexImage2D(GL_TEXTURE_2D, 0, GL_RG8, width / 2, height, 0, GL_RG, GL_UNSIGNED_BYTE, NULL); check_error(); @@ -95,11 +104,16 @@ FrameAllocator::Frame PBOFrameAllocator::alloc_frame() freelist.pop(); // Meh. } vf.len = 0; + vf.overflow = 0; return vf; } void PBOFrameAllocator::release_frame(Frame frame) { + if (frame.overflow > 0) { + printf("%d bytes overflow after last (PBO) frame\n", int(frame.overflow)); + } + std::unique_lock lock(freelist_mutex); freelist.push(frame); //--sumsum;