// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm /** * A kernel that creates a grid pattern */ __global__ void gridKernel(global_mem uint32_t* dst, unsigned width, unsigned height, unsigned size, unsigned lineWidth, uint32_t color, uint32_t bgColor) { unsigned x = (unsigned)get_global_id_x(); unsigned y = (unsigned)get_global_id_y(); if (x < width && y < height) { dst[y * width + x] = ((x % size) < lineWidth || (y % size) < lineWidth) ? color : bgColor; } } /** * A kernel that creates a grid pattern with a transparent BG */ __global__ void transparentBGGridKernel(global_mem uint32_t* dst, unsigned width, unsigned height, unsigned size, unsigned lineWidth, uint32_t color) { unsigned x = (unsigned)get_global_id_x(); unsigned y = (unsigned)get_global_id_y(); if (x < width && y < height && ((x % size) < lineWidth || (y % size) < lineWidth)) { dst[y * width + x] = color; } } /** * A kernel that creates a grid pattern with a transparent grid and a solid BG. */ __global__ void transparentFGGridKernel(global_mem uint32_t* dst, unsigned width, unsigned height, unsigned size, unsigned lineWidth, uint32_t bgColor) { unsigned x = (unsigned)get_global_id_x(); unsigned y = (unsigned)get_global_id_y(); if (x < width && y < height && !((x % size) < lineWidth || (y % size) < lineWidth)) { dst[y * width + x] = bgColor; } }