public static Handle CreateCheckerboardTexture(IApi api) { Int32 texSize = 256; Int32 gridSize = 4; Int32 squareSize = texSize / gridSize; var colours = new Rgba32 [gridSize*gridSize]; for (Int32 x = 0; x < gridSize; ++x) { for (Int32 y = 0; y < gridSize; ++y) { colours [x + (y * gridSize)] = RandomColours.GetNext (); } } var texData = new byte[texSize*texSize*4]; Int32 index = 0; for (Int32 x = 0; x < texSize; ++x) { for (Int32 y = 0; y < texSize; ++y) { texData [index++] = colours[(x/squareSize) + (y/squareSize*gridSize)].A; texData [index++] = colours[(x/squareSize) + (y/squareSize*gridSize)].R; texData [index++] = colours[(x/squareSize) + (y/squareSize*gridSize)].G; texData [index++] = colours[(x/squareSize) + (y/squareSize*gridSize)].B; } } return api.gfx_CreateTexture (TextureFormat.Rgba32, texSize, texSize, texData); }