This repository has been archived on 2026-05-22. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Diamond/WhatTheTexture/Program.cs
2017-02-22 22:45:04 -05:00

79 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenTK;
using OpenTK.Graphics.OpenGL;
using PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat;
namespace WhatTheTexture
{
internal class Program : GameWindow
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Width = 1920;
Height = 1080;
X = (DisplayDevice.Default.Width - Width) / 2;
Y = (DisplayDevice.Default.Height - Height) / 2;
GL.Enable(EnableCap.Texture2D);
var image = new Bitmap("tex.png");
var texID = GL.GenTexture();
GL.ActiveTexture(TextureUnit.Texture0);
GL.BindTexture(TextureTarget.Texture2D, texID);
var bitmapData = image.LockBits(new Rectangle(0, 0, image.Width, image.Height),
ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter,
(int) TextureMinFilter.Nearest);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter,
(int) TextureMagFilter.Nearest);
GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, bitmapData.Width, bitmapData.Height, 0,
PixelFormat.Bgra, PixelType.UnsignedByte, bitmapData.Scan0);
image.UnlockBits(bitmapData);
GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
GL.Viewport(ClientRectangle);
GL.Begin(PrimitiveType.Triangles);
GL.TexCoord2(0, 0);
GL.Vertex2(-.8, -.8);
GL.TexCoord2(1, 0);
GL.Vertex2(.8, -.8);
GL.TexCoord2(0, 1);
GL.Vertex2(-.8, .8);
GL.TexCoord2(1, 1);
GL.Vertex2(.8, .8);
GL.TexCoord2(1, 0);
GL.Vertex2(.8, -.8);
GL.TexCoord2(0, 1);
GL.Vertex2(-.8, .8);
GL.End();
SwapBuffers();
}
private static void Main(string[] args)
{
using (var p = new Program())
{
p.Run();
}
}
}
}