static int LoadTexture(string filename) { if (String.IsNullOrEmpty(filename)) { throw new ArgumentException(filename); } int id = GL.GenTexture(); GL.BindTexture(TextureTarget.Texture2D, id); // We will not upload mipmaps, so disable mipmapping (otherwise the texture will not appear). // We can use GL.GenerateMipmaps() or GL.Ext.GenerateMipmaps() to create // mipmaps automatically. In that case, use TextureMinFilter.LinearMipmapLinear to enable them. GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(filename); BitmapData bmp_data = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, bmp_data.Width, bmp_data.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, bmp_data.Scan0); bmp.UnlockBits(bmp_data); return(id); }
public GLTextureHandle CreateTexture() { var texture = MacGL.GenTexture(); AddContextObject(new TextureDisposable(texture)); return(new GLTextureHandle(texture)); }
/// <summary> /// Constructs a new instance. /// </summary> /// <param name="width">The width of the backing store in pixels.</param> /// <param name="height">The height of the backing store in pixels.</param> public TextRenderer(int width, int height) { if (width <= 0) { throw new ArgumentOutOfRangeException("width"); } if (height <= 0) { throw new ArgumentOutOfRangeException("height "); } if (GraphicsContext.CurrentContext == null) { throw new InvalidOperationException("No GraphicsContext is current on the calling thread."); } bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); gfx = Graphics.FromImage(bmp); gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; texture = GL.GenTexture(); GL.BindTexture(TextureTarget.Texture2D, texture); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, width, height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, IntPtr.Zero); }
public static int loadCubeMap() { int texID = GL.GenTexture(); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.TextureCubeMap, texID); var cubeMapTextures = loadCubeMapTextures(); foreach (var dictValues in cubeMapTextures) { var target = TextureTarget.Texture2D; switch (dictValues.Key) { case EnumFacing.NORTH: target = TextureTarget.TextureCubeMapNegativeZ; break; case EnumFacing.SOUTH: target = TextureTarget.TextureCubeMapPositiveZ; break; case EnumFacing.EAST: target = TextureTarget.TextureCubeMapPositiveX; break; case EnumFacing.WEST: target = TextureTarget.TextureCubeMapNegativeX; break; case EnumFacing.UP: target = TextureTarget.TextureCubeMapPositiveY; break; case EnumFacing.DOWN: target = TextureTarget.TextureCubeMapNegativeY; break; } var bmp = (Bitmap)dictValues.Value.Clone(); var size = bmp.Size; BitmapData data = bmp.LockBits(new Rectangle(0, 0, size.Width, size.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); GL.TexImage2D(target, 0, PixelInternalFormat.Rgba, data.Width, data.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, data.Scan0); bmp.UnlockBits(data); } GL.TexParameter(TextureTarget.TextureCubeMap, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); GL.TexParameter(TextureTarget.TextureCubeMap, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.TextureCubeMap, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(TextureTarget.TextureCubeMap, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge); return(texID); }
public static int loadTexture(Bitmap textureMap, bool smooth) { GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); int texID = GL.GenTexture(); textures.Add(texID); GL.BindTexture(TextureTarget.Texture2D, texID); BitmapData data = textureMap.LockBits(new Rectangle(0, 0, textureMap.Width, textureMap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppPArgb); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, data.Width, data.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data.Scan0); textureMap.UnlockBits(data); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)(smooth ? TextureMinFilter.Linear : TextureMinFilter.Nearest)); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)(smooth ? TextureMagFilter.Linear : TextureMagFilter.Nearest)); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge); return(texID); }
public GLTextureHandle CreateTexture() { int texture = GL.GenTexture(); AddContextObject(new TextureDisposable(texture)); return((GLTextureHandle)texture); }
protected override COGLTexture _CreateTexture(Size dataSize) { if (dataSize.Width < 0) { return(new COGLTexture(0, dataSize)); } COGLTexture texture = new COGLTexture(GL.GenTexture(), dataSize, _CheckForNextPowerOf2(dataSize.Width), _CheckForNextPowerOf2(dataSize.Height)); return(texture); }
public static TextureHandle Create(Size <Pixels> size, IOSurface surface) { GL.ActiveTexture(TextureUnit.Texture0); var texture = new TextureHandle(GL.GenTexture()); GL.BindTexture(TextureTarget.TextureRectangle, texture); GL.TexParameter(TextureTarget.TextureRectangle, TextureParameterName.TextureMagFilter, (int)(TextureMagFilter.Nearest)); GL.TexParameter(TextureTarget.TextureRectangle, TextureParameterName.TextureMinFilter, (int)(TextureMinFilter.Linear)); GL.TexParameter(TextureTarget.TextureRectangle, TextureParameterName.TextureWrapS, (int)(TextureWrapMode.ClampToEdge)); GL.TexParameter(TextureTarget.TextureRectangle, TextureParameterName.TextureWrapT, (int)(TextureWrapMode.ClampToEdge)); Resize(texture, size, surface); return(texture); }