So recently, I've been trying to learn OpenTK for use in a 2D C# game (Grade 12 AP programming final project). So far, from the documentation on this site, I have learned absolutely nothing. It pains me to say, but the guides on this site are probably up in my top 5 worst written guides of all time. They explain next to nothing about how any individual function works and it honestly made me feel as though the person who wrote them thought "Hey, maybe if I just throw a bunch of code at people, they'll understand how everything works!"
With that in mind, I have a problem that no guide seems to actually address properly: the issue of loading textures onto the screen. If someone could write a detailed guide as to how to load and display textures using only OpenTK and C#, I would greatly appreciate it. And by detailed guide, I mean something that literally explains every function and parameter used. As some background, I'm currently able to draw textureless quads to the screen using a matrix4 projection.
P.S. Sorry if I came off as rude, it's just frustrating go through literally 30+ guides and getting nothing out of them because they don't explain the functions used and why they used them.
A snippet of the OpenTK portion of the code I've been using, if anyone cares:
//Clear back buffer GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); //Camera and Link vectors Vector3 linkLocation = new Vector3(Link.X, Link.Y, 4.0f); Vector3 camLocation = new Vector3(Link.X, Link.Y, zoomFactor); //Set camera to follow Link modelview = Matrix4.LookAt(camLocation, linkLocation, Vector3.UnitY); GL.MatrixMode(MatrixMode.Modelview); GL.LoadMatrix(ref modelview); //Start drawing GL.Begin(PrimitiveType.Quads); GL.Color3(0.0f, 0.0f, 0.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Color3(0.5f, 1.0f, 1.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.Vertex3(invalidCoordsX, invalidCoordsY, 4.0f); GL.End(); //Swap back buffer to front buffer. SwapBuffers();