public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter) { foreach (var renderer in _renderers) { renderer.LoadTexture(textureName, index, texture, minFilter, magFilter); } }
public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter) { foreach (var renderer in _renderers) { renderer.LoadTexture(textureName, index, texture, minFilter, magFilter); } }
private int CreateTexture(Bitmap texture, TextureUnit unit, TextureMinFilter minFilter, TextureMagFilter magFilter) { int textureId = GL.GenTexture(); GL.ActiveTexture(unit); GL.BindTexture(TextureTarget.Texture2D, textureId); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)minFilter); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)magFilter); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.Width, texture.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero); var bmpData = texture.LockBits(new Rectangle(0, 0, texture.Width, texture.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texture.Width, texture.Height, PixelFormat.Bgra, PixelType.UnsignedByte, bmpData.Scan0); texture.UnlockBits(bmpData); GL.BindTexture(TextureTarget.Texture2D, 0); return textureId; }
public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter) { if (_textureHandleDictionary.ContainsKey(textureName)) return; var unit = TextureUnit.Texture0 + index; var textureHandle = CreateTexture(texture, unit, minFilter, magFilter); _textureHandleDictionary.Add(textureName, new TextureInfo{Handle = textureHandle, Unit = index}); }
private int CreateTexture(Bitmap texture, TextureUnit unit, TextureMinFilter minFilter, TextureMagFilter magFilter) { int textureId = GL.GenTexture(); GL.ActiveTexture(unit); GL.BindTexture(TextureTarget.Texture2D, textureId); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)minFilter); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)magFilter); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.Width, texture.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero); var bmpData = texture.LockBits(new Rectangle(0, 0, texture.Width, texture.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texture.Width, texture.Height, PixelFormat.Bgra, PixelType.UnsignedByte, bmpData.Scan0); texture.UnlockBits(bmpData); GL.BindTexture(TextureTarget.Texture2D, 0); return(textureId); }
public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter) { if (_textureHandleDictionary.ContainsKey(textureName)) { return; } var unit = TextureUnit.Texture0 + index; var textureHandle = CreateTexture(texture, unit, minFilter, magFilter); _textureHandleDictionary.Add(textureName, new TextureInfo { Handle = textureHandle, Unit = index }); }