2 #include "IOSGLImageAllocator.h" 4 #include "../core/GLImage.h" 5 #include "../core/GLImageAllocator.h" 6 #include "../core/GLPlainTexture.h" 8 #include "IOSGLContext.h" 9 #include "IOSGLTexture.h" 11 #include "../core/arm_neon_support.h" 20 bool useCVPixelBuffer) {
23 if (useCVPixelBuffer) {
25 for (
int i = 0; i < num_images; i++) {
27 width, height, channels, tile_x, tile_y, [&](
int slice) ->
const GLTexture* {
29 "%s pixelbuffers.size(): %ld\n",
33 CVPixelBufferRef buffer = NULL;
34 int slices = (channels + 3) / 4;
35 int slice_index = i * slices + slice;
36 if (pixelbuffers.size() < slice_index + 1) {
37 const int texture_width = width * tile_x;
38 const int texture_height = height * tile_y;
40 IOSGLTexture::createCVPixelBuffer(pixelFormat, texture_width, texture_height);
42 "created a new buffer %p for image %d slice %d of dimensions %dx%d\n",
48 pixelbuffers.push_back(buffer);
50 buffer = pixelbuffers[slice_index];
52 gl_log(GL_VERBOSE,
"reused buffer %p for image %d slice %d\n", buffer, i, slice);
57 output_images->push_back(output_image);
60 for (
int i = 0; i < num_images; i++) {
62 width, height, channels, tile_x, tile_y, [&](
int slice) ->
const GLTexture* {
66 output_images->push_back(image);