public static void LoadImageCubemap(TextureTarget target, int width, int height, GLFormatHelper.PixelFormatInfo format, List <byte[]> data, int mipLevel = 0) { switch (target) { case TextureTarget.TextureCubeMap: for (int i = 0; i < 6; i++) { LoadImageCubemap2D(mipLevel, i, width, height, format, data[i]); } break; } }
public static void LoadImage(TextureTarget target, int width, int height, int depth, GLFormatHelper.PixelFormatInfo format, byte[] data, int mipLevel = 0) { switch (target) { case TextureTarget.Texture2D: LoadImage2D(mipLevel, width, height, format, data); break; case TextureTarget.Texture2DArray: case TextureTarget.Texture3D: case TextureTarget.TextureCubeMapArray: LoadImage3D(target, mipLevel, depth, width, height, format, data); break; } }
public static void LoadImage(TextureTarget target, int width, int height, int depth, GLFormatHelper.PixelFormatInfo format, Bitmap bitmap, int mipLevel = 0) { BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); switch (target) { case TextureTarget.Texture2D: LoadImage2D(mipLevel, width, height, format, data.Scan0); break; case TextureTarget.Texture2DArray: case TextureTarget.Texture3D: case TextureTarget.TextureCubeMapArray: LoadImage3D(target, mipLevel, depth, width, height, format, data.Scan0); break; } bitmap.UnlockBits(data); }
static void LoadImageCubemap2D(int mipLevel, int array, int width, int height, GLFormatHelper.PixelFormatInfo formatInfo, byte[] data) { GL.TexImage2D(TextureTarget.TextureCubeMapPositiveX + array, mipLevel, formatInfo.InternalFormat, width, height, 0, formatInfo.Format, formatInfo.Type, data); }
static void LoadImage3D(TextureTarget target, int mipLevel, int depth, int width, int height, GLFormatHelper.PixelFormatInfo formatInfo, IntPtr data) { GL.TexImage3D(target, mipLevel, formatInfo.InternalFormat, width, height, depth, 0, formatInfo.Format, formatInfo.Type, data); }